我知道有人问过这个问题,但我问这个是因为我发现的修复不起作用。我遇到了这个人遇到的同样问题:Ubuntu 19.04“等待加密的源设备/swapfile”,然后在启动时出现 initramfs 提示:linuxquestions
但我尝试了在 /etc/crypttab 中添加“size=256”的修复方法。我这样做了,但它仍然警告我我没有在 crypttab 中指定大小并且仍然需要时间来启动。(如果我在提示符下键入 exit,我的计算机仍将启动到工作 gui)
以下是 /etc/fstab 的内容:
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
# / was on /dev/nvme0n1p2 during installation
UUID=694b4858-ead8-400d-9406-f9fc45dc71f1 / ext4 errors=remount-ro 0 1
# /boot/efi was on /dev/nvme0n1p1 during installation
UUID=CA5F-286C /boot/efi vfat umask=0077 0 1
#/swapfile none swap sw 0 0
#/dev/mapper/cryptswap1 none swap sw 0 0
#/swapfile swap swap defaults 0 0
/dev/mapper/cryptswap1 none swap sw,pri=100 0 0
这是/etc/crypttab:
# <target name> <source device> <key file> <options>
cryptswap1 /swapfile /dev/urandom swap,offset=1024,cipher=aes-xts-plain64,size=256
它以前一直有效但现在没有用,而且我在编辑 /etc/crypttab 之前必须使用 Ubuntu 恢复模式 DPKG 是否有帮助?
任何帮助将不胜感激。提前TY!
编辑:如果我能保持交换就好了,因为我只有 5.7gb ram(2.3gb ram 是系统保留的)
根本原因和解释,为什么上述解决方法有效,是 initramfs cryptroot hook (
/usr/share/initramfs-tools/hooks/cryptroot
) 在您有 cryptswap 时试图转换/swapfile
为块设备/etc/crypttab
。这显然会失败,因为/swapfile
它不是设备,并且在 initramfs 运行期间不可用。由于您没有使用加密的 rootfs(否则
/swapfile
将作为其中的一部分进行加密),最简单的方法是禁用此 cryptroot 挂钩。不幸的是,没有很好的方法,该怎么做。我发现最好的方法是插入exit 0
,/etc/cryptsetup-initramfs/conf-hook
因为这个脚本是由 cryptroot 钩子提供的。我找到了解决这个问题的方法。
/etc/fstab
和/etc/crypttab
sudo swapoff -a && sudo update-initramfs -u
但是,尽管这可行,但我认为这会因每次新内核更新而中断。