我正尝试在基于Intel Atom (Baytrail)的Android平板上安装一个定制的Linux,使用QT5.5来创建设备。该构建系统基于Yocto项目,构建了一个嵌入式Linux映像。为了在平板电脑(最初是Android平板电脑)上运行这个映像,我将用一个包含内核、initramfs和初始引导脚本的映像来替换引导分区,然后用完整的映像替换系统分区,然后用Intel制造工具将它们闪烁到设备上。
到目前为止,我已经用initramfs将设备引导到我的新内核,并运行init脚本。当试图在嵌入式闪存上挂载主分区时,就会出现这个问题。安装系统分区的命令使用“无效参数”失败。
cat / first系统显示支持ext4,parted -l显示内部MMC上的分区都是ext4,除了第一个分区,即EFI引导分区。我不能挂载任何ext4分区,但是我可以挂载EFI分区,所以我认为这意味着整个MMC应该是可访问的。
运行fdisk -l只显示第一个分区( EFI引导分区),但我认为这是因为fsdisk不支持GPT。
有人知道为什么我不能挂载ext4分区吗?在/dev中,它们都被列为:
mmcblk0 mmcblk0p1 mmcblk0p2 mmcblk0p3 mmcblk0p4 mmcblk0p5 mmcblk0p6 mmcblk0p7
mmcblk0p1是可挂载的,是EFI引导分区。
对不起,我不能发布任何的实际输出,所以这都是来自内存,但电池刚刚在设备上,因为我开始写这个。如果需要的话,我应该能够从命令中得到一些实际的输出,一旦再次充电。
因此,我重新编译了Busybox,在fdisk中启用了GPT支持,并且fdisk列出了分区。我还在设备上安装了TestDisk,并且可以使用TestDisk浏览文件系统。试图挂载/dev/mmcblk0p(2-7)下列出的分区仍然不起作用,但我可以通过从fdisk -l获得开始扇区,然后通过losetup -o (启动扇区*扇区大小)/dev/ loop 0 /dev/mmcblk0 0安装一个循环设备,然后最后挂载/dev/环0。为什么我必须通过这个方法而不是仅仅挂载/dev/mmcblk0p2等等?
发布于 2015-09-08 17:08:21
好的,所以问题是并不是所有的分区都列在/dev下。eMMC上有15个分区,但只列出了1-7个分区。我认为1-7只是ext4分区,而其他分区(没有格式化为ext4)就不会出现在那里。因此,当我认为我正在挂载ext4分区时,它试图挂载这些其他分区,但却无法挂载,因此出现了错误。这个问题源于内核配置,特别是CONFIG_MMC_BLOCK_MINORS,我认为它默认为8,所以只显示了最初的几个分区。我以20的值重新编译了内核,其余的分区显示在/dev/mmcblk0p8、9、10等项下,我可以很好地挂载它们。
https://unix.stackexchange.com/questions/228098
复制相似问题