LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: yhyzh

我制作USB启动Linux系统的过程

[复制链接]
发表于 2006-12-11 11:42:14 | 显示全部楼层
Post by yhyzh
虽然内核在启动的时候还会报告找不到root文件系统,但是折腾了几下之后,它就找到了并顺利执行init,现在电脑上出现了:   
    init#
   

我也遇到这个问题,
请问如何折腾?
回复 支持 反对

使用道具 举报

发表于 2006-12-15 22:38:28 | 显示全部楼层
遇到的问题一般有两个:
1. 根分区无法初始化。
可能有两个原因,内核USB驱动没有弄好;或者是U盘初始化没有完成,可以在启动参数中加上rootdelay=6
2. 找不到或者无法运行init。
initrd和initramfs不同的启动方法需要的init的默认位置不一样,/sbin/init或者/init,可以是脚本,也可以静态或动态编译的程序,一定要注意相关的库文件和程序能够运行。还有就是内核可执行文件类型也要选对。
回复 支持 反对

使用道具 举报

发表于 2006-12-28 19:44:11 | 显示全部楼层
我静态编译了bash,并拷贝到u盘的/bin目录下,可是,执行
cd /media/usb
chroot .
会报错:Permission Denied。
这种情况下,从u盘启动的时候(从命令行传递了参数init=/bin/sh),就会报错说找不到/bin/sh,这是为什么?
但是把bash拷贝到硬盘上的时候,就能够正常执行啊
(内核中已经加入了scsi和usb的支持)
回复 支持 反对

使用道具 举报

发表于 2006-12-31 10:30:55 | 显示全部楼层
也许要注意分区的挂载方式,有可能分区被挂载成 noexec 便会无法执行命令
回复 支持 反对

使用道具 举报

发表于 2006-12-31 20:03:24 | 显示全部楼层
做好了共享出来,大家用以一下啊
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表