0%

Linux 下的分区迁移

Linux 下的分区迁移

普通分区迁移

  1. free space -> 新建ext4分区
  2. 分区数据拷贝(按字节复制)
1
sudo dd if=/dev/sda0 of=/dev/sda1 bs=64M
  1. 检查分区完整性
1
sudo e2fsck -f /dev/sda1
  1. 修改文件系统大小

dd按字节复制,会把文件系统的所有信息都复制到新分区,因此新分区的大小显示依旧是原有分区大小。

1
sudo resize2fs /dev/sda1
  1. 在新的分区的/etc/fstab内修改UUID:

grub引导时按照uuid寻找根目录,而dd按字节拷贝后的分区与根分区具有完全相同的uuid,grub引导时会出现错误。

设置随机uuid

1
sudo tune2fs -U random /dev/sda1

1
uuidgen | xargs sudo tune2fs /dev/sda1 -U
  1. 设置自动挂载:修改/etc/fstab
1
UUID=8f418dae-a22c-43ef-b46e-87b075bbeaec /opt            ext4    defaults        0       2

重启,验证。

对于根分区

  1. 修改grub,重建引导(需要在 Live CD或者 Live USB 上进行)

boot-repair修改默认os-boot分区时,不能在当前os运行时修改

在 Live CD / Live USB 上下载boot-repair:(先配好网络)

1
2
sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt install -y boot-repair

启动boot-repair,选择Advanced Options,修改os-default-boot到目标分区/dev/sda1,重启,验证。