我有一个设备,我有一个 3.10 linux 内核启动到一个busybox shell(initramfs)
当我在SD卡上提取busybox文件系统映像并将root从root = / dev / ram修改为/ dev / mmcblck0p1时,它仍然启动到shell所以busybox工作正常但是如果我尝试使用任何其他FS内核会崩溃...
当我尝试使用 debootstrap ( https://help.ubuntu.com/community/DebootstrapChroot ) 生成 rootfs 并在 SD 卡上提取新的 rootfs 时。我收到一条错误消息“无法执行 /sbin/init” 我确实检查了文件是否存在并检查了权限,这对我来说看起来不错。
可能是什么问题呢?
WRT rootfs 我特别新。我假设可以安装 SD 卡上的任何 FS,但看起来并非如此。我猜 /sbin/init 将做什么取决于设备?
我想做什么?---> 我需要用一些包和库(gcc python 等)制作一个 rootfs 什么是正常的方法?我什至尝试过 buildroot,但我无法让 gcc 成为目标。在 buildroot 中的 /bin/ 中不可能有 gcc 吗?
- 更新 -
我正在将 SD 卡格式化为 ext4 格式,以下是 fdisk 的输出
Disk /dev/sdb1: 7945 MB, 7945588224 bytes
255 heads, 63 sectors/track, 965 cylinders, total 15518727 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xc2aa4908
Device Boot Start End Blocks Id System
以下是我在 SD 卡上有文件系统时的内核日志。存储卡驱动程序工作正常,我已经验证过了。如果我在 SD 卡上有一个busybox 文件系统,那么一切正常。当我使用任何其他文件系统时,我得到以下...
6EXT4-fs (mmcblk0p1): mounted filesystem with ordered data mode. Opts: (null)
6VFS: Mounted root (ext4 filesystem) on device 179:1.
6Freeing unused kernel memory: 84K (c0f00000 - c0f15000)
3request_module: runaway loop modprobe binfmt-464c
4kworker/u2:4 (145) used greatest stack depth: 6132 bytes left
3Failed to execute /sbin/init. Attempting defaults...
3request_module: runaway loop modprobe binfmt-464c
3request_module: runaway loop modprobe binfmt-464c
0Kernel panic - not syncing: No init found. Try passing init= option to kernel. See Linux Documentation/init.txt for guidance.
选中后,/sbin/init 也具有相应的权限!