如我的日志所示,我昨晚更新了。
Start-Date: 2020-03-16 13:56:51
Commandline: apt upgrade
Requested-By: logan (1001)
Install: linux-image-5.3.0-42-generic:amd64 (5.3.0-42.34, automatic), linux-tools-5.3.0-42:amd64 (5.3.0-42.34, automatic), linux-headers-5.3.0-42-gener
ic:amd64 (5.3.0-42.34, automatic), linux-modules-extra-5.3.0-42-generic:amd64 (5.3.0-42.34, automatic), linux-headers-5.3.0-42:amd64 (5.3.0-42.34, auto
matic), linux-tools-5.3.0-42-generic:amd64 (5.3.0-42.34, automatic), linux-modules-5.3.0-42-generic:amd64 (5.3.0-42.34, automatic)
Upgrade: linux-tools-generic:amd64 (5.3.0.40.34, 5.3.0.42.36), linux-headers-generic:amd64 (5.3.0.40.34, 5.3.0.42.36), linux-libc-dev:amd64 (5.3.0-40.32, 5.3.0-42.34), linux-image-generic:amd64 (5.3.0.40.34, 5.3.0.42.36), linux-tools-common:amd64 (5.3.0-40.32, 5.3.0-42.34), linux-generic:amd64 (5.3.0.40.34, 5.3.0.42.36)
End-Date: 2020-03-16 13:57:26
今天早上,我带着以下消息进入了 initramfs。
WARNING: Option 'size' missing in crypttab for plain dm-crypt
mapping cryptswap1. Please read
/usr/shar/doc.cryptsetup-initramfs/README.initramfs.gs and add the correct
'size' option to your crypttab(5).
crypt
cryptsetup: waiting for encrypted source device /swapfile......
Alert! encrypted device /swapfile does not exist! can't unlock.
Check cryptopt=source= bootarg: cat /proc/cmdline
or missing modules, devices: cat /proc/modules; ls /dev
Dropping to shell.
我不认为我有交换驱动器(上个月工作的 IT 设置了这台笔记本电脑,所以我不确定)。在删除 crypttab 文件后,我发现一个 1gb 交换免费运行,然后我使用 sudo swapoff -a 删除该文件并注释掉 crypttab 文件。我找不到任何 fstab 条目。尽管现在我的交换在启动后显示大小为 0,但启动错误仍然存在。
由于在线上所有类似的案例都建议编辑 /etc/fstab 和 /etc/crypttab,因此启动真的很痛苦。fstab 是空的,而 crypttab 位于灰壳中的 cryptroot/cryptab,它让我感到困惑。我只是删除了 crypttab 文件并运行 exit 来启动。
由于在工作中运行 Ubuntu 19.10 的每个人都将具有相同的设置,我想知道这是否是由我昨晚的更新引起的,这里是否有人可以帮助我找出导致此问题的更新或者是否有任何其他清理我应该做.我相信我应该删除 crypttab 文件和 fstab 中任何提及交换或添加有效大小的内容。否则我下次启动时会遇到这个问题。我的 crypttab 看起来像这样
# <target name> <source device> <key file> <options>
cryptswap1 /swapfile /dev/urandom swap,offset=1024,cipher=aes-xts-plain64
帮助我了解我被放入的 shell 在哪里运行,或者一旦掉入灰烬(即 nano、vi 或 vim),我应该如何进入具有更好编辑选项的 shell。我将 crypttab 保存到 /crypttab.old 但现在我已登录我找不到它。
此外,我删除了 fstab 注释,因此我的 fstab 只有 /swapfile/none 并运行 sudo cryptsetup remove cryptswap1 并删除 /etc/crypttab 但我仍然在启动时遇到同样的问题。我还尝试了相反的方法,我取消了 fstab 和 cryptab 并将 size=512 添加到 crypt 选项卡。重新启动时文件中未显示该大小,并且同样失败。
更新:按照此处的步骤修复它原来我需要更新 initramfs 以使任何更改生效。
我也在运行带有加密交换的 Ubuntu 19.10,我也遇到了同样的问题。我不知道对此的完整补救措施,但现在我已禁用加密交换安装,如下所示(注意 - 这些步骤对我有用,但可能对您不起作用;根据需要进行调整!):
Advanced options
,选择以前的 kernel/initramfs 版本。就我而言,它是5.3.0-40-generic
(破坏事物的新事物是5.3.0-42-generic
)/etc/crypttab
从和中删除交换挂载线/etc/fstab
cryptsetup remove /dev/mapper/cryptswap1
以禁用加密交换/boot
目录中,备份旧initrd.img
文件。update-initramfs -c -k 5.3.0-42-generic
GRUB
配置update-grub
并重启Advanced options
如果它们像我在 GRUB 菜单中所做的那样为您工作,另一种选择是使用以前的 kernel/initramfs 包。这将需要在启动期间手动选择,但如果您不经常重新启动,这可能是一个足够好的选择。希望这可以帮助。