不重装也能扩容:麒麟Kylin V10系统盘增容(非LVM)

原文链接:「链接」

Hello,大家好啊,今天带来一套不重装系统就能扩容系统盘的实战方案:思路是新增一块硬盘→把原来的/data全量迁到新盘→释放出旧盘空间→用LiveCD扩大/(系统盘)。全文按“准备→迁移→扩容”三阶段讲解,并逐条解释每一条命令“到底在干嘛”。

适用场景

系统:银河麒麟 Kylin V10 SP1(ext4文件系统,命令同样适用于多数Debian/Ubuntu系)。

典型现状:/在nvme0n1p5,/data在nvme0n1p6,新增硬盘nvme0n2。

目标:把/data挪到nvme0n2p1,然后把nvme0n1里原先/data的空间“让渡”给/分区。

阶段A:准备与确认

1.查看系统版本

作用:确认发行版与内核,便于判断工具链与兼容性。

pdsyw@pdsyw-pc:~/桌面$ cat /etc/os-release 

pdsyw@pdsyw-pc:~/桌面$ uname -a

不重装也能扩容:麒麟Kylin V10系统盘增容(非LVM)

2.盘与挂载总览

作用:定位系统盘、数据盘、新硬盘,明确文件系统与挂载点。

pdsyw@pdsyw-pc:~/桌面$ lsblk -o NAME,SIZE,FSTYPE,MOUNTPOINT,UUID         

pdsyw@pdsyw-pc:~/桌面$ df -hT

pdsyw@pdsyw-pc:~/桌面$ sudo blkid

不重装也能扩容:麒麟Kylin V10系统盘增容(非LVM)

3.规划新盘分区表(GPT)与分区

作用:在新硬盘上新建GPT分区表,并创建覆盖整盘的DATA分区。创建ext4文件系统并写入卷标。

pdsyw@pdsyw-pc:~/桌面$ sudo parted -s /dev/nvme0n2 mklabel gpt

pdsyw@pdsyw-pc:~/桌面$ sudo parted -s /dev/nvme0n2 mkpart DATA ext4 1MiB 100%

pdsyw@pdsyw-pc:~/桌面$ sudo mkfs.ext4 -F -L DATA_NEW /dev/nvme0n2p1 

不重装也能扩容:麒麟Kylin V10系统盘增容(非LVM)

4.记住新UUID

作用:再次读取UUID以便fstab使用。

pdsyw@pdsyw-pc:~/桌面$ sudo blkid /dev/nvme0n2p1

不重装也能扩容:麒麟Kylin V10系统盘增容(非LVM)

阶段B:平滑迁移/data到新盘

1.临时挂载新分区

作用:把新盘挂到临时目录,便于数据预拷贝。

pdsyw@pdsyw-pc:~/桌面$ sudo mkdir -p /mnt/newdata

pdsyw@pdsyw-pc:~/桌面$ sudo mount /dev/nvme0n2p1 /mnt/newdata

不重装也能扩容:麒麟Kylin V10系统盘增容(非LVM)

2.预拷贝

作用逐项解释:

-a归档(保留权限/时间/软硬链接等),-HAXS进一步保留硬链接、ACL、扩展属性、稀疏文件;

–numeric-ids避免UID/GID名称不一致导致的权限偏差;

–info=progress2显示总体进度。

pdsyw@pdsyw-pc:~/桌面$ sudo rsync -aHAXS --numeric-ids --info=progress2 /data/ /mnt/newdata/

不重装也能扩容:麒麟Kylin V10系统盘增容(非LVM)

3.停止会写入/data的服务(如docker/mysql等)

作用:冻结写入,确保最终同步时数据一致。服务项按你的实际情况补充。

sudo systemctl stop docker || true

sudo systemctl stop mysql  || true

4.最终同步(增量“收口”)

作用:把停服到目前这段时间的新改动补齐,确保新盘数据与旧/data一致。

pdsyw@pdsyw-pc:~/桌面$ sudo rsync -aHAXS --numeric-ids --info=progress2 /data/ /mnt/newdata/

不重装也能扩容:麒麟Kylin V10系统盘增容(非LVM)

5.撤销旧分区卷标(可选)

作用:避免后续混淆(尤其用LABEL挂载的人)。

pdsyw@pdsyw-pc:~/桌面$ sudo e2label /dev/nvme0n1p6 ""

