|
发表于 2004-8-23 11:36:20
|
显示全部楼层
Re: linux前辈们都比较喜欢用LILO而不是GRUB
[quote:f37780ed7f="yang97e"][quote:f37780ed7f="gucuiwen"]可以做一个实验:把LINUX的/boot 文件系统格式化,启动电脑照样引导内核,因为格式化虽然使文件系统不存在了,但是内核仍然在硬盘上,只是不能通过文件系统访问。但是LILO直接通过硬盘读取数据,所以照样启动内核,但是GRUB却不能。[/quote]
文件系统都不存在了, 内核作为一个文件还能存在吗??????
(就像房子都没了,房子里的家具还能在吗?????)
LILO和 GRUB 或者 NT loader, BSD bootmanager 等其他启动管理器一样,都是基于文件系统的, 都只能认识一部分 文件系统 (例如 Grub 只能认得 EXT2,3,FAT等。。),对于不认得的 文件系统,不能直接引导内核,只能通过读取该分区的启动扇区来转交引导权,从而引导其他操作系统
至于不能启动是因为Grub没有找到你的内核(决不是因为文件系统)
kernel /vmlinuz-2.4.20-8 ro root=LABEL=/
Error 15: File not found (内核文件没找到)
Press any key to countinue...
因为有的 Linux (例如 redhat 默认)有一个 Boot 分区,内核文件在那个boot分区上面,你用Grub启动时候都要指向那个分区,而不是你的根分区,你启动后用 chroot ,指到根分区(其实应该指向 Boot分区),再安装 Grub,Grub自然认为内核在根分区上,其实内核在Boot分区上,所以 Grub 启动时当然找不到内核文件
假设你的 boot分区为 /dev/hda1 root分区为 /dev/hda2
则可以Grub 启动时用命令行:
root (hd0,0)指定你的 boot分区
kernel /vmlinuz-2.4.20-8 (假设你的内核名为如此)
boot
即可启动
然后进入 Linux 后, 输入 grub 进入 命令行
root (hd0,0)
setup (hd0) 将 Grub安装在 MBR,(setup (hd0,0) 安装在你的Boot分区上)重启即可[/quote]
你的意思是不是说用GRUB就不能用chroot,grub-install /dev/hda 这个命令拉? 上次我试过,回车之后就一直停在那里不动了.
这是为什么啊? |
|