ext4 파일 시스템이 있는 SD 카드가 포함된 임베디드 시스템이 있습니다. ext4 파일 시스템에 rootfs.squasfs가 있고 이를 부팅하려고 합니다. SD 카드를 마운트한 다음 squashfs를 마운트할 수 있는 initramfs를 만들었습니다. 하지만 루트로 전환할 수는 없습니다. 시도하면 exec switch_root /newroot /linuxrc
충돌이 발생합니다.
/ # mount
rootfs on / type rootfs (rw)
/dev/root.old on / type ext3 (rw,relatime,errors=continue,barrier=1,data=ordered)
/proc on /proc type proc (rw,relatime)
sysfs on /sys type sysfs (rw,relatime)
/dev/mmcblk0p1 on /tmp type ext4 (rw,relatime,data=ordered)
/dev/loop0 on /newroot type squashfs (ro,relatime)
/ # exec switch_root /newroot /linuxrc
BusyBox v1.22.1 VFS: Cannot open root device "(null)" or unknown-block(0,0): error -6
Please append a correct "root=" boot option; here are the available partitions:
0700 119920 loop0 (driver?)
b300 7634944 mmcblk0 driver: mmcblk
b301 262144 mmcblk0p1 00000000-0000-0000-0000-000000000000
b302 262144 mmcblk0p2 00000000-0000-0000-0000-000000000000
b303 2202010 mmcblk0p3 00000000-0000-0000-0000-000000000000
b310 4096 mmcblk0boot1 (driver?)
b308 4096 mmcblk0boot0 (driver?)
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
[<c000eab4>] (unwind_backtrace+0x0/0xfc) from [<c041b0d4>] (panic+0x94/0x1c0)
[<c041b0d4>] (panic+0x94/0x1c0) from [<c0592c9c>] (mount_block_root+0x194/0x224)
[<c0592c9c>] (mount_block_root+0x194/0x224) from [<c0592f20>] (mount_root+0x108/0x110)
[<c0592f20>] (mount_root+0x108/0x110) from [<c0593b6c>] (initrd_load+0x270/0x360)
[<c0593b6c>] (initrd_load+0x270/0x360) from [<c0593010>] (prepare_namespace+0xe8/0x1d8)
[<c0593010>] (prepare_namespace+0xe8/0x1d8) from [<c0592970>] (kernel_init+0x1b4/0x1bc)
[<c0592970>] (kernel_init+0x1b4/0x1bc) from [<c0009ccc>] (kernel_thread_exit+0x0/0x8)
(2015-04-07 17:27:21 CDT) multi-call binary.
Usage: switch_root [-c /dev/console] NEW_ROOT NEW_INIT [ARGS]
누군가 내가 뭘 잘못하고 있는지 이해하도록 도와줄 수 있나요?