7
8月
2022
克隆 HDD-SSD 后设置从另一个驱动器启动 Linux
2:05

克隆 HDD-SSD 后设置从另一个驱动器启动 Linux

7 8月 2022 2:05

克隆磁盘后,您需要配置操作系统,以便它从新的、更快的 SSD 磁盘启动。

背景

在 AliExpress 上为家用电脑购买的 WEIJINTO SSD 驱动器已到货。
WEIJINTO SSD 120GB, 240GB, 128GB, 256GB, 512GB, 480GB, 960GB, 360GB, 2.5英寸在WEIJINTO商店
对于 120 GB 的容量,我支付了 800 卢布(约 11 美元)。 尽管价格昂贵,该公司仍生产高质量的数据存储设备。 所以,该公司的磁盘已经工作了1年多了,在恶劣的条件下,没有任何评论。

SSD 驱动器的物理连接

在系统单元中,两个驱动器都使用 SATA 电缆连接到主板:

  • 第一个硬盘包含旧磁盘的所有分区。
  • 第二个 SSD 驱动器将仅包含主分区(安装在“/”处)。

磁盘克隆

首先,您需要确保该磁盘存在于系统中,即使它尚未分区。

sudo apt-get install gnome-disk-utility

现在通过“开始”菜单 - “附件” - “磁盘”启动“磁盘”实用程序
或运行命令(做同样的事情):

gnome 磁盘

首先,让我们找出源磁盘(旧 HDD)的布局类型 - 我有 GPT 布局类型。
我决定也使用 GPT 类型对新磁盘进行分区。
总蛋白

在窗口左侧,选择SSD磁盘,我们看到它正在工作,但尚未分区(并且不包含信息)。
磁盘
关闭图形实用程序“磁盘”,目前还不需要它。

磁盘分区

从命令行启动 fdisk 并执行命令

sudo fdisk /dev/sdb
g
n
p
w

g 命令创建一个 GPT 分区,n 创建一个“Linux”类型的新分区,p - 显示分区(检查),w - 写入并退出。

将主分区从 HDD 克隆到 SSD

让我们找出文件的“根”(/)位于哪个分区。

 lsblk

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT

sda 8:0 0 465,8G 0 disk

├─sda1 8:1 0 300M 0 part /boot/efi

├─sda2 8:2 0 73,9G 0 part /

├─sda3 8:3 0 7,8G 0 part [SWAP]

├─sda4 8:4 0 90,8G 0 part /var

└─sda5 8:5 0 293G 0 part /home

可见“根”对应的是 sda2 (其他可能有 sda1)。

第二次驾驶,目的地驾驶 深圳发展银行 也是可见的,我们创建的体积在里面可见 sdb1

sdb 8:16 0 111,8G 0 disk

└─sdb1 8:17 0 111,8G 0 part

! 目标磁盘必须大于源分区 (111G > 73.9G)。

我开始在 sda 和 sdb 磁盘之间从一个分区克隆到另一个分区。
源磁盘 sda2 复制到目标磁盘 sdb1,缓冲区大小 2 MB:

sudo dd if=/dev/sda2 of=/dev/sdb1 bs=2M

克隆花了我大约 30 分钟。

为 SSD 磁盘分区分配新的 UUID

为了防止重复,也为了更容易区分磁盘,我决定更改目标磁盘上卷的 UUID,即写下一个新的 uuid,

生成uuid;

uuidgen

结果值被复制到剪贴板并替换为命令参数,
从而用新的 uuid 替换 /dev/sdb1 分区的 uuid:

sudo tune2fs /dev/sdb1 -U новый_uuid

该命令需要 5 秒才能完成。

克隆后检查新磁盘的文件系统

我们深信,即新的 SSD 磁盘 sdb,更准确地说是卷“/dev/sdb1”未安装:

sudo umount /dev/sdb1

运行文件系统检查:

sudo e2fsck -f /dev/sdb1

最主要的是:确保操作系统从新分区启动

我们知道SSD上新启动分区和主分区的uuid标识符,但是您可以通过另一种方式找到它(如果您忘记了):

ls -l /dev/disk/by-uuid

 lsblk -f

还剩下 2 个简单的步骤要做:

1)添加命令 GRUB_DEVICE_UUID (指示下次启动的驱动器),
到配置文件 /etc/default/grub,

sudo nano /etc/default/grub

! /etc/default/grub 文件仍然位于旧分区 /dev/sda2 上,但在下次引导时,GRUB2 引导加载程序将选择具有我们为其指定的 UUID 的卷。

配置文件行 /etc/default/grub 如下(不输入星号):

GRUB_DEVICE_UUID=**вставьте здесь uuid нового загрузочного раздела (том sdb1 на SSD диске)**

Ctrl+O、Ctrl+X

我们更新 GRUB 配置:

 sudo update-grub

2) 在新部分中,编辑 FSTAB 文件

为此,请在“磁盘”实用程序中安装具有 1 个分区的新 SSD 磁盘(带有三角形 ▶ 的按钮)。

在资源管理器中,查找路径 /media/user/uuid 并在文本编辑器中打开该文件 /etc/fstab

编辑“/media/user/long_uuid/etc/fstab”。

我们将 /dev/sda2 的旧 uuid 替换为新的 uuid,即 /dev/sdb1
系统表
保存 fstab 文件并重新启动 PC。

现在 grub 将使用新的 uuid 进行引导,并且 fstab from the new disk 也将使用新 SSD 磁盘的 uuid。

检查

除了减少操作系统的加载时间(在我的例子中,时间从1分3秒减少到34秒),还可以在同一实用程序中查看当前连接“光盘”。 HDD磁盘上的旧分区2号 已安装,SSD 上的新安装为 “根卷”

汤姆

注意事项

我的旧磁盘上的用户分区 /home 和系统设置分区 /var 被分成单独的卷。 它们在相同的地方仍然是相同的独立部分。 在这种情况下,加载操作系统和启动程序时会出现 PC 加速。 在此示例中,用户配置文件保存在旧 HDD 上。 如果源磁盘分区不同,整个磁盘都分配到“根”(/),包括/home,那么您需要购买比原始 HDD 磁盘更大容量的 SSD(例如 1 TB)。


链接:
如何更改 /boot/grub/grub.cfg 中的 UUID
如何在Linux中更改磁盘分区UUID



相关出版物