Re: linux前辈们都比较喜欢用LILO而不是GRUB
文件系统都不存在了, 内核作为一个文件还能存在吗??????(就像房子都没了,房子里的家具还能在吗?????)
你把/boot所在的分区格式化,请注意是创建一个新的文件系统比如FAT,而不是低级格式化把硬盘上的数据全部抹掉。可以这样 :把原来装linux的分区在windows 2k 或XP下快速格式化。启动后选择linux,内核还是正常引导,只是不能找到init程序启动失败,说明LILO的引导并不依赖文件系统,只依靠硬盘的BIOS参数来找到内核所在的硬盘扇区并读取。这在很多资料中都有提级。GRUB我确实不了解,只知道它引导系统是依赖文件系统的。所以在欠入式应用中,比在文件系统中,一个内核是一个文件,但是在一个没有文件系统的硬盘区域,内核就是一个连续的数据集,LILO只记录这个数据集的位置(在哪个柱面,哪个扇区等等) 并不关心内核在什么样的文件系统上。
首先申明, 只是技术讨论,没有人身攻击的意思,请gucuiwen不要误解
我也不是说 GRUB和 LILO 那个更好
(1)照您这么说,LILO可以直接引导 Windows 内核了????(或者说 还可以把 内核装在 NTFS上),反正Windows内核也只是一个文件而已(NTFS 又有什么关系),请问该如何做?
(2)如果我把 内核文件转移一下位置,(用CP,再用 RM),即内核在硬盘上的物理位置改变了, 路径和文件名不变,不重装 LILO的话,LILO应该找不到内核了,不能启动了(因为你说“一个内核是一个文件,但是在一个没有文件系统的硬盘区域”现在我吧硬盘区域改了),结果是不是??, LILO应该照常启动
(3)我们知道文件是磁盘存储的抽象,是一种数据结构,我们都知道,文件在硬盘上不是连续存储的,是由链表连接起来的,链接的信息存在磁盘的Table中(例如 Ext2 inode table 或者叫 inode list),现在格式化了,即便数据还在(但却是分布在硬盘的各个扇区,不见得是连续的),但连接他们的 Table没有了,即使 LILO 能读到第一部分,那它怎么能链接到其他部分从而读到完整内核文件呢?(即使Table还在LILO 能读到,那前提是 LILO知道链接的规则,即 LILO 懂得该文件系统 !,而不是所谓的和文件系统无关)
党教育我们:实践是检验真理的唯一标准!
你提出的第二个问题恰恰是这个问题的证实。
因为你删除以后内核仍旧在硬盘上。实际上,这时候LILO引导的是原先的内核,而不是你CP的新内核,如果你在/BOOT所在的分区拷贝上足够多的文件,把原来内核存在的位置用其他文件填满,这时候你不重新运行LILO安装内核的话内核是引导不起来的。以上内容已经经过实践检验。欢迎广大网友去试验然后讨论结果。
第三个问题 :这个问题我也不清楚,正在查资料,不过我确实看到过正式资料说LILO是BIOS级别访问硬盘的,而不是文件系统。希望各位网友踊跃讨论。 此帖应该加精...各位的讨论让我更深入地明白了LILO与GRUB的引导原理以及它们之间的区别...
而且对于yang97e的第3点致疑...我也很想知道真正的答案... :-D
这个问题应该相当于内核文件的各BLOCK物理地址的变化是否会影响LILO的引导吧? :oops: 好贴,gucuiwen !支持! 加精了!确实精华!
另外,我用lilo :wink: 看的半懂,不过真的太好了!!!!!!!!!!
希望有更多这样的好帖子!!!!!!! 有意思
长见识了 从来没用过Grub
一向用Lilo
漂亮的图形模式简单的设置效率极高
因为没用过grub所以没资格说谁比谁好
但是我还是钟情于lilo 太专业了,听不懂。 各有所長
我喜歡用grub
Re: linux前辈们都比较喜欢用LILO而不是GRUB
可以做一个实验:把LINUX的/boot 文件系统格式化,启动电脑照样引导内核,因为格式化虽然使文件系统不存在了,但是内核仍然在硬盘上,只是不能通过文件系统访问。但是LILO直接通过硬盘读取数据,所以照样启动内核,但是GRUB却不能。文件系统都不存在了, 内核作为一个文件还能存在吗??????
(就像房子都没了,房子里的家具还能在吗?????)
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分区上)重启即可
你的意思是不是说用GRUB就不能用chroot,grub-install /dev/hda 这个命令拉? 上次我试过,回车之后就一直停在那里不动了.
这是为什么啊? 全是高手,就我菜了……
请问现在什么版本的LINUX最适合菜鸟用?
页:
1
[2]