bs- Asked: 2022-05-07 04:00:14 +0800 CST2022-05-07 04:00:14 +0800 CST 2022-05-07 04:00:14 +0800 CST 引导分区已满:移动到加密分区 772 一旦/boot分区半满,单个内核就无法升级, 当另一个分区被加密时,调整大小很痛苦, 解决方案:移动/boot到加密分区。 背景故事:Linux Mint 17 升级到 20 将不允许安装最新内核;那是我的困境。有很多关于调整分区大小的文章——加密分区会引起恐惧!幸运的是,有一个替代方案。 在使我的系统“无法启动”后,我决定提供一些指导(我的答案出现在下面),希望其他人也能加入。 partition boot 1 个回答 Voted Best Answer bs- 2022-05-07T04:06:29+08:002022-05-07T04:06:29+08:00 功劳主要属于Guilhem Moulin,我只是简化一下。将重复需要超级用户,您可能更喜欢su为 root shell 运行命令(或者,sudo在必要时继续执行命令)。 加密分区:/dev/sda5 运行fdisk -l列表分区,例如, Device Boot Start End Sectors Size Id Type /dev/sda1 * 2048 499711 497664 243M 83 Linux /dev/sda2 501758 500117503 499615746 238.2G 5 Extended /dev/sda5 501760 500117503 499615744 238.2G 83 Linux 我的加密分区是/dev/sda5,您的可能会有所不同(您需要/dev/sda5相应地更换)。 先决条件:LUKS1 通过检查命令cryptsetup luksDump /dev/sda5输出来检查您是否正在使用 LUKS1 Version: 1 对于版本 2,请在继续之前降级(请参阅原始文章)。 先决条件:GRUB2 grub-install --version通过检查命令输出版本 2 或更高版本来检查您使用的是 GRUB2 。 先决条件:键盘布局 当您切换到美式键盘布局时,请检查您的密码是否保持不变。考虑更改您的密码(对于保持相同的密码),或使用美国布局设置您的密码(不推荐),或参考原始文章以获得进一步的解决方法。 移动/boot 重新挂载/boot为只读以避免在移动期间修改数据: mount -oremount,ro /boot 递归复制到临时目录(在加密分区上): cp -axT /boot /boot.tmp 卸载/boot并删除(空)目录: umount /boot rmdir /boot 重定位临时目录: mv -T /boot.tmp /boot 更新/etc/fstab 命令cat /etc/fstab将输出类似于: UUID=38e... /boot ext2 defaults 您需要注释掉该行(我赞成vim)。 在 GRUB2 中启用加密挂载 添加GRUB_ENABLE_CRYPTODISK=y到/etc/default/grub,生成您的 GRUB 配置文件, update-grub 并安装, grub-install /dev/sda 可能是测试的好时机 现在可能是测试一切顺利的好时机:重新启动。系统会提示您输入密码,并且(经过长时间的延迟)进入 initramfs 提示符。输入以下命令: cryptsetup luksOpen /dev/sda5 sda5_crypt 替换sda5_crypt为输出的第一个参数cat /etc/crypttab(如果您已经走到这一步而没有运行该命令,只需使用sda5_crypt,我们可以稍后修复它)。下一个发出命令: exit 您的系统现在应该正在启动,如果没有,恢复应该相对容易——从 Live USB 启动并取消注释/etc/fstab. (始终拥有 Live USB 非常有用。) 启动性能下降 GRUB 没有针对与加密相关的 CPU 指令进行优化——解锁加密分区将花费比以前更长的时间。 可选:您可以通过牺牲对暴力攻击的抵抗力来调整性能。PBKDF 比 Argon2 更容易——PBKDF 通过需要多次迭代来减缓暴力攻击,而 Argon2 通过进一步的变量来减缓攻击,因此调整 PBKDF 更容易。检查当前使用了多少次迭代 command cryptsetup luksDump /dev/sda5,例如, Key Slot 0: ENABLED Iterations: 1208036 为了将性能提高大约两倍(同时将蛮力阻力降低一半),我们可以使用命令将迭代次数减少一半以上cryptsetup luksChangeKey --pbkdf-force-iterations 500000 /dev/sda5 Enter passphrase to be changed: Enter new passphrase: Verify passphrase: 您现有的密码可以重复使用。据我所知,添加了一个新键:除了上述之外,命令cryptsetup luksDump /dev/sda5现在输出 Key Slot 1: ENABLED Iterations: 500000 PBKDF 将依次尝试所有关键插槽,以加快速度,运行命令cryptsetup luksOpen --test-passphrase --verbose /dev/sda5 Enter passphrase for /dev/sda5: Key slot 1 unlocked. Command successful. 使用命令cat /etc/crypttab你会看到类似 sda5_crypt UUID=66f... none luks,discard 在最后添加,key-slot=1(更改1以匹配您在上面找到的任何内容)。如果您测试一切都很好并且使用了第一个参数以外的其他参数sda5_crypt,请重新启动并输入,cryptsetup luksOpen /dev/sda5 sda5_crypt然后exit在下一步之前输入 ,。运行命令 update-initramfs -u -k all 生成和更新您的 initramfs 映像。(严格来说-k all不是必需的,假设您遵循这些说明,因为您有一个内核。) 更新/etc/fstab 命令lsblk -o name,uuid输出 NAME UUID sda ├─sda1 38e... ├─sda2 └─sda5 66f... └─sda5_crypt B6U... ├─mint--vg-root 54f... └─mint--vg-swap_1 fe3... 要使您的系统可启动,请将以下行添加到/etc/fstab UUID=54f... / ext4 defaults 0 1 运行命令update-grub后跟grub-install /dev/sda,然后重新启动。 希望您现在拥有一个可启动的系统。 您需要输入两次密码,这很不幸。显然有一种解决方法(请参阅原始文章)。我一口气看完了整篇文章,遇到了麻烦,无法启动(在发现之前cryptsetup luksOpen /dev/sda5 sda5_crypt)。通过以上说明,我希望疼痛的机会减少。祝你好运。
功劳主要属于Guilhem Moulin,我只是简化一下。将重复需要超级用户,您可能更喜欢
su
为 root shell 运行命令(或者,sudo
在必要时继续执行命令)。加密分区:
/dev/sda5
运行
fdisk -l
列表分区,例如,我的加密分区是
/dev/sda5
,您的可能会有所不同(您需要/dev/sda5
相应地更换)。先决条件:LUKS1
通过检查命令
cryptsetup luksDump /dev/sda5
输出来检查您是否正在使用 LUKS1对于版本 2,请在继续之前降级(请参阅原始文章)。
先决条件:GRUB2
grub-install --version
通过检查命令输出版本 2 或更高版本来检查您使用的是 GRUB2 。先决条件:键盘布局
当您切换到美式键盘布局时,请检查您的密码是否保持不变。考虑更改您的密码(对于保持相同的密码),或使用美国布局设置您的密码(不推荐),或参考原始文章以获得进一步的解决方法。
移动
/boot
重新挂载
/boot
为只读以避免在移动期间修改数据:递归复制到临时目录(在加密分区上):
卸载
/boot
并删除(空)目录:重定位临时目录:
更新
/etc/fstab
命令
cat /etc/fstab
将输出类似于:您需要注释掉该行(我赞成
vim
)。在 GRUB2 中启用加密挂载
添加
GRUB_ENABLE_CRYPTODISK=y
到/etc/default/grub
,生成您的 GRUB 配置文件,并安装,
可能是测试的好时机
现在可能是测试一切顺利的好时机:重新启动。系统会提示您输入密码,并且(经过长时间的延迟)进入 initramfs 提示符。输入以下命令:
替换
sda5_crypt
为输出的第一个参数cat /etc/crypttab
(如果您已经走到这一步而没有运行该命令,只需使用sda5_crypt
,我们可以稍后修复它)。下一个发出命令:您的系统现在应该正在启动,如果没有,恢复应该相对容易——从 Live USB 启动并取消注释
/etc/fstab
. (始终拥有 Live USB 非常有用。)启动性能下降
GRUB 没有针对与加密相关的 CPU 指令进行优化——解锁加密分区将花费比以前更长的时间。
可选:您可以通过牺牲对暴力攻击的抵抗力来调整性能。PBKDF 比 Argon2 更容易——PBKDF 通过需要多次迭代来减缓暴力攻击,而 Argon2 通过进一步的变量来减缓攻击,因此调整 PBKDF 更容易。检查当前使用了多少次迭代 command
cryptsetup luksDump /dev/sda5
,例如,为了将性能提高大约两倍(同时将蛮力阻力降低一半),我们可以使用命令将迭代次数减少一半以上
cryptsetup luksChangeKey --pbkdf-force-iterations 500000 /dev/sda5
您现有的密码可以重复使用。据我所知,添加了一个新键:除了上述之外,命令
cryptsetup luksDump /dev/sda5
现在输出PBKDF 将依次尝试所有关键插槽,以加快速度,运行命令
cryptsetup luksOpen --test-passphrase --verbose /dev/sda5
使用命令
cat /etc/crypttab
你会看到类似在最后添加
,key-slot=1
(更改1
以匹配您在上面找到的任何内容)。如果您测试一切都很好并且使用了第一个参数以外的其他参数sda5_crypt
,请重新启动并输入,cryptsetup luksOpen /dev/sda5 sda5_crypt
然后exit
在下一步之前输入 ,。运行命令生成和更新您的 initramfs 映像。(严格来说
-k all
不是必需的,假设您遵循这些说明,因为您有一个内核。)更新
/etc/fstab
命令
lsblk -o name,uuid
输出要使您的系统可启动,请将以下行添加到
/etc/fstab
运行命令
update-grub
后跟grub-install /dev/sda
,然后重新启动。希望您现在拥有一个可启动的系统。
您需要输入两次密码,这很不幸。显然有一种解决方法(请参阅原始文章)。我一口气看完了整篇文章,遇到了麻烦,无法启动(在发现之前
cryptsetup luksOpen /dev/sda5 sda5_crypt
)。通过以上说明,我希望疼痛的机会减少。祝你好运。