Lvm
掛載失敗 - 無效參數
我在 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: dm-devel@redhat.com [ 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 加密 FS (
picrypt
)LVM 邏輯卷 (
/dev/mapper/pi-root
)
- BTRFS 文件系統
- BTRFS 子卷 (
subvol=@
)我的主筆記型電腦上的設置與此完全相同,效果很好。
在引導期間,會發生以下情況,然後會失敗:
- 解密 LUKS 卷
picrypt
:有效- 開放捲組
pi
和 LVroot
: Worksroot
嘗試通過 fstab安裝 LV :失敗並顯示Invalid argument
.Busybox 似乎也因無法訪問 tty 而失敗,但這與問題無關。
如何調試這裡出了什麼問題?
該錯誤是由我的核心行中的此參數引起的:
rootflags=noload,subvol=@
此參數的值直接傳遞給
mount
作為掛載根文件系統的文件系統選項。通過將調試語句插入/scripts/local
(從 生成/usr/share/initramfs-tools/scripts/local
),我能夠確定掛載參數出了什麼問題,然後能夠修復我的引導命令行。