カスタムinitramfが検出されない

カスタムinitramfが検出されない

ビジボックスシェルを起動するようになっているカスタムinitramfsがあります。 cpio アーカイブにbin/およびbusyboxinit

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

おすすめ記事