我正在调整包含单个 ext4 文件系统(没有 LVM 等)的 LUKS 加密分区的大小。这密码设置常见问题解答建议删除旧分区并重新创建它,但这听起来浪费了很多时间。因此,我想继续手动、仔细地调整分区大小。
到目前为止,我认为我需要做的是:
- 创建文件系统的(加密)备份。重要的!在执行以下任务时,您不会是第一个丢失数据的人。
- 卸载现有的 ext4 文件系统(例如通过启动 Live CD)。如果从 Live CD 启动,请使用以下命令挂载加密分区
cryptsetup luksOpen /dev/sdXY ExistingExt4
- 调整现有 ext4 文件系统的大小。
cryptsetup resize /dev/mapper/ExistingExt4 -b $SECTORS
- 使用以下命令关闭/“卸载”LUKS 分区
cryptsetup luksClose ExistingExt4
- 缩小分区大小。
以上步骤正确吗?
在步骤 4 中,我应该选择什么$SECTORS
?这一步还有必要吗?手册cryptsetup
页并没有真正描述该resize
选项:
resize <name>
resizes an active mapping <name>.
If --size (in sectors) is not specified, the size of the underlying
block device is used.
最后,如果我将 ext4 分区缩小 15 GiB,我可以安全地假设可以使用从现有分区中删除 15 GiBparted
吗?如果是,该怎么做?我的磁盘是 GPT 分区的(如果有的话)。
答案1
备份(第 1 步)和卸载(第 2 步和第 3 步之间)后,运行fsck
以确保文件系统正常:
e2fsck -f /dev/mapper/ExistingExt4
除此之外,步骤就OK了。
cryptsetup resize
命令的目的
我应该为 $SECTORS 选择什么?这一步还有必要吗?
此步骤是必要的,否则分区仍会显示在旧一侧。 Nautilus 证实了这一点,即使在使用 调整大小后 此步骤不是必需的。它仅影响文件浏览器中显示的当前大小状态。更改大小并再次关闭/打开分区后,数量恢复。因此,当关闭 LUKS 分区(如稍后所示)时,此操作将变得过时。resize2fs
,LUKS 分区仍显示为旧大小。运行后cryptsetup resize
,显示正确的数字。
$SECTORS
可以通过查看以下输出来确定cryptsetup status ExistingExt4
:
/dev/mapper/ExistingExt4 处于活动状态。 类型:LUKS1 密码:aes-cbc-essiv:sha256 密钥大小:256 位 设备:/dev/sda2 扇区大小: 第512章 偏移量:2056 个扇区 尺寸: 156049348部门 模式:读/写
(作为cryptsetup 2.0.0(2017 年 12 月),扇区大小可能大于 512 字节:请参阅cryptsetup(8)
联机帮助页和--sector-size
选项。)
因此,要减去 15 GiB,请使用扇区大小156049348 - 15 * 1024 * 1024 * 2 = 124592068
:
cryptsetup resize ExistingExt4 -b 124592068
调整分区大小parted
至于调整分区大小,parted
GPT 分区效果很好。但是,该resize
命令不起作用,作为解决方法(或解决方案),请删除分区信息并创建一个新分区,灵感来自http://ubuntuforums.org/showthread.php?p=8721017#post8721017:
#cryptsetup luks关闭现有Ext4 #分开/dev/sda2 GNU 分开 2.3 使用/dev/sda 欢迎来到 GNU Parted!键入“help”以查看命令列表。 (分手)单位 (分手)p 型号:ATA INTEL SSDSA2CW08 (scsi) 磁盘/dev/sda:156301488s 扇区大小(逻辑/物理):512B/512B 分区表:gpt 编号 开始 结束 大小 文件系统名称 标志 1 34s 2082s 2049s 启动bios_grub 3 2083s 250034s 247952s ext2 根引导 2 250035s 156301438s 156051404s 全部
由于必须削减 15 GiB,因此新的末端变为156301438 - 15 * 1024 * 1024 * 2 = 124844158
.由于我想更改分区 2,因此我首先必须将其删除,然后使用标签“Everything”重新创建它(如果您愿意,可以更改)。笔记:该磁盘具有 GPT 布局。对于 MBR,您应该替换Everything
为primary
或extended
(未经测试,调整 MBR 上的分区大小已不是已经过测试并且是不是推荐,因为它未经测试)。
警告:以下命令有毁坏的数据。在不了解发生的情况之前请勿复制它。部门规模必须被改变,否则你将要销毁您的分区。我对你的愚蠢不承担任何责任备份 备份 备份您的数据到第二在您的数据面临风险之前先检查存储介质。
(分手)2令吉 (分手)mkpart 一切 250035s 124844158s 警告:生成的分区未正确对齐以获得最佳性能。 忽略/取消?忽略 (分手)p 型号:ATA INTEL SSDSA2CW08 (scsi) 磁盘/dev/sda:156301488s 扇区大小(逻辑/物理):512B/512B 分区表:总表 编号 开始 结束 大小 文件系统名称 标志 1 34s 2082s 2049s 启动bios_grub 3 2083s 250034s 247952s ext2 根引导 2 250035秒 124844158s 124594124s 一切 (分手)辞职
在上面的parted
例子中,我的扇区没有对齐,这是早期安装时的错误,不要太在意。
这就对了!您可以使用cryptsetup status
和file -Ls /dev/...
来验证一切正常,然后重新启动。
答案2
注意KDE 分区管理器 2.2.0可以执行这些步骤,并且调整 LUKS 分区大小效果很好。