假设:

假设:

我目前有一块 128GB 的​​ SSD。它使用 Ubuntu 自带的加密技术。

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

我是否可以按原样克隆磁盘,然后使用 Gparted 之类的工具来扩展分区?或者加密后不能这样工作?

任何帮助,将不胜感激。

答案1

假设:

因为我无法评论你的帖子,所以我必须假设一些事情:

  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  

将每个字节从较小的 SSD 复制到较大的 SSD。这样您就可以获得一个完全可启动的系统,但您必须断开较小的 SSD 才能启动,因为两个 SSD 共享相同的 UUID,系统使用该 UUID 来识别各个磁盘。在启动之前,您可以使用 扩展物理分区fdisk

sudo fdisk /dev/sdY

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

sudo cryptsetup luksOpen /dev/sdY1 sdY1_crypt
sudo cryptsetup resize /dev/sdY1_crypt

最后,你可以使用以下方法扩展文件系统resize2fs

sudo resize2fs /dev/mapper/sdY1_crypt

更快的方法:

一种更快、更复杂的方法是在更大的 SSD 上为加密卷创建一个新分区sdY1fdisk然后使用以下命令创建一个新的 LUKS 卷

sudo cryptsetup luksFormat [OPTIONS] /dev/sdY1

并将其装载上sdY1_crypt

sudo cryptsetup luksOpen /dev/sdY1 sdY1_crypt

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

sudo dd if=/dev/mapper/sdX1_crypt of=/dev/mapper/sdY1_crypt bs=64k

然后使用以下方法扩展文件系统resize2fs

sudo resize2fs /dev/mapper/sdY1_crypt

为了能够从新的更大 SSD 启动,你必须使用以下命令在 SSD 的 MBR 中安装 grub

grub-install [OPTIONS] /dev/sdY

笔记:

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

答案2

我想向该主题添加一些可以帮助其他人的信息。

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

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

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

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

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

它就是有效

相关内容