Windows + Ubuntu 双系统扩容实践:从 Windows 划出 300GB,将 /home 迁移到独立 ext4 分区

【详细】双系统 Ubuntu 如何给根目录扩容 Ubuntu扩容,图解版,所有版本Ubuntu都适用,会持续更新 阅读详情

本文记录一次真实的 Ubuntu 扩容过程。
我的电脑是 Windows 11 + Ubuntu 双系统,Ubuntu 最初只分配了约 108GB。随着 Zephyr SDK、STM32 工具链、Conda、VS Code、机器人开发环境等不断增加,Ubuntu 根分区最终只剩不到 1GB。

考虑到直接移动根分区风险较高,我最后采用了更稳妥的方案:

从 Windows 压缩出 300GB → 新建 ext4 分区 → 将 /home 迁移到新分区。

最终效果:

/dev/nvme0n1p5  →  /       106GB,剩余约 59GB
/dev/nvme0n1p6  →  /home   295GB,剩余约 226GB

这篇文章既记录具体操作,也重点总结其中几个容易踩坑的地方,适合有相同需求的同学或公司同事参考。


一、我的磁盘为什么会不够用

一开始执行:

df -h

得到:

文件系统          大小  已用  可用 已用% 挂载点
/dev/nvme0n1p5   106G  100G  约1G  100% /

而 Windows 分区有 845GB,实际只使用了约 127GB。

Ubuntu 里的主要空间占用包括:

/home       约 60GB
/opt        约 14GB
/var        约 7GB
/usr        约 10GB

进一步查看 /home:

du -hd1 ~ 2>/dev/null | sort -h

其中比较大的目录包括:

11G  ~/zephyr-sdk-1.0.1
9G   ~/zephyrproject
5G   ~/.cache
5G   ~/.zephyr_ide
4.8G ~/miniconda3
2.2G ~/STM32Cube
...

这类开发环境大部分都位于 /home。因此,与其直接移动整个 Ubuntu 根分区,不如给 /home 单独分配一个大分区。


二、最终选择:不直接扩根分区,而是独立 /home

我的原始分区布局大致如下:

[EFI][MSR][Windows p3][Ubuntu p5][Windows Recovery p4]

其中:

/dev/nvme0n1p1  EFI
/dev/nvme0n1p2  Microsoft Reserved
/dev/nvme0n1p3  Windows NTFS
/dev/nvme0n1p5  Ubuntu ext4,挂载为 /
/dev/nvme0n1p4  Windows Recovery

理论上,可以从 Windows 尾部压缩空间,再将 Ubuntu 根分区向左扩展。

但由于未分配空间位于 Ubuntu 分区左侧,直接扩根分区需要移动 ext4 分区的起始位置。这意味着要搬移大量数据,操作时间长,断电或异常中断的风险也更高。

所以我选择:

原布局:

[Windows p3][Ubuntu p5 /][Recovery p4]


调整后:

[Windows p3][新 ext4 p6 /home][Ubuntu p5 /][Recovery p4]

这个方案的优点是:

  1. 不移动原来的 Ubuntu 根分区;

  2. 不修改 Ubuntu 分区起始位置;

  3. 不碰 EFI 和 Windows 恢复分区;

  4. 即使迁移失败,旧 /home 数据仍然保留;

  5. 后续重装系统时,也可以考虑继续复用独立 /home。


三、操作前先确认真实分区结构

df -h 只能查看已经挂载的文件系统,不能完整展示分区布局。

建议先执行:

lsblk -o NAME,SIZE,FSTYPE,FSAVAIL,MOUNTPOINTS,PARTLABEL

以及:

sudo parted -l

我的原始结果类似:

编号  起始点  结束点  大小    文件系统
1     ...      ...    273MB   fat32
2     ...      ...    16.8MB
3     ...      ...    907GB   ntfs
5     ...      ...    116GB   ext4
4     ...      ...    1035MB  ntfs

这里还出现了:

分区表记录没有按磁盘顺序

这通常只是因为 GPT 分区编号和实际物理顺序不一致。例如 p4 可能物理上位于 p5 后面,并不代表磁盘损坏。


四、先备份重要文件

在进行分区操作前,我先将重要代码和文档备份到 Windows 分区。

例如:

rsync -aH --info=progress2 \
  ~/JforceGlove \
  ~/STM32_Proj \
  ~/SEA_test \
  ~/my_zephyr_apps \
  ~/0602_NewGalbot_test \
  ~/文档 \
  /media/galbot/Windows/Ubuntu_Backup/

不过这里有一个非常重要的注意事项:

1. 备份前必须确认 Windows 分区真的已经挂载

不要只看目录是否存在。

因为:

/media/galbot/Windows

即使 Windows 分区没有挂载,也可能只是根分区中的一个普通空目录。

备份前应执行:

