我有一个外置硬盘,有两个分区 - 一个已加密,另一个未加密。我想将所有数据移至加密分区,然后调整其大小以占据整个硬盘。
如果我在 truecrypt 加密的分区上使用 gparted,这会破坏数据吗?
否则我必须解密、合并、调整大小然后重新加密。
答案1
Gparted 只识别物理磁盘 - Truecrypt 分区甚至不会显示在 Gparted 中,除非整个分区已被指定为 Truecrypt 分区。当然容器也不会出现。
无法调整现有的 truecrypt 分区的大小(在 6.3 版本之前有一种复杂的方法,但在最近的版本中不再有效)。
我认为您唯一的选择是将您的数据移动到另一个卷,格式化您的驱动器并对其进行 Truecrypt,然后将您的数据复制到新创建的 Truecrypt 驱动器上。
答案2
我知道这个问题已经有 2 年了,但是有一个简单的解决方案,其他人可能会问同样的问题,所以这就是我所做的:
- 将所有数据复制到加密分区
- 使用随机数据覆盖分区将调整大小的区域。在您的示例中,您可以覆盖现在已过时的分区(cat /dev/urandom >/dev/oldpartition 很慢,因此有提示使用类似以下内容:openssl enc -aes-128-ctr -pass pass:“$(dd if=/dev/urandom bs=128 count=1 2>/dev/null | base64)”-nosalt < /dev/zero | dd of=/dev/sdd obs=4096 在 obs 中输入正确的扇区大小,并确保在 of 参数中使用正确的设备。这比使用 /dev/urandom 快得多,但不能保证它同样安全。)
- 使用 dd 备份分区表
- 使用 parted 删除现已过时的分区
- 卸载加密分区,保持加密容器打开
- 记下要调整大小的分区的起始扇区(首先使用“unit s”将单位切换为 parted 中的扇区)
- 在 parted 中删除要调整大小的分区(不用担心,您的数据保持完整,只有分区表被编辑)
- 创建具有完全相同的起始扇区和预期长度的分区
- 在打开的 crypt-container 上运行 cryptsetup resize
- 调整文件系统大小为 ext4 使用 resize2fs /dev/mapper/crypt-container
=> 您已完成。根据您的文件系统,您甚至可以在调整文件系统大小之前重新挂载它
答案3
假设您通过格式化而不是就地加密数据创建了 Truecrypt 卷,您可以像这样实现您的目标(gparted 不是一个选项):
- 挂载加密分区
- 将整个数据从未加密的分区复制到已挂载的 Truecrypt 卷
- 卸载加密分区
- 使用 parted 修改分区表(假设 MBR 分区表布局)
- 删除第二个/未加密的分区
- 记下 Truecrypt 分区的起始扇区
- 删除 Truecrypt 分区
- 使用旧 Truecrypt 分区的旧起始扇区和驱动器的最后一个扇区创建一个新分区,以便该分区跨越整个磁盘
- 使用外泄在安装了 Truecrypt 7.1a 的 Windows 中扩展新分区内的 Truecrypt 卷
A更详细的指南这也将解释如何处理就地加密分区托管卷。
答案4
我最后听说 GParted 正在开发对加密分区的支持,但尚未发布任何可用的代码。因此,虽然您可能可以移动分区,甚至可能为其分配更多空间(前提是您将更多空间放在末尾而不是开头),但 GParted 无法调整其中的文件系统大小,因此额外的空间将无法使用。您可能能够添加空间,然后挂载分区并从那里调整 FS 的大小,但我不确定。我会在有空的时候测试它,如果我可以让它工作,我会回复。
最好的办法可能是将其解密,重新整理数据,然后重新加密。