将 Ubuntu 根目录移动到将成为启动设备的新 SSD

将 Ubuntu 根目录移动到将成为启动设备的新 SSD

我有一台二手的戴尔台式机,当时它被设置为双启动 Windows(在磁盘 0 - /dev/sda 上)和 Ubuntu(在磁盘 1 - /dev/sdb 上)。我删除了 Windows 安装,/dev/sda 现在包含数据。

Fdisk 显示:

Device         Start       End   Sectors   Size Type
/dev/sda1       2048   1023999   1021952   499M Windows recovery environment
/dev/sda2    1024000   1228799    204800   100M EFI System ( mounted at/boot/efi)
/dev/sda3    1228800   1261567     32768    16M Microsoft reserved
/dev/sda4    1261568 656621567 655360000 312.5G Microsoft basic data (really linux ext4 fs)
/dev/sda5  656621568 976773119 320151552 152.7G Linux filesystem (ext4)

我正在购买一个 SSD,我想将其用作启动设备(UEFI,而不是传统设备),并且它将包含根分区。我想将当前的根分区(/dev/sdb1)克隆到 SSD,而不是重新安装 Ubuntu,这样我就可以保留所有自定义和配置。

我假设步骤如下:

  1. 格式化 SSD,创建空的 GPT 分区表(也许它会有一个???)
  2. 在 SSD 上创建所需分区 - EFI(fat32)、根(ext4)
  3. 填充 EFI(grub-install?)
  4. 将根目录从 /dev/sdb 复制到 SSD

我完全不确定该怎么做 - 我应该从我当前的 Ubuntu (22.04) 的 liveUSB 上执行所有这些操作吗?一旦我将现有的根分区复制到 SSD,我认为我需要调整 /etc/fstab?还有其他问题吗?

我将很感激健全性检查和反馈。

短暂性脑缺血。

答案1

您的某些步骤没有按顺序进行,并且缺少了一些部分,但是您的总体想法是正确的。

首先,是的,您需要使用实时 USB 进行克隆。克隆时,根分区上的每个文件都应处于“静止”状态(即没有程序主动使用它)。

接下来,您说得对,首先要创建一个 EFI 分区,然后创建一个根分区。但是,这将使您EFI 分区,一个在旧磁盘上,一个在新磁盘上,这可能会造成混淆。我们可以在最后处理这部分。

下一步是不是grub-install 步骤。相反,这是您想要进行克隆的时候。从实时 USB,您需要执行如下操作:

cd /mnt
mkdir source
mkdir dest
sudo mount /dev/sdXY ./source    # this isn't guaranteed to be sdb1 anymore, so check it with lsblk first!
sudo mount /dev/sdAB ./dest
sudo cp -a ./source/. ./dest/.   # the slashes and periods are important here

最后一个命令将需要一个尽管运行,具体取决于需要复制多少文件。这会将根分区上的所有文件复制到新分区,并尽可能多地保留信息,包括文件权限。(请勿不是在这里使用cp -r,它会破坏文件权限,你几乎肯定会得到一个损坏的克隆。cp -a就是这样。)

一旦完成,您的克隆就完成了,但您还没有完全脱离困境。您仍然需要安装引导加载程序,但您还必须调整 /etc/fstab。这是告诉 Linux 在启动期间要挂载什么以及在哪里挂载的文件。通常 /etc/fstab 通过 UUID 识别您的根分区,并且您的分区的 UUID 将与以前不同。

要找出分区的 UUID,请使用lsblk -f。这将显示一堆分区信息,包括 UUID。找到目标驱动器的 UUID,并将其复制到文本文件中。

接下来,运行“sudo nano /mnt/dest/etc/fstab”,找到挂载根分区的行(它将有一个/作为挂载点)。将此行中的 UUID 替换为您之前找到的新分区的 UUID。然后按Ctrl+S保存,然后Ctrl+X按 退出。

sudo mount /dev/sdAC /mnt/dest/boot/efi现在我们可以安装引导程序了。使用(根据需要替换)挂载新的 EFI 分区AC。然后,您应该能够使用以下命令安装引导程序:

sudo grub-install --target x86_64-efi --efi-directory /mnt/dest/boot/efi --boot-directory /mnt/dest/boot

最后,生成 GRUB 配置:

sudo grub-mkconfig -o /mnt/dest/boot/grub/grub.cfg

完成此操作后,关闭计算机,断开旧驱动器以防止旧 EFI 分区造成混乱,然后尝试启动克隆安装。如果您可以成功启动,希望一切顺利!

相关内容