findmnt -T /media/galbot/Windows/Ubuntu_Backup

以及:

df -hT /media/galbot/Windows/Ubuntu_Backup

必须明确看到目标来源是:

/dev/nvme0n1p3

文件系统类型为:

ntfs3

否则数据可能会被复制到 Ubuntu 根分区,反而进一步占满磁盘。

可以增加一道检查:

mountpoint -q /media/galbot/Windows \
  && echo "Windows 分区已挂载,可以备份" \
  || echo "Windows 分区未挂载,请停止操作"

2. NTFS 备份不能完整保留 Linux 元数据

将普通代码、文档、图片备份到 NTFS 没问题,但 NTFS 不一定能完整保留:

  • Linux UID、GID;

  • ACL;

  • 扩展属性;

  • 特殊权限;

  • 部分软链接;

  • Unix socket 和特殊文件。

因此,Windows 分区上的备份更适合保存:

代码
文档
工程文件
普通数据集

而不是作为完整、可直接恢复的 Linux /home 镜像。


五、公司环境下的一个特殊踩坑:飞连 EDLP 占满根分区

在备份过程中,我发现根分区空间突然从约 8GB 降到了不足 500MB。

重新统计:

sudo du -xhd1 / 2>/dev/null | sort -h

发现:

/opt 由约 14GB 增长到了 22GB

进一步定位:

sudo du -xhd3 /opt/apps/com.volcengine.feilian/files 2>/dev/null \
  | sort -h | tail -50

主要空间集中在:

6.4G /opt/apps/com.volcengine.feilian/files/data/edlp/back_paks
1.7G /opt/apps/com.volcengine.feilian/files/data/edlp/back_files

也就是说,在公司终端安全环境中,大量文件复制可能会触发 DLP 文件审计、存证或备份机制。

这种情况不建议直接手动删除安全客户端目录,因为可能:

  • 触发重新生成;

  • 造成客户端异常;

  • 影响企业网络准入;

  • 产生审计告警。

应优先联系公司 IT 或安全管理员处理。

此外,我当时还清理了 ~/.cache。由于部分程序仍持有已经删除的文件,出现了:

du 统计较小
df 仍然显示空间被占用

重启后,相关进程关闭,空间从约 500MB 恢复到了约 12GB。

这属于 Linux 中典型的:

文件已经删除,但仍被进程打开

可以通过下面的命令检查:

sudo lsof +L1 2>/dev/null

六、在 Windows 中压缩 C 盘

1. 检查 BitLocker

管理员 CMD 中执行:

manage-bde -status C:

我的结果是:

BitLocker 版本:    无
转换状态:          完全解密
已加密百分比:      0.0%
保护状态:          保护关闭
密钥保护器:        找不到

说明没有启用 BitLocker,因此不需要备份恢复密钥,也不需要暂停保护。

如果显示 BitLocker 已启用,应先保存恢复密钥并暂停保护。

不要把下面两个操作混淆:

manage-bde -protectors -disable C:

这是暂停保护。

而:

manage-bde -off C:

会开始解密整个 C 盘,不是这次操作需要的。

2. 关闭休眠和快速启动

管理员 CMD 中执行:

powercfg /h off

这样可以避免 Windows 休眠或快速启动导致 NTFS 分区处于未完全关闭状态。

3. 压缩 Windows 分区

按:

Win + R

输入:

diskmgmt.msc

找到 C 盘,右键选择:

压缩卷

我准备划出 300GB,因此输入:

307200 MB

压缩完成后得到:

300GB 未分配空间

这里不要:

  • 新建简单卷;

  • 格式化为 NTFS;

  • 分配盘符。

保持“未分配”状态即可。

完成后彻底关机:

shutdown /s /t 0

七、在 Ubuntu 中创建新的 ext4 分区

通常更推荐使用 Ubuntu Live USB 操作。

但我的公司不允许插入私人 U 盘,因此采用了:

在当前 Ubuntu 中,只对未分配空间新建分区,不移动、不调整现有根分区。

因为这次操作只是:

未分配空间 → 新建分区

不会修改已经挂载的 /dev/nvme0n1p5。

打开 GParted:

sudo gparted

确认磁盘为:

/dev/nvme0n1

当时看到的布局为:

/dev/nvme0n1p3  Windows
unallocated     300GiB
/dev/nvme0n1p5  Ubuntu /
/dev/nvme0n1p4  Windows Recovery

在 300GiB 未分配空间上右键选择:

New

设置:

创建为:主分区
文件系统:ext4
卷标:ubuntu_home
对齐:MiB

然后应用操作。

完成后执行:

lsblk -f

得到:

nvme0n1p5 ext4                  UUID=...  挂载到 /
nvme0n1p6 ext4 ubuntu_home      UUID=...  尚未挂载

这里出现两个 ext4 完全正常:

