我需要将 LUKS 加密分区移至硬盘驱动器的末尾以扩展另一个分区。
有人知道该怎么做吗?
可以使用其他分区编辑程序来做到这一点吗?
Gparted 不支持 LUKS/LVM
编辑:
我写了一个关于如何解决这个问题的快速教程: http://matthiaslee.com/moving-a-luks-encrypted-lvm-with-dd-and-sfdisk/
答案1
最简单的方法是在磁盘末尾创建一个新分区,然后将旧分区的内容复制到新分区。这是不可能的,因为您的磁盘分区确实不太理想。PC 分区表只能容纳 4 个主分区。因此,第四个主分区必须位于磁盘末尾。将 sda4 放在磁盘末尾之外是一个相当愚蠢的想法,因为不可能在 sda4 后面添加另一个分区。
因此,唯一的方法是手动计算 sda4 的开始和结束,删除它,在磁盘末尾创建一个新文件,并将内容移到新创建的文件中。但这是一个相当危险的操作,你应该先创建一个完整的硬盘磁盘映像。为了创建磁盘映像,请启动 Knoppix 等救援 CD,然后执行以下操作
dd if=/dev/sda of=/some/mountpoint/from/sdb bs=512
所有其他步骤也应使用救援 CD 完成。
备份后,使用 检查硬盘的几何结构sfdisk -luS
。输出将提供每个分区的开始和结束。这是我的磁盘的一个示例:
磁盘 /dev/sda:60801 个柱面,255 个磁头,63 个扇区/磁道 单位 = 512 字节扇区,从 0 开始计数 设备启动开始结束#扇区ID系统 /dev/sda1 * 63 1959929 1959867 83 Linux /dev/sda2 1959930 3919859 1959930 82 Linux 交换 / Solaris /dev/sda3 3919860 976768064 972848205 5 扩展 /dev/sda4 0 - 0 0 空 /dev/sda5 3919923 19551104 15631182 83 Linux /dev/sda6 19551168 976768064 957216897 83 Linux
例如,分区 5 从扇区 3919923 开始,包含 15631182 个扇区。每个扇区有 512 字节。您必须记下分区的起始扇区和大小。一定要以您以后可以读取的方式记下来。;-)
之后,您可以擦除 sda4 并在磁盘末尾创建一个具有相同大小的新 sda4。
现在可以通过以下命令将旧 sda4 的内容移动到新 sda4:
dd if=/dev/sda of=/dev/sda bs=512 skip=BEGIN_OLD_SDA4 count=SIZE_SDA4 seek=BEGIN_NEW_SDA4
您必须插入您记下的尺寸。
祝你好运。