![我可以将 Linux 启动分区移动到另一个驱动器或分区并从那里启动吗?](https://linux22.com/image/116067/%E6%88%91%E5%8F%AF%E4%BB%A5%E5%B0%86%20Linux%20%E5%90%AF%E5%8A%A8%E5%88%86%E5%8C%BA%E7%A7%BB%E5%8A%A8%E5%88%B0%E5%8F%A6%E4%B8%80%E4%B8%AA%E9%A9%B1%E5%8A%A8%E5%99%A8%E6%88%96%E5%88%86%E5%8C%BA%E5%B9%B6%E4%BB%8E%E9%82%A3%E9%87%8C%E5%90%AF%E5%8A%A8%E5%90%97%EF%BC%9F.png)
我可以将工作启动分区/根文件系统移动到另一个驱动器/分区并从那里启动吗?
或者设备名称会被更改而导致系统停止工作吗?
答案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 上面已经给出的答案。
- 在 USB 中获取 gparted 实时信息
- 使用 gparted live 启动,选择旧驱动器选择分区,复制分区
选择新驱动器粘贴分区,保存更改。对 root(和启动)和 ESP(EFI 系统分区)执行此操作 - 正常启动到旧驱动器中的操作系统。
- 运行 sudo gdisk,进入新的 /dev/sdX 检查 ESP 分区,如果不正确设置为 ef00。 (使用?或“帮助”命令)
- 检查复制到新驱动器的分区的 UUID,使用命令 sudo blkid,(blkid 是 e2fsprogs 包的一部分)
- 如果 UUID 与旧分区不同,请更改在新驱动器中复制的新分区的 UUID,
请使用命令,tune2fs -U random /dev/sdXy
如果要求运行,请运行 e2fsck -f /dev/sdbXy ,运行它然后运行une2fs。 - 创建挂载点目录“/newpart”以挂载新的驱动器分区。
- 挂载新驱动器操作系统根(和引导)分区,
a) root drv; sudo mount /dev/sdbXx /newpart
b) ESP drv; sudo 安装 /dev/sdbXy /newpart/boot/efi - 我们需要更新并生成新的 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 - 将新操作系统部分 (/newpart/etc/fstab) 和旧操作系统部分上的 /etc/fstab 更改为指向 root(/) 并引导(如果存在)为新 UUID,
UUID=[new-part-UUID] ,注释旧部分 - chroot 到 '/newpart',sudo chroot /newpart
- 运行
a) grub-install --recheck
c) update-grub
b) grub-install --recheck
d) exit(从 chroot 退出) - 卸载 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 - 更正旧操作系统 /etc/fstab 以指向 root(/) 并启动 id 像以前一样存在,(注意不要在新磁盘中更改)
- 重启,
- 进入 UEFI-BIOS,选择新磁盘作为启动优先级
- 使用新驱动器 ESP 重新启动时,将出现 Grub 菜单,进入第一个菜单向导。新驱动器上的操作系统。
(第二个菜单适用于旧驱动器中的操作系统)