p5:原来的 Ubuntu 根分区
p6:新建的 /home 分区

八、进入 TTY,尽量减少 /home 的读写

在桌面环境中,很多程序会持续写入 /home,例如:

Chrome
VS Code
微信
飞书
Conda
GNOME 配置
PipeWire
各种后台服务

因此不建议直接在桌面环境中复制。

按下:

Ctrl + Alt + F3

进入 TTY。

登录后,建议先切换到不位于 /home 的目录:

cd /

停止 GNOME 图形登录管理器:

sudo systemctl stop gdm3

执行后屏幕可能会黑掉,只剩左上角光标闪烁。这通常只是图形界面关闭后的显示切换,不代表系统损坏。

重新按:

Ctrl + Alt + F3

即可回到 TTY。

检查状态:

systemctl status gdm3 --no-pager

正常应看到:

inactive (dead)

还可以检查 /home 是否仍有进程使用:

sudo lsof +D /home 2>/dev/null | head -30

少量当前 shell 或系统服务记录不一定有问题,但应尽量关闭:

Chrome
Code
微信
飞书
Python 任务
编译任务
下载程序

九、将新分区临时挂载到 /mnt/newhome

创建临时挂载目录:

sudo mkdir -p /mnt/newhome

挂载新分区:

sudo mount /dev/nvme0n1p6 /mnt/newhome

检查:

df -h /mnt/newhome

我的结果类似:

文件系统          大小  已用  可用  挂载点
/dev/nvme0n1p6   295G   28K  280G  /mnt/newhome

查看内容:

ls -la /mnt/newhome

新建的 ext4 分区通常只有:

.
..
lost+found

这里的 /mnt/newhome 只是临时挂载目录,最终分区会挂载到 /home。


十、使用 rsync 迁移 /home

执行:

sudo rsync -aAXH \
  --numeric-ids \
  --info=progress2 \
  /home/ \
  /mnt/newhome/

注意源目录和目标目录最后的 /:

/home/
/mnt/newhome/

这样复制后的结构是:

/mnt/newhome/galbot

而不是:

/mnt/newhome/home/galbot

参数含义:

-a  归档模式,保留大部分权限、时间、软链接等
-A  保留 ACL
-X  保留扩展属性
-H  保留硬链接
--numeric-ids  按数值保存 UID/GID

复制完成后检查:

sudo du -sh /home
sudo du -sh /mnt/newhome

我的结果两边都约为:

54G

再执行:

sync

确保缓存数据写入磁盘。

如果 /home 特别大,可以先在桌面环境中进行一次预复制,关闭图形界面后再执行第二次 rsync,只同步变化部分,以缩短维护时间。


十一、配置 /etc/fstab

查看新分区 UUID:

sudo blkid /dev/nvme0n1p6

我的结果为:

/dev/nvme0n1p6:
UUID="6fffcf0a-7941-4cab-8532-a1f21ca5c654"
TYPE="ext4"

先备份:

sudo cp /etc/fstab /etc/fstab.backup-home-migration

编辑:

sudo nano /etc/fstab

在末尾加入:

UUID=6fffcf0a-7941-4cab-8532-a1f21ca5c654 /home ext4 defaults,noatime 0 2

这里的 UUID 必须替换成自己电脑实际查询到的值。

如果 TTY 中不方便复制,可以直接追加:

echo 'UUID=6fffcf0a-7941-4cab-8532-a1f21ca5c654 /home ext4 defaults,noatime 0 2' \
  | sudo tee -a /etc/fstab

写完后检查:

tail -5 /etc/fstab

重新加载 systemd 配置:

sudo systemctl daemon-reload

测试 fstab:

sudo mount -a

没有报错后检查:

findmnt /home

应显示:

/home  /dev/nvme0n1p6  ext4

再执行:

df -h /home

应显示新的 300GB 分区。


十二、重启并验证新 /home

执行:

sudo reboot

重新进入桌面后先检查:

findmnt /home

确认:

/home → /dev/nvme0n1p6

再查看:

df -h

迁移后,我当时看到:

/dev/nvme0n1p5  106G  100G  5.2G   96%  /
/dev/nvme0n1p6  295G   54G  226G   20%  /home

这里根分区仍然很满,是因为:

p5 中原来的 /home 数据还存在,只是被新挂载的 p6 遮住了。

随后测试重要环境:

ls ~/zephyrproject
conda env list
code --version
ls ~/STM32_Proj

还可以测试写入:

touch ~/home_partition_test
ls -l ~/home_partition_test
rm ~/home_partition_test

确认所有项目、配置和权限正常后,再清理旧数据。


十三、为什么旧 /home 还占空间

迁移前,p5 内部结构为:

p5
└── /
    ├── etc
    ├── usr
    ├── opt
    ├── var
    └── home
        └── galbot

