Red*_*ity 14 encryption ssd clone
我目前有一个 128GB 的 SSD。它使用 Ubuntu 附带的加密。
将其克隆到另一个更大的 SSD,然后将分区扩展到更大以适应这个新的更大 SSD 的最佳方法是什么?
我可以像这样克隆磁盘,然后使用 Gparted 之类的东西来扩展分区吗?或者它不能像加密那样工作?
任何帮助,将不胜感激。
小智 12
因为我无法对您的帖子发表评论,所以我将不得不假设一些事情:
/dev/sdX/dev/sdY/dev/sdX1/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)
更快的和更复杂的方法是创建一个新的分区sdY1与fdisk对加密的体积越大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了解它们可以做什么。
小智 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 分区大小,解密后增大分区,瞧!
它确实有效