我的嵌入式Linux设备有2个分区:
- 包含操作系统的小根分区
- 使用 ext3 的大数据分区
我想使用加密文件系统加密数据分区。我不想丢失分区上的任何数据。根分区的大小太小,无法容纳数据分区的所有数据。无法使用任何外部数据存储。
有没有什么工具可以将数据分区的文件系统从 ext3 转换为加密 FS,而无需将所有文件复制到其他地方?
答案1
这是有可能的,但请注意:如果出现任何问题,您的数据将全部丢失。我强烈建议您先找到某种方法进行备份。
由于您不能使用外部数据存储,因此您必须在现场进行此操作。
这假设数据分区中的数据可以容纳当前空间的一半。
- 调整数据分区的大小并将其移动到磁盘末尾当前大小的一半。
- 在新创建的空闲空间中,创建一个新的加密 LUKS 卷,并在其中创建一个新的文件系统。
- 将旧分区中的所有文件复制到新分区,然后删除旧分区。
调整加密卷的大小(根据说明这里):
使用 cryptsetup 显示你的墓穴的大小。
sudo cryptsetup status crypt1
这显示了你的墓穴的扇区大小。
记下偏移量
offset: 2056 sectors
使用 cryptsetup 调整大小。
sudo cryptsetup -o 2056 -b 11800000 resize crypt1
-o = 偏移量(从状态命令获取)-b = 扇区大小。
- 最后,将加密卷中包含的文件系统调整为完整大小。如果您使用 ext3/4,则
sudo resize2fs /the/partition
应该足够了。
如果您的数据占用了超过一半的空间,您可以调整此过程,从较小的加密分区开始,然后多次调整大小并复制一些文件。显然更费力。