SDカードにKali Linuxをインストールし、LVM論理ボリュームを含む暗号化されたLUKSパーティションを作成し、そこに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=@
)
私のメインノートパソコンにも同じ設定があり、非常にうまく機能します。
起動プロセス中に次の状況が発生し、失敗します。
- LUKS ボリュームの復号化
picrypt
: 有効 - オープンボリュームグループ
pi
とLVroot
:有効 root
fstabを介してLVをマウントしようとするとInvalid argument
。
Busyboxもttyにアクセスできないため失敗するようですが、これは問題とは関係ありません。
ここで問題のある部分をどのようにデバッグできますか?
答え1
私のカーネルラインの次のパラメータが原因でエラーが発生しました。
rootflags=noload,subvol=@
このパラメータの値は、mount
マウントされたルートファイルシステムにファイルシステムオプションとして直接渡されます。デバッグステートメントを挿入することで、/scripts/local
(buildから/usr/share/initramfs-tools/scripts/local
)マウントパラメータに何が問題を抱えているのかを確認でき、起動コマンドラインを修正できました。