我有一台二手的戴尔台式机,当时它被设置为双启动 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,这样我就可以保留所有自定义和配置。
我假设步骤如下:
- 格式化 SSD,创建空的 GPT 分区表(也许它会有一个???)
- 在 SSD 上创建所需分区 - EFI(fat32)、根(ext4)
- 填充 EFI(grub-install?)
- 将根目录从 /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 分区造成混乱,然后尝试启动克隆安装。如果您可以成功启动,希望一切顺利!