QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

楼主: 尿不湿

请问怎么把linuxmagic2.0安装到USB移动硬盘上阿

[复制链接]
发表于 2006-4-20 23:15:53 | 显示全部楼层
如果用ML 2.0的预编译内核,并且在initrd里提供usb相关模块,rootdelay参数是没有用的。我不知道用自己编译出来的内核是否rootdelay就有效了。


[quote:fc4085c4bb="tyfrlj"]可以这样做

先在硬盘上编译包含必要驱动的内核,包括usb和scsi的驱动及其它必要的驱动等,而不是把这些驱动编译成模块,其它驱动可以编译为模块

把编译好的内核复制到U盘或移动硬盘上,修改引导配置文件,给内核加上延迟参数rootdelay=,如grub:
kernel /boot/vmlinuz-2.6.13.4 ro root=/dev/sda3 rootdelay=5 vga=791 splash=slient

Grub可以安装在U盘或移动硬盘的MBR[/quote]
回复

使用道具 举报

发表于 2006-4-20 23:31:56 | 显示全部楼层
rootdelay参数是内核自身支持的,其支持代码在 init/do_mounts.c
在initrd里提供usb相关模块是不行的,因为在访问initrd映像文件之前,必须加载USB和SCSI的驱动,内核才能访问在移动硬盘或U盘上的分区、文件。
回复

使用道具 举报

发表于 2006-4-20 23:36:37 | 显示全部楼层
读initrd的过程是由grub通过BIOS进行的,并不通过linux内核,所以是不需要linux中关于usb的模块的。

至于rootdelay,我不清楚它在哪儿产生延迟,如果是在mount initrd之前产生延迟,那么把模块编译进内核加rootdelay应该就可以了,因为这样可以保证从加载驱动模块到initrd上的init脚本mount真正的根文件系统之间有足够的时间。而把模块放在initrd上这个参数就没有用。这个跟实验结果似乎比较符合。

不过一劳永逸的方法还是完善initrd里面的启动脚本,现在这个太简陋了。我看Debian里面乱七八糟的脚本一大堆,能判断设备是否就绪,似乎还能把nfs做为根文件系统。

[quote:42d0b2ba20="tyfrlj"]rootdelay参数是内核自身支持的,其支持代码在 init/do_mounts.c
在initrd里提供usb相关模块是不行的,因为在访问initrd映像文件之前,必须加载USB和SCSI的驱动,内核才能访问在移动硬盘或U盘上的分区、文件。[/quote]
回复

使用道具 举报

发表于 2006-4-20 23:52:40 | 显示全部楼层
所以我不喜欢用initrd映像二级启动,我都是一个内核启动的
回复

使用道具 举报

发表于 2006-4-21 00:00:32 | 显示全部楼层
如果要做通用的系统的话搞成一个核有点太大,所以debian把几乎所有都编译成模块,然后全部放到initrd里面,这个方法似乎还不错。

不过对Magic Linux来说,从USB启动需要的模块除了一个ehci-hcd以外已经全都编译进去了,所以再多加一个也无所谓。这样也简单多了,以后需要USB启动只要加一个rootdelay参数。

[quote:82fc51670e="tyfrlj"]所以我不喜欢用initrd映像二级启动,我都是一个内核启动的[/quote]
回复

使用道具 举报

发表于 2006-4-21 00:07:59 | 显示全部楼层
我说的一个内核并不是把所有驱动都加进去,只要启动时需要的驱动编译进就OK了
回复

使用道具 举报

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

本版积分规则

GMT+8, 2024-11-25 01:28 , Processed in 0.055810 second(s), 13 queries .

© 2021 Powered by Discuz! X3.5.

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