rootfs 是一个 squashfs 映像,我的引导加载程序正在将它加载到 SDRAM 中的某个地址。我需要将哪些参数传递给内核,以便它可以从那里挂载 rootfs?Squashfs 支持是内置的,并且已经可以与
root=/dev/mtdblock2 rootfstype=squashfs
Run Code Online (Sandbox Code Playgroud)
用于从闪存启动。
编辑:这是一个基于 MIPS 的嵌入式设备,使用自定义引导加载程序。通常情况下,bootloader 将压缩后的内核从 flash 中提取到 SDRAM 中,然后内核将 /dev/mtdblock2 作为 rootfs 挂载。我正在尝试改进引导加载程序,以便它可以将映像下载到其 RAM 并在不写入闪存的情况下启动。
我不知道如何让 Linux 在 RAM 中挂载一个文件系统映像作为 rootfs。
我的内核命令行如下所示:
root=31:0 ro noinitrd console=ttyS0,115200 root=/dev/mtdblock2 rootfstype=squashfs
Run Code Online (Sandbox Code Playgroud)
我认为第一个root
条目通过其主要和次要设备号标识磁盘,第二个条目通过其名称标识它。我可以确认rootfs
确实是 on/dev/mtdblock2
但我不知道如何解释31:0
。
结构:
/base/
+- somedir/
+- symlink/ -> /some_other_dir
Run Code Online (Sandbox Code Playgroud)
此命令(除了我的 Makefile 之外)失败:
cd /base/symlink
ls ../somedir
Run Code Online (Sandbox Code Playgroud)
Bash 抱怨 ../somedir 不存在。同样,我在 some_other_dir 中引用 ../somedir 的 makefile 失败。但是, cd .. 可以按预期工作。我可以让我的 shell 对逻辑结构进行操作吗?