迁移后,p6 被挂载到 /home:

当前目录树:

/
├── etc        来自 p5
├── usr        来自 p5
├── opt        来自 p5
├── var        来自 p5
└── home       来自 p6
    └── galbot

p5 里面原来的 /home/galbot 并没有消失,只是访问 /home 时被新的 p6 覆盖了。

这和把一块新硬盘挂载到一个已有目录类似:

挂载前:目录里有旧数据
挂载后:看到的是新分区内容

卸载后,旧数据仍然存在。


十四、重新挂载 p5,查看被遮住的旧 /home

创建临时挂载目录:

sudo mkdir -p /mnt/oldroot

将 p5 再挂载一次:

sudo mount /dev/nvme0n1p5 /mnt/oldroot

这里需要说明:

/dev/nvme0n1p5

仍然是当前系统的根分区,只是现在通过 /mnt/oldroot 又增加了一个访问入口。

检查:

findmnt -T /mnt/oldroot/home

我的结果为:

TARGET        SOURCE
/mnt/oldroot /dev/nvme0n1p5

说明:

/mnt/oldroot/home

确实位于 p5,而不是新 p6。

检查旧数据大小:

sudo du -sh /mnt/oldroot/home

结果:

54G /mnt/oldroot/home

十五、安全清理旧 /home

这里是整次操作中风险最高的一步。

在删除前,至少确认以下三项:

findmnt /home

必须显示:

/home → /dev/nvme0n1p6

然后:

findmnt -T /mnt/oldroot/home

必须显示来源为:

/dev/nvme0n1p5

最后确认大小:

sudo du -sh /mnt/oldroot/home

确认是旧副本。

更推荐的删除方式

不要直接删除整个 home 目录,建议只删除旧用户目录:

sudo rm -rf --one-file-system /mnt/oldroot/home/galbot

如果有多个用户,应分别确认后删除:

/mnt/oldroot/home/user1
/mnt/oldroot/home/user2

保留空的:

/mnt/oldroot/home

作为 /home 挂载点更规范。

我实际遇到的现象

我当时执行的是:

sudo rm -rf --one-file-system /mnt/oldroot/home

最后报错:

rm: 无法删除 '/mnt/oldroot/home': 设备或资源忙

一开始我以为整个删除失败了。

但检查:

sudo du -sh /mnt/oldroot/home

结果只剩:

4.0K

再执行:

df -h

发现根分区从:

100G 已用

下降到了:

46G 已用

也就是说,rm -rf 已经递归删除了旧 /home 中约 54GB 的内容,只是在最后尝试删除最外层 home 目录时,因为该目录对应当前 /home 的活动挂载位置而返回了 Device or resource busy。

最终结果反而正好是:

旧用户数据被删除
空的 /home 挂载目录被保留

不过不建议依赖这种行为。更稳妥的方式仍然是只删除:

/mnt/oldroot/home/用户名

十六、清理临时挂载目录

确认旧 /home 已经为空:

sudo ls -la /mnt/oldroot/home
sudo du -sh /mnt/oldroot/home

然后:

cd ~
sudo umount /mnt/oldroot
sudo rmdir /mnt/oldroot

如果之前还保留了 /mnt/newhome:

sudo rmdir /mnt/newhome

前提是它已经没有挂载任何分区:

findmnt /mnt/newhome

没有输出后才能删除。


十七、最终结果

最终执行:

df -h

得到:

文件系统          大小  已用  可用 已用% 挂载点
/dev/nvme0n1p5   106G   46G   59G   44% /
/dev/nvme0n1p6   295G   54G  226G   20% /home

现在的磁盘结构相当于:

p5:Ubuntu 系统分区
├── /
├── /usr
├── /opt
├── /var
└── /home    空挂载点

p6:用户数据分区
└── /home
    └── galbot
        ├── zephyrproject
        ├── miniconda3
        ├── STM32Cube
        ├── 项目代码
        └── 用户配置

十八、本次扩容最重要的经验

1. 分区操作前必须确认物理布局

至少执行:

lsblk -f
sudo parted -l

不要只根据 df -h 判断磁盘结构。

2. Windows 系统分区尽量在 Windows 中压缩

不要直接在 Linux 中随意缩小 Windows C 盘。

正确方式是:

Windows 磁盘管理 → 压缩卷

3. 未分配空间可以新建分区,但不要随意移动已挂载根分区

本次方案的低风险点在于:

只新建 p6
不移动 p5
不修改 p5 起始位置

4. 迁移 /home 要保留 Linux 权限和属性

推荐:

rsync -aAXH --numeric-ids

普通的:

cp -r

不适合完整迁移 Linux 用户目录。

5. /etc/fstab 写完后不要直接重启

应先执行:

sudo systemctl daemon-reload
sudo mount -a

再用:

