我可以将 Linux 启动分区移动到另一个驱动器或分区并从那里启动吗?

我可以将 Linux 启动分区移动到另一个驱动器或分区并从那里启动吗?

我可以将工作启动分区/根文件系统移动到另一个驱动器/分区并从那里启动吗?

或者设备名称会被更改而导致系统停止工作吗?

答案1

对的,这是可能的。也并不容易。如果您打算移动单独的/boot分区和/或/分区,您应该首先考虑更改 fstab 条目。

如果您要将文件移动到新分区,请不要忘记cp -p在复制时使用以保留权限。然后调整您/etc/fstab将使用的分区的新 UUID。您可以通过运行获取分区 uuid,blkid /dev/sdXn其中 X 是驱动器名称,n 是分区数。

您还可以使用 blkid 将标签附加到分区,然后通过标签进行安装,这样更容易阅读man blkid以了解更多信息。

更改分区并调整 /etc/fstab 后,您应该运行update-grub- available on Debian/Ubuntu 脚本或grub-mkconfig -o /boot/grub/grub.cfg生成新的配置文件,然后将 grub 重新安装到您 bot 所在的第一个硬盘中。grub-install --recheck /dev/sda

当然,不要忘记,在复制时在 /mnt 上挂载新的 / 或 /boot 分区,并在复制所有文件后将它们挂载为 / 和 /boot chroot,然后如果您希望正确完成操作,则只能运行 grub 更新。

答案2

/etc/fstab如果您在(以及可能与您的发行版相关的其他相关文件)中使用 UUID ,例如/dev/disk/by-uuid/57c59366-9196-4613-ba53-5ad24dcecfb9,并在移动内核引导分区时调整引导加载程序配置,那么它应该可以工作。

答案3

我只是想提一下我做了什么来移动安装在旧 MBR 样式磁盘中的 Debian Stretch,该磁盘已接近死亡,并将操作系统移动到带有 GPT 的新磁盘,在我的情况下,ESP(EFI 系统分区)存在于旧磁盘中,所以我已经使用 UEFI 启动。我遵循了用户 in1t3r 上面已经给出的答案。

  1. 在 USB 中获取 gparted 实时信息
  2. 使用 gparted live 启动,选择旧驱动器选择分区,复制分区
    选择新驱动器粘贴分区,保存更改。对 root(和启动)和 ESP(EFI 系统分区)执行此操作
  3. 正常启动到旧驱动器中的操作系统。
  4. 运行 sudo gdisk,进入新的 /dev/sdX 检查 ESP 分区,如果不正确设置为 ef00。 (使用?或“帮助”命令)
  5. 检查复制到新驱动器的分区的 UUID,使用命令 sudo blkid,(blkid 是 e2fsprogs 包的一部分)
  6. 如果 UUID 与旧分区不同,请更改在新驱动器中复制的新分区的 UUID,
    请使用命令,tune2fs -U random /dev/sdXy
    如果要求运行,请运行 e2fsck -f /dev/sdbXy ,运行它然后运行une2fs。
  7. 创建挂载点目录“/newpart”以挂载新的驱动器分区。
  8. 挂载新驱动器操作系统根(和引导)分区,
    a) root drv; sudo mount /dev/sdbXx /newpart
    b) ESP drv; sudo 安装 /dev/sdbXy /newpart/boot/efi
  9. 我们需要更新并生成新的 grub,但为此我们需要 chroot 到新分区作为 root
    mount dev,proc,sys on '/newpart' dev,proc,sys
    sudo mount --rbind /dev /newpart/dev
    sudo mount --rbind /proc /newpart/proc
    sudo mount --rbind /sys /newpart/sys
  10. 将新操作系统部分 (/newpart/etc/fstab) 和旧操作系统部分上的 /etc/fstab 更改为指向 root(/) 并引导(如果存在)为新 UUID,
    UUID=[new-part-UUID] ,注释旧部分
  11. chroot 到 '/newpart',sudo chroot /newpart
  12. 运行
    a) grub-install --recheck
    c) update-grub
    b) grub-install --recheck
    d) exit(从 chroot 退出)
  13. 卸载 dev,proc,sys (递归卸载需要第一个 mount --make-rslave)
    sudo mount --make-rslave /newpart/sys
    sudo mount --make-rslave /newpart/proc
    sudo mount --make-rslave /newpart /dev
    sudo umount -R /newpart/sys
    sudo umount -R /newpart/proc
    sudo umount -R /newpart/dev
    sudo umount /newpart
  14. 更正旧操作系统 /etc/fstab 以指向 root(/) 并启动 id 像以前一样存在,(注意不要在新磁盘中更改)
  15. 重启,
  16. 进入 UEFI-BIOS,选择新磁盘作为启动优先级
  17. 使用新驱动器 ESP 重新启动时,将出现 Grub 菜单,进入第一个菜单向导。新驱动器上的操作系统。
    (第二个菜单适用于旧驱动器中的操作系统)

相关内容