2014-02-06 曾添 <[email protected]>: > 我重新整理了一下思路: > > 1. BIOS在最后阶段执行了MBR中的grub2 > 2. grub2运行到一定阶段后插入了ext2模块,用来识别ext2格式的/boot分区 > (debian的grub.cfg可看到ext2模块的加入) > 3 然后grub2依靠MBR的指引,找到储存vmlinuz的分区并执行内核 > (看来我的问题在这一步,假设bios对硬盘和u盘的处理都是一样的,毕竟两者都是block > device,同时也假设grub可通过底层对硬盘进行操作,因为我留意过debian的配置里面,相关的SATA,EHCI,AHCI等等,都是被配置为 > M)。 > > 我这样考虑是否正确,或者少了什么步骤,求指教,谢谢你的恢复。 > 基本上可以这么理解,grub的引导过程,可参考wiki[1], 谢谢!
另外,回复邮件列表的邮件,请回复到邮件列表,如果只回复到单个作者,其他人就收不到了。 谢谢! > > > > 在 2014年2月6日 下午10:26,曾添 <[email protected]>写道: > >> grub靠什么可以识别U盘(或者说硬盘)? init 13? >> >> >> 在 2014年2月6日 下午10:25,曾添 <[email protected]>写道: >>> >>> 抱歉手误: >>> >>> >>> 在 2014年2月6日 下午10:25,曾添 <[email protected]>写道: >>> >>>> 可能我的知识不是很多,对其中部分的顺序细节了解的不够。 >>>> >>>> 当时我编译内核遇到的第一个问题就是无法找到实际的根文件系统(VFS Panic),如果没有 initrd 或 initramfs >>>> 的支持,而且相关的硬件模块和文件系统模块没有 embed 到内核的话就会出现那个 VFS 错误。 >>>> >>>> 看了你的恢复,想起当时 grub 1 的确可以把 u盘的内核启动,所以看来我的问题可以表述为: >>>> >>>> >>>> 在 2014年2月6日 下午6:28,Liang Guo <[email protected]>写道: >>>> >>>>> 2014-02-06 曾添 <[email protected]>: >>>>> > 各位好,debian一直可以安装到U盘之类的设备上,不过这两天突然发现个问题 >>>>> > >>>>> > 拷贝 /boot 下的内核配置文件,发现debian的配置里面,关键的几个配置,例如 USB Mass Storage 只是配置为 M >>>>> > ,如果按我的理解,必须是Build In 到内核里面,才可以识别U盘设备。 >>>>> > >>>>> > 这和我的经验不符.请问下 debian 是如何做到可以用 U盘 来启动的? >>>>> > >>>>> > -- >>>>> > Tsang Tim >>>>> kernel和initrd文件由grub或lilo加载到内存,启动usb等硬件设备的内核模块放在initrd文件中。 >>>>> initrd文件是一个gzip过的cpio文件或者ext文件系统,你可以自己解开来看里边包含了什么。 >>>>> >>>>> >>>>> -- >>>>> Liang Guo >>>>> http://guoliang.me/ >>>> >>>> >>>> >>>> >>>> -- >>>> Tsang Tim >>> >>> >>> >>> >>> -- >>> Tsang Tim >> >> >> >> >> -- >> Tsang Tim > > > > > -- > Tsang Tim [1] http://en.wikipedia.org/wiki/GNU_GRUB -- Liang Guo http://guoliang.me/

