Ubuntu Server 16.04.3LTS Squashfs 作为 Grub 的 root 用户

Ubuntu Server 16.04.3LTS Squashfs 作为 Grub 的 root 用户

我目前正在尝试设置 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。

我可能试图完全错误地实现这一点,但我对下一步要尝试什么感到困惑,所以如果有人可以帮助我,我将不胜感激!

谢谢。

相关内容