将加密的 SSD 克隆到更大的 SSD

Red*_*ity 14 encryption ssd clone

我目前有一个 128GB 的​​ SSD。它使用 Ubuntu 附带的加密。

将其克隆到另一个更大的 SSD,然后将分区扩展到更大以适应这个新的更大 SSD 的最佳方法是什么?

我可以像这样克隆磁盘,然后使用 Gparted 之类的东西来扩展分区吗?或者它不能像加密那样工作?

任何帮助,将不胜感激。

小智 12

假设:

因为我无法对您的帖子发表评论,所以我将不得不假设一些事情:

  1. 您的 SSD 挂载点位于 /dev/sdX
  2. 您更大的 SSD 挂载点位于 /dev/sdY
  3. 您正在使用 LUKS 全盘加密
  4. 您的加密分区是 /dev/sdX1
  5. 您的文件系统所在的未加密挂载点是/dev/mapper/sdX1_crypt,它使用的是ext4文件系统

更简单的方法:

最简单和最慢的方法是使用 dd

sudo dd  if=/dev/sdX of=/dev/sdY bs=64k  
Run Code Online (Sandbox Code Playgroud)

将每个字节从较小的 SSD 复制到较大的 SSD。这将为您提供一个完全可启动的系统,您必须断开较小的 SSD 才能启动,因为两个 SSD 共享相同的 UUID,系统使用该 UUID 识别单个磁盘。在启动之前,您将使用fdisk.

sudo fdisk /dev/sdY
Run Code Online (Sandbox Code Playgroud)

fdisk 是一个交互工具,你会先删除 LUKS 所在的分区(因为它的结束地址比新的更大的 SSD 短),然后你会创建一个新分区(fdisk 使用的默认值会填满所有未使用的空间),然后保存(这就是软件“扩展”分区的方式)。那么您将使用扩展 LUKS 容器cryptsetup

sudo cryptsetup luksOpen /dev/sdY1 sdY1_crypt
sudo cryptsetup resize /dev/sdY1_crypt
Run Code Online (Sandbox Code Playgroud)

最后你将使用扩展文件系统 resize2fs

sudo resize2fs /dev/mapper/sdY1_crypt
Run Code Online (Sandbox Code Playgroud)

更快的方法:

更快的和更复杂的方法是创建一个新的分区sdY1fdisk对加密的体积越大SSD,然后使用创建一个新的LUKS体积

sudo cryptsetup luksFormat [OPTIONS] /dev/sdY1
Run Code Online (Sandbox Code Playgroud)

并将其安装在sdY1_crypt.

sudo cryptsetup luksOpen /dev/sdY1 sdY1_crypt
Run Code Online (Sandbox Code Playgroud)

然后用于dd将未加密的文件系统从一个加密卷复制到另一个加密卷。

sudo dd if=/dev/mapper/sdX1_crypt of=/dev/mapper/sdY1_crypt bs=64k
Run Code Online (Sandbox Code Playgroud)

然后扩展文件系统 resize2fs

sudo resize2fs /dev/mapper/sdY1_crypt
Run Code Online (Sandbox Code Playgroud)

为了能够从新的更大的 SSD 启动,您必须在 SSD 的 MBR 中安装 grub

grub-install [OPTIONS] /dev/sdY
Run Code Online (Sandbox Code Playgroud)

笔记:

使用的所有命令都是高度可配置的,您会想要使用它们的一些选项,因为您比我更了解您的系统,使用man <command><command> --help了解它们可以做什么。

  • 好的最后跟进。我能够使第一种方法起作用。在继续在您的系统上安装 gparted 之前,我使用了 gparted。然后在执行``dd`` 命令将根驱动器复制到新的外部驱动器后,关机,移除原始驱动器并放入新驱动器。启动到新驱动器。使用 gparted 调整根分区的大小。然后:``sudo cryptsetup resize &lt;name&gt;`` ``sudo pvresize /dev/mapper/&lt;name&gt;`` ``sudo lvresize -l +100%FREE /dev/mapper/&lt;name&gt;`` ``sudo resize2fs -p /dev/mapper/&lt;name&gt;``(在我的例子中,&lt;name&gt; 的名字是 vg0-root) (2认同)

小智 5

我想在此线程中添加一些可以帮助其他人的信息。

截至今天(2019 年 10 月 27 日),我可以断言,对于其他尝试克隆全盘加密系统(LUKS 上的 LVM)的人来说,最简单的方法将是 Clonezilla 和 gparted 的组合。

使用 Clonezilla 的实时 USB 并在首次启动时放入 shell,cryptsetup -v luksOpen /dev/sdX unique-name每个磁盘解密两个磁盘。

通过退出 shell 提示符重新进入 clonezilla 的菜单(Ctrl -D 或直接退出)

然后开始磁盘到磁盘的传输,对于我的 2 个 500Gb 和 1Tb SSD(其中一个通过 USB 外部托架连接),大约需要 3 小时。

重新启动到新克隆的磁盘以检查其功能,然后从 gparted live cd / usb 启动。从 Gparted 0.28 开始,它现在支持调整 luks 分区大小,解密后增大分区,瞧!

它确实有效