ビジボックスシェルを起動するようになっているカスタムinitramfsがあります。 cpio アーカイブにbin/
およびbusybox
。init
busybox
静的にリンクされたバイナリです。
bin/busybox: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, for GNU/Linux 3.2.0, stripped
init
次のコードを含むシェルスクリプト。
#!/bin/busybox sh
export PATH=/bin
/bin/busybox --install -s /bin
sh
次のコマンドを使用してイメージを作成します。
find | cpio -ovHnewc > ../initrd.img
実行するとカーネルパニックが発生します。
# qemu-system-x86_64 -m 512M -enable-kvm -kernel /boot/vmlinuz -initrd ../initrd.img -append 'debug console=ttyS0 init=/bin/init' -nographic
… (booting)
[ 2.175321] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
initramfs イメージにどのような問題がありますか?空のinitramfsでも同じエラーが発生します。私のディストリビューションのinitramfsが動作しています。
ベストアンサー1
初期化スクリプトが起動するには小さすぎるようです。カーネルは /proc および /sys と連携して動作するため、以下を含める必要があります。
mount -t proc none /proc
mount -t sysfs none /sys