当我兑换 / 时有什么需要注意的吗?

当我兑换 / 时有什么需要注意的吗?

我有一台笔记本电脑,其设置如下:

  • / 在 btrfs /dev/sda3 子卷上 @
  • btrfs /dev/sda3 子卷 @home 上的 /home
  • ext4 /dev/sda2 上的 /boot
  • vfat /dev/sda1 上的 /boot/efi
  • 无交换
  • tmpfs 上的 /tmp

现在我有了一个新的固态磁盘,我想用它来代替我当前的设置。除了将整个磁盘添加到 SSD(我不想这样做,因为它会将所有扇区标记为已使用)之外,我还应该采取哪些步骤来复制所有数据,以便我的系统之后仍能启动?

大问题:我无法同时将两张光盘插入我的系统,但我有一个足够快的 eSATA 备份光盘,它足够大,可以存储旧硬盘中的所有数据。

答案1

就我个人而言,我使用它tar来做这种事情:使用以下命令在 eSATA 磁盘上创建一个 tarball:

sudo tar cvfz /mnt/backup/backup.tgz --one-file-system / /boot /boot/efi/ /home /tmp

然后,您可以使用应急系统启动,创建分区和文件系统,安装 eSATA 磁盘,并解压 tarball。您还需要进行一些清理工作 —— 最值得注意的是,您需要调整/etc/fstab新系统的条目,并可能处理引导加载程序配置以将其指向新文件系统。

您已设置“UEFI”和“grub-efi”标签,因此我假设您拥有基于 EFI 的系统。BIOS 系统和 EFI 系统之间的一个主要区别是,基于 BIOS 的计算机依赖于隐藏在引导扇区和硬盘其他地方的引导代码,而 EFI 依赖于 ESP(/boot/efi在您的安装中)上的引导文件以及 NVRAM 条目。当您将一个磁盘换成另一个磁盘时,旧的 NVRAM 条目将不再有效,因为磁盘的 GUID 和 ESP 的 GUID 将发生变化。因此,您需要将引导加载程序移动到后备文件名/boot/efi/EFI/BOOT/bootx64.efi或使用该实用程序创建一个新的 NVRAM 条目efibootmgr,如下所示:

sudo efibootmgr -c -l \\EFI\\newloader\\loadername.efi -L NewLoader

详细信息取决于引导加载程序的位置以及您想要如何调用它。在某些情况下,您可能需要添加更多选项,特别是如果 ESP 不是/dev/sda1。请参阅efibootmgr手册页了解详细信息。此外,efibootmgr必须从 EFI 启动运行,因此它无法从某些紧急磁盘运行。

相关内容