liyansong2018 / firmware-analysis-plus

Simulate firmware with one click of firmadyne (使用 firmadyne 一键模拟固件)
MIT License
307 stars 29 forks source link

Kernel panic in Ubuntu 18.04+ #40

Closed liyansong2018 closed 2 years ago

liyansong2018 commented 2 years ago

Fap 继承上游 firmadyne,在较高版本的 Ubutnu(18.04、20.04、22.04) 上存在 Kernel panic

[    0.418981] No filesystem could mount root, tried:  ext3 ext2 ext4 cramfs squashfs vfat iso9660 romfs udf
[    0.419239] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(254,1)
[    0.419391] CPU: 0 PID: 1 Comm: swapper Tainted: G        W       4.1.17+ #1
[    0.419511] Hardware name: Generic DT based system
[    0.419648] [<c001c99c>] (unwind_backtrace) from [<c0019d30>] (show_stack+0x10/0x14)
[    0.419787] [<c0019d30>] (show_stack) from [<c0410b78>] (panic+0x70/0x1c8)
[    0.419951] [<c0410b78>] (panic) from [<c05c81bc>] (mount_block_root+0x268/0x2ac)
[    0.420095] [<c05c81bc>] (mount_block_root) from [<c05c84a4>] (prepare_namespace+0x158/0x1ac)
[    0.420232] [<c05c84a4>] (prepare_namespace) from [<c05c7d84>] (kernel_init_freeable+0x16c/0x1b0)
[    0.420372] [<c05c7d84>] (kernel_init_freeable) from [<c040f28c>] (kernel_init+0x8/0xe4)
[    0.420499] [<c040f28c>] (kernel_init) from [<c0016da8>] (ret_from_fork+0x14/0x2c)
[    0.420771] ---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(254,1)

经过分析,这是由于制作 qemu 镜像的过程中,firmadyne 硬编码 loop 设备造成的,导致 loop 设备没有成功挂载到固件的根文件系统。这个问题仅在高版本的 Ubuntu 存在。