不重装也能扩容:麒麟Kylin V10系统盘增容(非LVM)

6.切换/etc/fstab到新盘UUID

作用:将系统的“永久挂载”指向新盘。

pdsyw@pdsyw-pc:~/桌面$ sudo vim /etc/fstab 

pdsyw@pdsyw-pc:~/桌面$ grep /data /etc/fstab 

不重装也能扩容:麒麟Kylin V10系统盘增容(非LVM)

不重装也能扩容:麒麟Kylin V10系统盘增容(非LVM)

7.验证挂载

作用:mount -a检查fstab是否可用。

pdsyw@pdsyw-pc:~/桌面$ sudo mount /data/home

pdsyw@pdsyw-pc:~/桌面$ sudo mount /data/root

pdsyw@pdsyw-pc:~/桌面$ sudo mount /data

pdsyw@pdsyw-pc:~/桌面$ sudo mount -a

不重装也能扩容:麒麟Kylin V10系统盘增容(非LVM)

8.查看挂载结果

作用:findmnt验证/data的确 来自新盘。

pdsyw@pdsyw-pc:~/桌面$ df -h

pdsyw@pdsyw-pc:~/桌面$ findmnt -R /data

不重装也能扩容:麒麟Kylin V10系统盘增容(非LVM)

9.重启系统

不重装也能扩容:麒麟Kylin V10系统盘增容(非LVM)

10.启动后再次查看分区

作用:重启后再确认一次。

pdsyw@pdsyw-pc:~/桌面$ df -h

pdsyw@pdsyw-pc:~/桌面$ findmnt -R /data

pdsyw@pdsyw-pc:~/桌面$ findmnt /home 

pdsyw@pdsyw-pc:~/桌面$ findmnt /root

不重装也能扩容:麒麟Kylin V10系统盘增容(非LVM)

11.关机

不重装也能扩容:麒麟Kylin V10系统盘增容(非LVM)

阶段C:扩容系统盘(用LiveCD操作)

1.使用livecd启动系统

为什么要LiveCD?运行中的系统无法在线移动/扩展正在使用的根分区(/)。进入LiveCD能“线下”改动分区表和文件系统而不被占用锁定。

不重装也能扩容:麒麟Kylin V10系统盘增容(非LVM)

2.打开分区编辑器

不重装也能扩容:麒麟Kylin V10系统盘增容(非LVM)

3.卸载旧/data分区

作用:在分区编辑器中卸载并删除旧的/data分区(原 nvme0n1p6)。释放出的空间会变成“未分配”。

不重装也能扩容:麒麟Kylin V10系统盘增容(非LVM)

4.删除旧/data分区

不重装也能扩容:麒麟Kylin V10系统盘增容(非LVM)

5.点击应用

不重装也能扩容:麒麟Kylin V10系统盘增容(非LVM)

6.点击应用

不重装也能扩容:麒麟Kylin V10系统盘增容(非LVM)

7.点击关闭

不重装也能扩容:麒麟Kylin V10系统盘增容(非LVM)

8.禁用旧交换分区

作用:在分区编辑器中禁用并删除旧的swap分区。释放出的空间会变成“未分配”。

不重装也能扩容:麒麟Kylin V10系统盘增容(非LVM)

9.删除旧交换分区

不重装也能扩容:麒麟Kylin V10系统盘增容(非LVM)

10.点击应用

不重装也能扩容:麒麟Kylin V10系统盘增容(非LVM)

11.点击应用

不重装也能扩容:麒麟Kylin V10系统盘增容(非LVM)

12.点击关闭

不重装也能扩容:麒麟Kylin V10系统盘增容(非LVM)

13.更新大小/移动系统分区

作用:扩大/,选中系统分区(如 nvme0n1p5),把后面的未分配空间合并进来,点击应用。

不重装也能扩容:麒麟Kylin V10系统盘增容(非LVM)

14.调整大小

不重装也能扩容:麒麟Kylin V10系统盘增容(非LVM)

15.点击应用

不重装也能扩容:麒麟Kylin V10系统盘增容(非LVM)

16.点击应用

不重装也能扩容:麒麟Kylin V10系统盘增容(非LVM)

17.点击关闭

不重装也能扩容:麒麟Kylin V10系统盘增容(非LVM)

18.在未分配的空间新建分区

作用:新建swap,在末尾留出合适空间(例如 16G)新建为linux-swap。

