安装失败 - 参数无效

安装失败 - 参数无效

我在 SD 卡上安装了 Kali Linux,并创建了一个加密的 LUKS 分区,其中包含一个 LVM 逻辑卷,然后在其中创建了一个 BTRFS 文件系统。几乎一切正常,但在解密 LUKS 卷成功后启动失败。日志:

Begin: Loading essential drivers ... done.
Begin: Mounting root file system ... Begin: Running /scrypts/local-top ... [ 8.655803] device-mapper: ioctl: 4.28.0-ioctl (2014-09-17) initialised: [email protected]
[ 8.689182] random: lvm urandom read with 113 bits of entropy available
  Volume group "pi" not found
  Skipping volume group pi
Unable to find LVM volume pi/root
Unlocking the disk /dev/mmcblk0p2 (picrypt)
Enter passphrase:
Reading all physical volumes. This may take a while...
  Found volume group "pi" using metadata type lvm2
  ffff0000-ffff1000 r-xp 00000000 00:00 0    [vectors]: mlock failed: Cannot allocate memory
  1 logical volume(s) in volume group "pi" now active
  ffff0000-ffff1000 r-xp 00000000 00:00 0    [vectors]: munlock failed: Cannot allocate memory
cryptsetup: picrypt set up successfully
done.
Begin: Running /scripts/local-premount ... done.
mount: mounting /dev/mapper/pi-root on /root failed: Invalid argument
Begin: Running /scripts/local-bottom ... done.
done.
Begin: Running /scripts/init-bottom ... mount: mounting /de on /root/dev failed: No such file or directory
done.
Target filesystem doesn't have requested /sbin/init.
No init found. Try passing init= bootarg.
modprobe: module i8042 not found in modules.dep
modprobe: module atkbd not found in modules.dep
modprobe: module ehci-pci not found in modules.dep
modprobe: module ehci-orion not found in modules.dep
modprobe: module ehci-hcd not found in modules.dep
modprobe: module uhci-hcd not found in modules.dep
modprobe: module ohci-hcd not found in modules.dep

BusyBox v1.20.2 (Debian 1:1.20.0-7) built-in shell (ash)
Enter 'help' for a list of built-in commands.

/bin/sh: can't access tty; job control turned off

似乎无法挂载我的根文件系统。在 initramfs 中,我实际上可以使用 fstab 中给出的所有选项很好地挂载 BTRFS 分区。由于某种我无法诊断的奇怪原因,它最初似乎失败了。

在 initramfs 中,运行以下命令:

mount -t btrfs -o defaults,subvol=@,compress=lzo,ssd,noatime /dev/mapper/pi-root /root

安装工作正常,我可以正确地看到文件系统。

这是我的/etc/fstab

proc                   /proc    proc     defaults                                      0    0
/dev/mmcblk0p1         /boot    vfat     defaults                                      0    2
/dev/mapper/pi-root    /        btrfs    defaults,subvol=@,compress=lzo,ssd,noatime    0    1

这是我的/etc/crypttab

picrypt /dev/mmcblk0p2 none luks

这是我的内核命令行:

dwc_otg.fiq_fix_enable=1 console=tty1 console=tty1 root=/dev/mapper/pi-root cryptopts=target=picrypt,source=/dev/mmcblk0p2,lvm=pi rootfstype=btrfs rootwait rootdelay=5 ro rootflags=noload,subvol=@

我已确保 initramfs.gz 是最新的。

再次重申,这是我的设置:

  • SD卡
    • 启动 VFAT 文件系统
    • LUKS 加密文件系统 ( picrypt)
    • LVM 逻辑卷 ( /dev/mapper/pi-root)
      • BTRFS 文件系统
      • BTRFS 子卷 ( subvol=@)

我的主笔记本电脑上有一个与此完全相同的设置,运行良好。

在启动过程中,会发生以下情况以及失败的情况:

  1. 解密 LUKS 卷picrypt:有效
  2. 开放卷组pi和 LV root:有效
  3. 尝试root通过 fstab 安装 LV:失败并显示Invalid argument.

Busybox 似乎也因无法访问 tty 而失败,但这与问题无关。

我该如何调试这里出了什么问题?

答案1

该错误是由我的内核行中的此参数引起的:

rootflags=noload,subvol=@

该参数的值作为文件系统选项直接传递给mount挂载根文件系统。通过将调试语句插入/scripts/local(从 生成/usr/share/initramfs-tools/scripts/local),我能够确定挂载参数出了什么问题,然后能够修复我的引导命令行。

相关内容