我目前有一块 128GB 的 SSD。它使用 Ubuntu 自带的加密技术。
将其克隆到另一个更大的 SSD,然后将分区扩展为更大的大小以适合这个新的更大的 SSD,最好的方法是什么?
我是否可以按原样克隆磁盘,然后使用 Gparted 之类的工具来扩展分区?或者加密后不能这样工作?
任何帮助,将不胜感激。
答案1
假设:
因为我无法评论你的帖子,所以我必须假设一些事情:
- 您的 SSD 安装点位于
/dev/sdX
- 您的较大 SSD 安装点位于
/dev/sdY
- 您正在使用 LUKS 全盘加密
- 您的加密分区是
/dev/sdX1
- 您的文件系统所在的未加密挂载点是,
/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 上为加密卷创建一个新分区sdY1
,fdisk
然后使用以下命令创建一个新的 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-name
for解密两个磁盘每个磁盘。
通过退出 shell 提示符(Ctrl -D 或直接退出)重新进入 clonezilla 的菜单
然后开始磁盘到磁盘的传输,对于我的 2 个 SSD(一个通过 USB 外部托架连接),分别为 500Gb 和 1Tb,大约需要 3 个小时。
重新启动到新克隆的磁盘以检查其功能,然后从 gparted live cd/usb 启动。从 Gparted 0.28 开始,它现在支持调整 luks 分区的大小,解密后扩大分区,瞧!
它就是有效