我目前正在尝试设置 x86 64 位系统以使用 Squashfs 作为其根挂载点,但我遇到了许多问题。目前我使用的是用 Squashfs 编译的 4.4.0-89 内核。我希望在硬盘上执行此操作,但只是为了学习和测试,我目前正在尝试从 USB 执行此操作(不确定这是否会产生问题,但我对此表示怀疑)。
我已将设备设置如下:
Device Boot Start End Sectors Size Id Type
/dev/sdb1 2048 14583807 14581760 7G 83 Linux
/dev/sdb2 14583808 15656959 1073152 524M 83 Linux
/dev/sdb1 是我使用创建的Ubuntu 16.04.3LTS的squashfs文件系统
dd if=filesystem.squashfs of=/dev/sdb1
/dev/sdb2 是引导:
drwxr-xr-x 5 root root 4096 Oct 5 09:57 grub/
-rw-r--r-- 1 root root 40177135 Oct 5 09:28 initrd
-rw-r--r-- 1 root root 6913440 Oct 4 13:12 vmlinuz
我的 grub 配置菜单项如下:
menuentry 'test' {
set root=(hd0,msdos2)
linux /vmlinuz root=/dev/sda1 ro rootfstype=squashfs quiet splash
initrd /initrd
}
目前,当我尝试启动时,我按 escape 来摆脱 grub ubuntu 启动屏幕,并且它会运行相同的错误行:
madm: No device listed in conf file were found.
madm: CREATE group disk not found
在最终显示之前:
Gave up waiting for root device. Common problems:
- Boot args (cat /proc/cmdline)
- Check rootdelay= (did the system wait long enough?)
- Check root= (did the system wait for the right device?)
- Missing modules (cat /proc/modules; ls /dev)
ALERT! /dev/sda1 does not exist. Dropping to a shell
我可以在其中访问 busybox 的 shell。
我尝试将 rootdelay 增加到 300,这返回了相同的结果,并且使用根分区 UUID 而不是 /dev/sda1,这也不起作用。
在 busybox initramfs shell 中,我什至在 /dev/ 树中看不到任何 sdx。
我可能试图完全错误地实现这一点,但我对下一步要尝试什么感到困惑,所以如果有人可以帮助我,我将不胜感激!
谢谢。