求救,关于switch_root 由内核rootfs切换到真实文件系统的问题。燃眉之急!!!
本帖最后由 yuanm21 于 2011-04-21 09:00 编辑
最近在研究制作一个u盘上的精简linux系统,一步一步艰难走过来,从配置、编译内核,到制作initrd镜像,再到自己制作grub启动,好不容易都走通了,就到最后的由内核rootfs切换到u盘上的真实文件系统时卡住了,困扰了小弟好几天了,再解决不了,公司的项目要因为这个耽误进度了,恳请各位高手帮帮忙吧。
关于initrd镜像的制作我是参照以下的做法,只不过原文是在硬盘上制作的,我的是在U盘上制作。
网址:http://blogold.chinaunix.net/u/3514/showart_1717801.html
我把init脚本提出来:
#!/bin/sh
mount -t proc proc /proc
mount -t sysfs sysfs /sys
mdev -s
#using udev autoload hard disk driver module
mkdir -p /dev/.udev/db
udevd --daemon
mkdir -p /dev/.udev/queue
udevtrigger
udevsettle
mount /dev/sda8 /mnt
killall udevd
exec switch_root /mnt /sbin/init
系统从内核启动,到initrd的加载所需驱动模块并生成相应设备文件都是正常的,执行到最后一步:exec switch_root /mnt /sbin/init 时系统并没有从内核的rootfs进入挂载点/mnt里的真实根文件系统,只是提示switch_root的使用方法,而不是提示错误信息。提示如下:
Usage: switch_root [-c /dev/console] NEW_ROOT NEW_INIT [ARGS]
Free initramfs and switch to another root fs:
chroot to NEW_ROOT, delete all in /, move NEW_ROOT to /,
execute NEW_INIT. PID must be 1. NEW_ROOT must be a mountpoint.
我用mountpoint检查过挂载点/mnt是没问题的,不知u盘上的真实文件系统下的/sbin/init 程序是否有问题,但可以确定/sbin/init是可正常执行的。
再次请求哪位仁兄大侠能够鼎力相助,小弟感激不尽!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论