不重装也能扩容:麒麟Kylin V10系统盘增容(非LVM)

19.添加交换分区文件系统

不重装也能扩容:麒麟Kylin V10系统盘增容(非LVM)

20.点击应用

不重装也能扩容:麒麟Kylin V10系统盘增容(非LVM)

21.点击应用

不重装也能扩容:麒麟Kylin V10系统盘增容(非LVM)

22.点击关闭

不重装也能扩容:麒麟Kylin V10系统盘增容(非LVM)

23.查看新交换分区uuid

作用:修正fstab的swap UUID,让系统识别并使用新swap。

kylin@kylin:~/Desktop$ sudo blkid 

不重装也能扩容:麒麟Kylin V10系统盘增容(非LVM)

24.查看系统盘挂载点

kylin@kylin:~/Desktop$ df -h

不重装也能扩容:麒麟Kylin V10系统盘增容(非LVM)

25.编辑fstab中交换分区的UUID

kylin@kylin:~/Desktop$ sudo vim /media/livecddir/SYSROOT/etc/fstab 

kylin@kylin:~/Desktop$ grep swap /media/livecddir/SYSROOT/etc/fstab 

不重装也能扩容:麒麟Kylin V10系统盘增容(非LVM)

不重装也能扩容:麒麟Kylin V10系统盘增容(非LVM)

26.重启系统使用硬盘启动

作用:重启从硬盘进系统,使用lsblk/df -h再次核对。

不重装也能扩容:麒麟Kylin V10系统盘增容(非LVM)

27.查看分区大小

pdsyw@pdsyw-pc:~/桌面$ lsblk 

不重装也能扩容:麒麟Kylin V10系统盘增容(非LVM)

28.查看文件管理器中图标的显示

不重装也能扩容:麒麟Kylin V10系统盘增容(非LVM)

29.如果系统启动时显示如下

作用:某些机器在分区移动后首次启动可能报错,这时用LiveCD进入chroot做一次“组合拳”。

不重装也能扩容:麒麟Kylin V10系统盘增容(非LVM)

30.进入livecd后挂载分区进入chroot环境

作用:chroot把LiveCD的“外壳”切换到你的系统根目录。

root@kylin:~# mount /dev/nvme0n1p5 /mnt/

root@kylin:~# mount /dev/nvme0n1p1 /mnt/boot/

root@kylin:~# for i in /dev/ /dev/pts /proc/ /sys ; do mount -B $i /mnt/$i; done

root@kylin:~# chroot /mnt/

不重装也能扩容:麒麟Kylin V10系统盘增容(非LVM)

31.重新安装关键包

root@kylin:/# apt install --reinstall lvm2 initramfs-tools -y

不重装也能扩容:麒麟Kylin V10系统盘增容(非LVM)

32.重新生成initramfs

作用:重建initramfs确保启动镜像匹配最新分区布局。

root@kylin:/# update-initramfs -c -k all

不重装也能扩容:麒麟Kylin V10系统盘增容(非LVM)

33.更新grub

作用:grub-install + update-grub修复引导记录与菜单。

root@kylin:/# grub-install /dev/nvme0n1

root@kylin:/# update-grub

不重装也能扩容:麒麟Kylin V10系统盘增容(非LVM)

34.退出并重启

root@kylin:/# exit

root@kylin:~# umount -R /mnt

root@kylin:~# reboot

不重装也能扩容:麒麟Kylin V10系统盘增容(非LVM)

35.启动正常

不重装也能扩容:麒麟Kylin V10系统盘增容(非LVM)

常见坑与规避

rsync参数别简化:-aHAXS –numeric-ids能最大程度保持权限、ACL、xattr、硬链接与稀疏文件,避免迁移后应用“权限怪”。

服务必定要停:最终同步前别忘了停掉会写/data的服务,否则数据不一致。

只改一处挂载依据:统一用UUID写在/etc/fstab,避免LABEL/设备名混用。

LiveCD扩容顺序:先删旧/data &旧swap→扩/→再新建swap→最后改fstab。

结语

这套“新增一盘→迁移/data→扩容/”的路线,优点是可回退(切换fstab前原/data还在),操作风险可控。如果你也在为系统盘空间“红线”发愁,不妨按本文步骤实战一遍。欢迎收藏转发,点个在看和关注吧!

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
梦回三国日貂蝉gWm的头像 - 鹿快
评论 共1条

请登录后发表评论

    暂无评论内容