findmnt /home

确认挂载来源。

6. 备份目标目录存在,不代表对应分区已经挂载

一定要检查:

findmnt -T 目标路径
df -hT 目标路径

否则可能将备份写回根分区。

7. df 和 du 差异很大时,检查已删除但仍被占用的文件

执行:

sudo lsof +L1

程序仍然打开着已删除文件时:

du 看不到
df 仍然统计占用

关闭相关程序或重启后空间才会释放。

8. rm -rf 报错不代表之前的文件都没有删除

rm -rf 目录 的过程是:

先删除目录内部内容
最后删除目录本身

如果最后目录删除失败,前面的文件可能已经全部删掉。

所以任何删除操作后都要重新检查:

du -sh
df -h
ls -la

9. 删除旧数据前必须确认两个路径分别属于哪个分区

至少执行:

findmnt /home
findmnt -T /mnt/oldroot/home

路径相似并不代表它们属于同一个文件系统。

10. 对公司电脑,还要考虑终端安全软件

大量复制可能触发:

DLP 审计
文件存证
杀毒扫描
缓存和日志增长

公司终端出现异常空间占用时,除了检查 /home、/var,还应关注:

/opt
企业安全客户端目录

不要未经授权删除公司安全软件的数据。


十九、总结

这次扩容表面上只是“给 Ubuntu 增加了 300GB”,但整个过程让我真正理解了几个 Linux 文件系统中的核心概念:

  • 分区决定磁盘空间如何划分;

  • ext4、NTFS 是建立在分区上的文件系统;

  • 挂载是把一个文件系统接入 Linux 目录树;

  • /home 只是一个路径,它可以位于根分区,也可以来自另一块独立分区;

  • 新分区挂载到 /home 后,旧目录不会自动删除,只是被遮住;

  • 同一个文件系统可以通过不同挂载点访问;

  • 删除前最重要的不是看路径名字,而是确认路径对应的真实块设备。

最终我没有通过移动根分区来扩容,而是将 /home 迁移到了独立分区。这种方式风险相对更低,也更符合我的实际使用特点:系统文件变化不大,但各种 SDK、工具链、项目和用户缓存会持续增长。

对于和我一样使用 Windows + Ubuntu 双系统,并且 Ubuntu 根分区空间不足的人来说,独立 /home 是一个值得考虑的方案。

不过必须强调:

分区和 rm -rf 都属于高风险操作。
文中的 /dev/nvme0n1p5、p6 和 UUID 只适用于我的电脑,不能直接照抄。操作前一定要通过 lsblk、findmnt 和 blkid 确认自己的实际设备。


参考命令速查

# 查看空间
df -h
sudo du -xhd1 / 2>/dev/null | sort -h

# 查看分区
lsblk -f
sudo parted -l

# 查看路径属于哪个文件系统
findmnt -T /some/path
df -hT /some/path

# 挂载新 home
sudo mount /dev/nvme0n1p6 /mnt/newhome

# 复制 home
sudo rsync -aAXH --numeric-ids --info=progress2 \
  /home/ /mnt/newhome/

# 查询 UUID
sudo blkid /dev/nvme0n1p6

# 测试 fstab
sudo systemctl daemon-reload
sudo mount -a

# 确认 /home
findmnt /home
df -h /home

# 查看旧 home
sudo mount /dev/nvme0n1p5 /mnt/oldroot
sudo du -sh /mnt/oldroot/home

# 清理旧用户目录
sudo rm -rf --one-file-system /mnt/oldroot/home/用户名
ubuntu双系统扩容 装了双系统之后、发现ubuntu系统内存给小了、却又不相重装、所以只能给系统扩容: 1-1windous操作 在windous中进入磁盘管理、分出来一块空闲磁盘方便Ubuntu扩容之用 1-1进入ubuntu系统、先查看windous中分离出来的磁盘名称和大小信息: 这里就是那个107G的磁盘了 2开始挂载 2-1将磁盘格式化为ext4: sudo mkfs -t ext4 dev/sda4 2-2挂载到一个系统目录下(比如桌面) sudo mount -t ext4 /dev/ 阅读详情

相关推荐

双系统 Ubuntu扩容

之前在装系统的时候只给Ubuntu分了90G, 发现并不够用,因此今天对其进行扩容,并记录一下,具体操作如下: 一. Window 新建简单卷 首先在windows中压缩出需要挂载的卷的大小,这里我命名为 expand (whatever you want),然后重启进入Ubuntu 系统,在 Terminator中,输入 df -h, 可得 其中,/dev/sda7 是我新建的卷,...

Hansry的博客 7242

双系统下对ubuntu系统进行扩容

