+ -
当前位置:首页 → 问答吧 → Linux启动

Linux启动

时间:2011-11-10

来源:互联网



今天终于开始做U盘多重启动了。

用的是grub4dos,然后加载各种iso。

教程上写的下面的东西,我就用了。能成功加载PE:
  1. title WIN7PE
  2. map (hd0,0)/boot/WIN7PE.ISO (hd32)
  3. map --hook
  4. chainloader (hd32)
  5. boot
复制代码
看着挺简单的哈。然后试着加载ubuntu就没那么简单了:
  1. title Ubuntu 11.10 Desktop x86
  2. find --set-root /boot/ubuntu-11.10-desktop-i386.iso
  3. map (hd0,0)/boot/ubuntu-11.10-desktop-i386.iso (hd32)
  4. map --hook
  5. root (hd32)
  6. kernel /casper/vmlinuz boot=casper iso-scan/filename=/boot/ubuntu-11.10-desktop-i386.iso
  7. initrd /casper/initrd.lz
  8. boot
复制代码
然后我就产生了几个问题:
1. 加载iso是怎么个机制,grub4dos会把iso映射成一个硬盘吗?
2. kernel和initrd分别扮演什么角色?启动流程我看了,为什么这两个放在grub里面
3. 这上面两种方法有什么区别?

作者: jiang925   发布时间: 2011-11-10

1、不是的,应该是以回环设备方式挂载ISO,类似于虚拟光驱。
2、kernel是内核,initrd是内核映像。内核的作用就不说了,内核映像的作用是在启动过程中释放init文件,临时挂载虚拟root,进行各种驱动模块的加载,再进入真实的root,同时卸载虚拟root。其实我不是很理解你所说的放在grub是什么意思。另外,initrd在引导过程并不是必须的,如果所需要的设备驱动都已经编入内核的话。
3、PE和Linux LiveCD的菜单本来就不一样啊……PE又不需要定位root,加载内核什么的。

作者: woodelf   发布时间: 2011-11-10

回复 woodelf


1. 啊,对。我的意思就是一个类似block device的东西,能mount到某处的。
2. 我的意思是为什么不是kernel去加载,而是在grub里面加载。不过我感觉我的疑问没意义。
3. 谢谢~~

这几天太麻烦了你了。嘿嘿,还有问题

作者: jiang925   发布时间: 2011-11-10

热门下载

更多