假设:
因为我无法对您的帖子进行评论,所以我不得不做一些假设:
- 您的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
来扩展LUKS容器。
sudo cryptsetup luksOpen /dev/sdY1 sdY1_crypt
sudo cryptsetup resize /dev/sdY1_crypt
最后,您将使用
resize2fs
来扩展文件系统。
sudo resize2fs /dev/mapper/sdY1_crypt
更快的方法:
一个更快、更复杂的方法是在较大的SSD上使用fdisk创建一个名为sdY1的新分区,然后使用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 ”或“ --help”来了解它们能做什么。