以下引导日志中列出的MTD分区的命名方案是什么?
5 cmdlinepart partitions found on MTD device phys_mapped_flash
Creating 5 MTD partitions on "phys_mapped_flash":
0x00000000-0x00080000 : "bootloader"
0x00080000-0x00680000 : "kernel"
0x00680000-0x01680000 : "rootfs"
0x01680000-0x01780000 : "data"
0x01780000-0x017a0000 : "bootload-env"特别是,我想知道在prompt提示符中使用什么命名方案来指定"rootfs“分区作为命令的参数:
setenv bootargs 'root= ???????'我需要指定root=,因为引导日志显示内核不知道根设备是什么。
VFS: Cannot open root device "<NULL>" or unknown-block(0,0)
Please append a correct "root=" boot option
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)...and还显示了启动日志:
Kernel command line: bootoctlinux 0x2a00200 mtdparts=phys_mapped_flash:512k(bootloader)ro,6M(kernel),16M(rootfs),1024k(data),128k(bootload-env) console=ttyS0,115200BTW:根文件系统存储在内核ELF文件(.init.ramfs)的嵌入式部分(vmlinux64)中,就像gzipped压缩的cpio存档和引导日志指示的那样,它成功地加载到内存中:
Loading .init.ramfs @ 0xffffffff806ac000 (0x185ac7 bytes)这是在一个只有32 an闪存的嵌入式系统上(LinuxKernelv2.6.21.7(分区: Cavium-Octeon for MIPS64 ) )。
U 1.1.1 (开发构建,svnversion: 176)
编辑:有人说是MTD1,有些人说MTD2是/dev/MTD1 1,有些人说是MTDblock1,有些人说是mtdblock1,有些人说是mtdblock2,有些人说是ubi:mtdblock2 1(为什么是冒号?)等等..。
真相是什么?如何从prompt提示符或引导日志中发现它?
发布于 2018-07-16 21:12:44
root=/dev/mtdblock3或一些UBI选项。您没有注意到,对于不同的文件系统,不同的建议是:-)。我不知道/dev/mtd3是否用于任何树内文件系统。
如果根文件系统是基于块(非mtd感知的)文件系统的只读实例,则使用/dev/mtdblock3。
如果根文件系统是JFFS2的一个实例,那么使用/dev/mtdblock3。请参阅https://www.denx.de/wiki/DULG/RootFileSystemOnAJFFS2FileSystem和其他文件系统的一些示例,您可以查看http://www.denx.de/wiki/publish/DULG/DULG-enbw_cmc.html#Section_9.5。 (但本节没有提到UBI)。
如果rootfs使用UBI,则使用一些UBI选项。不过,您还没有展示有关UBI的任何细节--在您能够让root=使用任何UBI设备/卷之前,应该会有一些关于UBI设备/卷的内核引导消息。参见这里:http://www.linux-mtd.infradead.org/faq/ubifs.html#L_坐骑_泛影,它给出了一个UBI选项的示例:ubi.mtd=0 root=ubi0:rootfs rootfstype=ubifs。由于mtd分区直接称为"rootfs",所以我认为它不是UBI。
我将避免使用root=mtdblock3格式,至少如果您不确定的话。不同之处在于,某些initramfs可能不支持它。然而,当您使用内核挂载根文件系统而不使用initramfs时,内核理解root=/dev/mtdblock3格式。
https://unix.stackexchange.com/questions/456418
复制相似问题