由于起初装ubuntu系统时啥也不懂,从windiws系统中分配给ubuntu的空间很小,导致现在ubuntu系统磁盘容量不够用。于是花了一个3,4个小时的时间去完成ubuntu系统的扩容。现在记录一下解决方法。主要的思路为在ubuntu下挂载额外的磁盘,而这个额外的磁盘是从windows系统中分配的。

weixin_70026476的博客 2万+

Win10+Ubuntu双系统安装实战:分区、UEFI引导与避坑指南

在开发与学习中,原生 Linux 环境常用于编译、容器与硬件调试。相比虚拟机或 WSL2,双系统通过独立磁盘分区与 UEFI 引导管理,让 Windows 与 Ubuntu 各自直接访问硬件,减少虚拟化层带来的性能损耗。其技术价值在于兼顾日常办公与 Linux 开发,适合大型项目编译、Docker、嵌入式烧录等场景。但真正的门槛在磁盘分区规划、EFI 分区选择、GRUB 引导维护,以及时间同步与驱动兼容。围绕 Win10+Ubuntu 双系统安装,需从硬件检查、镜像校验、启动盘制作到引导修复逐步实践,把分区

weixin_34301132的博客 563

配图详细| 双系统Ubuntu22.04 系统磁盘扩容

磁盘无法向后扩容!或者在新的磁盘中扩容.

weixin_43356770的博客 1万+

统信UOS与Windows 11双系统安装、引导修复与避坑指南

在PC上安装双系统,本质是通过UEFI+GPT引导机制让多个操作系统共享同一硬件,并由GRUB等引导程序管理启动项。其原理涉及EFI系统分区、启动项顺序与os-prober探测,分区规划不当或SATA模式为RST时,安装器可能无法识别硬盘。正确配置能提升国产化办公环境兼容性,也便于Windows 11与统信UOS间切换。常见于单位办公机、开发测试机和信创适配场景,需要在同一硬盘或双硬盘上完成分区腾挪、安装落地与引导修复。围绕统信UOS+Windows双系统安装,梳理从方案选型、U盘制作到GRUB修复、驱动调

weixin_34187862的博客 384

Ubuntu安装实战:UEFI引导、分区方案与Secure Boot适配

