将操作系统迁移至16TB硬盘并扩展/home分区空间的技术咨询
嘿,看起来你已经成功挂载了新的16TB硬盘,接下来要解决/home空间不足的问题对吧?我给你两个实用方案,你可以根据自己的需求选择:
方案一:直接把/home迁移到16TB硬盘(最省心,不用动整个系统)
这个方案不需要迁移整个操作系统,只把占空间的/home目录移到新盘,是最直接的解决办法:
先备份/home数据(重中之重!)
先把现有/home的内容完整备份到新盘的临时目录,避免操作出错丢失数据:sudo rsync -avx /home/ /mnt/data2/home_backup/参数说明:
-a保持权限和属性,-v显示进度,-x不跨分区同步,确保只同步/home本身的内容。卸载当前的/mnt/data2挂载点
sudo umount /mnt/data2获取新硬盘的UUID并修改fstab
先拿到/dev/sdc的UUID:blkid /dev/sdc然后编辑
/etc/fstab文件,添加一行让新硬盘开机自动挂载到/home:sudo nano /etc/fstab新增内容格式:
UUID=你的sdcUUID /home ext4 defaults 0 2保存退出(nano里按
Ctrl+O,回车,再Ctrl+X)。把备份的/home数据同步到新硬盘
先临时挂载新硬盘到临时目录:sudo mkdir /tmp/temp_home && sudo mount /dev/sdc /tmp/temp_home然后把备份的数据移过去:
sudo rsync -avx /mnt/data2/home_backup/ /tmp/temp_home/重启验证
sudo reboot重启后用
df -h /home查看,应该能看到/home已经是14.6T的空间了。清理旧的/home分区(可选)
确认新/home正常使用后,你可以把旧的/home分区(/dev/sda4)挂载到其他目录,比如:sudo mkdir /mnt/old_home && sudo mount /dev/sda4 /mnt/old_home然后删除里面的内容(或者保留当备份):
sudo rm -rf /mnt/old_home/*之后还可以把这个旧分区加到fstab里,作为额外存储使用。
方案二:把整个操作系统迁移到16TB硬盘(适合想彻底换系统盘的情况)
如果你想把整个系统都移到16TB硬盘,同时给/home分配更大空间,可以按以下步骤来:
给16TB硬盘分区
用fdisk或者gdisk工具给/dev/sdc分区,建议分区方案:/dev/sdc1:32G,作为swap分区(和原来的swap大小一致)/dev/sdc2:1G,作为/boot分区/dev/sdc3:2T,作为/根分区/dev/sdc4:剩下的全部空间(约12.6T),作为/home分区
分区完成后格式化各个分区:
mkfs.ext4 /dev/sdc2 # /boot分区 mkfs.ext4 /dev/sdc3 # /根分区 mkfs.ext4 /dev/sdc4 # /home分区 mkswap /dev/sdc1 # swap分区挂载新分区到临时目录
sudo mkdir /tmp/sdc_boot /tmp/sdc_root /tmp/sdc_home sudo mount /dev/sdc2 /tmp/sdc_boot sudo mount /dev/sdc3 /tmp/sdc_root sudo mount /dev/sdc4 /tmp/sdc_home sudo swapon /dev/sdc1同步系统数据到新硬盘
分别同步根目录、boot和home的内容:sudo rsync -avx / /tmp/sdc_root/ sudo rsync -avx /boot/ /tmp/sdc_boot/ sudo rsync -avx /home/ /tmp/sdc_home/修改新系统的fstab
先获取新分区的UUID:blkid /dev/sdc1 /dev/sdc2 /dev/sdc3 /dev/sdc4然后编辑新系统的fstab文件:
sudo nano /tmp/sdc_root/etc/fstab把原来的分区UUID全部替换成新的对应UUID,比如:
UUID=sdc1的UUID swap swap defaults 0 0 UUID=sdc2的UUID /boot ext4 defaults 0 2 UUID=sdc3的UUID / ext4 defaults 0 1 UUID=sdc4的UUID /home ext4 defaults 0 2安装GRUB引导到新硬盘
先挂载必要的虚拟文件系统,然后进入chroot环境:sudo mount --bind /dev /tmp/sdc_root/dev sudo mount --bind /proc /tmp/sdc_root/proc sudo mount --bind /sys /tmp/sdc_root/sys sudo chroot /tmp/sdc_root安装GRUB到新硬盘:
grub-install /dev/sdc更新GRUB配置:
update-grub退出chroot环境:
exit卸载临时挂载并重启
sudo umount /tmp/sdc_home /tmp/sdc_root /tmp/sdc_boot sudo swapoff /dev/sdc1 sudo reboot重启时在BIOS里选择从
/dev/sdc(16TB硬盘)启动,验证系统正常运行后,就可以处理旧的4TB硬盘了。
注意事项
- 所有操作前一定要备份重要数据,哪怕是小概率出错,也能避免损失
- 如果怕操作时系统正在运行出问题,可以用Linux Live USB/CD启动后再操作
- 修改fstab后,可以先测试挂载是否正常:
sudo mount -a,没有报错再重启 - 如果你对分区操作不熟悉,可以用图形化工具比如GParted来分区,更直观
备注:内容来源于stack exchange,提问作者Uploadkom