Ubuntu安装本质上是Linux系统与硬件固件的首次深度协同,其核心涉及UEFI引导机制、磁盘分区逻辑、Secure Boot签名验证等底层原理。理解这些技术不仅关乎能否成功启动,更决定后续驱动兼容性、系统稳定性与安全防护能力。在实际部署中,UEFI模式下EFI分区格式与挂载、Secure Boot开启时NVIDIA闭源驱动的密钥注册、以及Btrfs子卷替代LVM实现原子快照等关键技术,已成为开发者、运维工程师和AI训练环境搭建者的必备技能。本文聚焦真实硬件场景(如ThinkPad、MacBook、Del

fanjava 456

不重装系统调整分区大小:Windows/Linux分区扩容实战指南

磁盘分区是系统管理存储空间的基础机制,当分区规划不合理时,C盘空间告急而其他分区闲置的情况十分常见。理解分区表与文件系统的交互原理,是安全调整磁盘布局的前提。通过在线调整分区,无需重装系统即可重新分配空间,大大降低了运维成本与数据迁移风险。无论是Windows用户使用磁盘管理的压缩卷与扩展卷,还是Linux用户借助parted、resize2fs等工具操作GPT分区表,都能实现不丢数据的容量优化。对于BitLocker加密分区、XFS文件系统等特殊场景,操作前需做好密钥备份与缩容策略规划。本文从实际案例出发

weixin_34414650的博客 227

Windows 11磁盘管理无损扩容C盘:NTFS元数据原理与实操指南

NTFS文件系统是Windows原生存储基石,其卷扩展能力不依赖数据迁移,而是通过修改$Volume元文件中的簇数指针实现毫秒级扩容。这一机制决定了真正的无损扩容本质是安全的元数据操作,而非高风险的数据搬运。Windows 11 23H2版本通过智能碎片预判、双日志事务保护和EFI分区感知等增强,显著提升了磁盘管理工具的稳定性与兼容性。相比第三方分区工具常绕过内核存储堆栈、引发RAW格式、启动失败或BitLocker挂起等事故,系统原生方案具备原子性、可回滚、免驱动等工程优势。本文聚焦NTFS扩容原理、Wi

395

Ubuntu分区扩容原理与gparted安全操作指南

Linux磁盘分区是操作系统管理存储空间的基础概念,其核心在于物理扇区划分与文件系统协同工作的底层机制。理解MBR/GPT分区表、ext4 resize原理及挂载约束,是实现安全扩容的前提。gparted作为图形化前端,实际依赖e2fsprogs、ntfs-3g等工具链,并受分区顺序、相邻空闲空间和文件系统兼容性三重硬性限制。在Ubuntu等主流发行版中,不当resize易导致启动失败或数据丢失,因此必须结合Live环境、完整备份与GRUB修复形成闭环。本文深入解析从空间告警识别到七步原子操作的全链路实践,

weixin_33841722的博客 377

ARM开发板8GB eMMC实战:从烧录到空间管理

在嵌入式Linux领域,板载存储方案直接决定了系统的稳定性和可维护性。eMMC作为一种集成主控与闪存颗粒的存储芯片,具备坏块管理、磨损均衡等特性,相比TF卡在随机读写和可靠性上优势明显。8GB eMMC在ARM开发板上被视为“高配入场券”,足以承载U-Boot、内核及完整的根文件系统。围绕这类板卡,开发者常需掌握arm交叉编译工具链、U-Boot编译与烧写链路,以及GPT分区、设备树等底层知识。同时,配合qemu模拟arm开发板可以在无硬件环境下提前验证系统。在实际部署中,空间管理尤为关键,通过裁剪root

weixin_34189116的博客 505

麒麟V10硬盘添加全指南:GPT分区、持久化挂载与安全配置

硬盘管理是Linux桌面系统的基础运维能力,其核心在于理解块设备识别、分区表原理(MBR/GPT)、文件系统创建及持久化挂载机制。GPT分区表作为UEFI启动标准,支持超大容量与多重备份,显著提升数据可靠性;而基于UUID或by-id的持久化设备标识,可彻底规避/dev/sdX命名漂移导致的fstab挂载失败。在麒麟V10等国产操作系统中,还需兼顾SELinux上下文、DAC安全增强及udev规则等特有约束。本文围绕硬件接入、GPT分区、ext4/xfs格式化、systemd感知挂载及权限治理展开,覆盖从物

weixin_34110749的博客 441

Ubuntu 18.04下Redis主从迁移:零停机复制实战指南

Redis主从复制是实现缓存高可用与平滑迁移的核心机制,其本质是通过全量同步+增量同步双阶段保障数据一致性。在Linux系统中,该机制高度依赖内核TCP参数、systemd服务管理及内存/文件系统行为。Ubuntu 18.04因内核4.15、systemd 237等老旧组件,对repl-backlog-size、tcp_keepalive、transparent_hugepage等关键配置尤为敏感——配置不当易触发全量重同步或同步中断。技术价值在于支撑业务零停机演进,典型应用于电商会话迁移、库存缓存升级等强

weixin_34007906的博客 387

Ubuntu零基础入门到精通【3.4讲】:Ubuntu 手动分区安装实战:从磁盘原理到生产级分区方案!

🏆 本文收录于 《滚雪球学 Ubuntu》 专栏。 本专栏面向有一定计算机基础,但尚未系统学习 Linux / Ubuntu 的读者,采用“滚雪球式学习法”:先装好、再会用、再理解、再优化、再实战,带你从第一次进入 Ubuntu 桌面 / 终端开始,逐步掌握 Ubuntu 的日常使用、命令操作、软件安装、系统配置、开发环境搭建与服务器部署能力。

**My Coding Family** 2214

Linux磁盘分区空间重新分配:LVM扩容与分区调整实战指南

Linux磁盘管理是系统运维的核心技能,分区与文件系统的合理规划直接决定业务连续性。LVM(逻辑卷管理)通过物理卷、卷组与逻辑卷的抽象层,实现了在线扩容与灵活分配空间,而ext4与xfs文件系统的特性差异(如xfs不可缩容)则制约了调整方案的选择。在LVM卷组有余量或新增磁盘时,可安全在线扩展;传统分区方案则需借助GParted或fdisk配合resize2fs操作,风险较高。云计算场景下,growpart结合resize2fs/xfs_growfs也能无损扩容。掌握分区表、物理卷与文件系统的联动原理,才能

cqwmy840702的博客 353

Ubuntu零基础入门到精通【2.2讲】:️认识磁盘分区:MBR、GPT、EFI 分区、Swap 分区!

🏆 本文收录于 《滚雪球学 Ubuntu》 专栏。 本专栏面向有一定计算机基础,但尚未系统学习 Linux / Ubuntu 的读者,采用“滚雪球式学习法”:先装好、再会用、再理解、再优化、再实战,带你从第一次进入 Ubuntu 桌面 / 终端开始,逐步掌握 Ubuntu 的日常使用、命令操作、软件安装、系统配置、开发环境搭建与服务器部署能力。

**My Coding Family** 1617

Maxwell参数化建模

MAXWELL 2019 R3 参数化建模 参数化建模的优势 所谓参数化,就是在电机本体设计中涉及到的各类参数变量化,而每个变量之间又存在一定的制约关系,这样只需修改其中某个或者某些变量就可以做到对整个电机模型合理地改动。 参数化举例 以表贴式电机为例,先画电机定子,如上所示,依次进行后会弹出下面的选项框 上图就是描述电机尺寸的各类参数,接下来进行参数化。 回车ENTER,并给变量ds赋值。 赋值好后,回车ENTER 左下角properties里面就有我们新建立的变量ds了。 继续将剩余的参数

qq_41387280的博客 1万+

Ubuntu 16.04 swap配置实战:从原理到永久生效的完整指南

swap是Linux内存管理的核心机制,而非仅用于内存不足时的应急兜底。其本质是内核VM子系统通过页换出(swap-out)优化物理内存利用率,平衡匿名页与page cache的资源分配。技术价值在于提升I/O效率、防止OOM Killer误杀关键进程,并支撑稳定负载调度。典型应用场景包括老旧服务器、物理机、嵌入式设备及未启用休眠的Ubuntu 16.04生产环境。合理配置swapfile需兼顾文件系统兼容性(ext4/xfs)、大小策略(0.5–1倍内存)、fstab挂载时序与权限安全(chmod 600

weixin_34302798的博客 400

ECC椭圆曲线加解密原理详解(配图)

椭圆曲线加解密原理详解 本文主要参照:ECC椭圆曲线详解(有具体实例)[1] 前言: 椭圆曲线(ECC)加密原理跟RSA加解密原理比起来,可真是晦涩难懂。拜读了大神Kalafinaian文章“ECC椭圆曲线详解(有具体实例)”,终于看到了参透的曙光。 由于原文中有微小的瑕疵,也为了便于阅读起来更加流畅,我重新整理了一下这篇文章。 为什么使用椭圆曲线加密算法? RSA的解决分解整数问题需要亚指数...

Mark的博客 7万+

玩客云刷Armbian部署Home Assistant:低成本智能家居实战

在ARM开发板上部署智能家居系统,通常涉及Linux发行版、Docker容器和自动化平台。Armbian作为专为ARM优化的Debian衍生版,提供稳定内核与完整软件源;Docker实现环境隔离与便捷部署;Home Assistant Container则负责设备集成与自动化控制。这种组合能显著降低硬件成本,适用于轻量级家庭自动化场景。玩客云凭借30-60元二手价格和千兆网口,成为树莓派的性价比替代方案。通过刷入Armbian并运行Docker,可快速搭建Home Assistant,实现灯控、传感器接入及

weixin_34221112的博客 453

医学影像AI的幻觉问题与CCD解决方案

医学影像AI在辅助诊断中面临的核心挑战是幻觉现象,即模型生成不符合实际影像的虚假诊断。这种现象源于多模态大语言模型(MLLMs)在视觉-语言对齐上的技术局限,可能导致假阳性或假阴性的临床风险。通过临床对比解码(CCD)框架,结合症状锚定和专家引导的双阶段校准机制,可有效提升模型输出的可靠性。该技术在CheXpert和MIMIC-CXR等标准数据集上验证,显著改善了肺不张、胸腔积液等关键指标的检测准确率。对于医疗AI落地场景,这种即插即用的解决方案既规避了数据隐私合规问题,又降低了基层医院的部署门槛,为AI辅

weixin_36303807的博客 322

Windows下QT5.15.2安装MQTT模块全攻略(附分支选择避坑指南)

本文详细介绍了在Windows环境下为QT5.15.2安装MQTT模块的完整流程,包括环境准备、源码获取、编译配置及项目集成等关键步骤。特别针对分支选择、依赖项处理和常见错误提供了实用解决方案,帮助开发者高效完成MQTT模块的安装与调试,适用于物联网开发场景。

weixin_29224589的博客 466

Comet Lake-S平台Ubuntu安装全指南:驱动配置与故障排查

操作系统与硬件的兼容性,是Linux桌面和服务器落地的基础。内核通过设备驱动与硬件抽象层,为CPU、主板、显卡及外设提供标准接口,而内核版本对具体芯片组的支持程度,直接决定了系统能否稳定运行。了解驱动原理与安装流程,能够有效避免黑屏、网卡识别失败等问题。对于使用Intel第十代酷睿Comet Lake-S平台的用户,其LGA1200接口与400系芯片组已在主流内核中获得完善支持,借助Ubuntu LTS版本和正确的UEFI安装方式,可以获得开箱即用的体验。本文围绕Comet Lake-S与Ubuntu的组合

weixin_34081595的博客 380

退火朗之万动力学采样

退火朗之万动力学采样(Simulated Annealing Langevin Dynamics Sampling)结合了退火技术和朗之万动力学,是一种用于分子模拟和统计物理中的计算方法。这种方法可以帮助系统从局部最小值中逃逸,以找到全局最小值或进行有效的配置空间探索。

weixin_39699362的博客 1949
上一篇: FreeRTOS 与 Zephyr 核心区别详解:从任务创建到系统对象管理
JSF不秃
博客等级 码龄6年 1粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JSF不秃

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值