lanzinc 发表于 2007-12-16 17:55:29

至于现在的系统,是否还必须在一个分区扇区放置一个引导程序,就不知道了。

xp 需要 ,vista不知道
grub , lilo好像也需要。

自由狼-台风 发表于 2007-12-18 10:13:52

原帖由 jiangtao9999 于 2007-12-16 10:22 发表 http://www.linuxfans.org/bbs/images/common/back.gif
目前我还不知道 grub 是如何实现 MBR 引导的,估计和 MS 的类似,也需要借助其他地方的代码来继续执行自己的代码?但删掉 Linux 分区,依然可以进入 grub 的命令行。难道是 grub 在 448 字节的代码里实现了这么多的功能? lilo 好象是借助绝对扇区实现的引导。

Lilo是通过绝对扇区来引导的,即使删除Linux分区(甚至格式化),只要不做数据覆盖,Linux内核数据还在,Lilo就能找到Linux。当然,Linux文件系统已经不存在了,启动需要的其他文件无法找到,于是Kernel Panic……

Lilo工作时不会读写辅助配置文件,被我用作第一级引导,引导至Windows第一分区和三个Linux分区的超级块。

Grub的引导方式比较接近Ntldr,在MBR或分区超级块中的代码先引导到位于某分区上的Grub核心,之后Grub核心通过某配置文件来引导特定操作系统或跳转到另外一个引导位置,如果把安装Grub的分区删除或格式化,Grub就失效了。

Grub和Ntldr工作时依赖辅助配置文件,被我用作第二级引导,分别引导两个Windows和三个Linux。

你的Grub工作正常,有可能是Grub没有装在你删除的Linux分区上(也许装在另外一个Linux分区上),或者装的是Grub4dos。否则就是RP大爆发。

自由狼-台风 发表于 2007-12-18 10:16:22

第1234贴!

jiangtao9999 发表于 2007-12-18 18:52:45

原帖由 lanzinc 于 2007-12-16 05:55 PM 发表 http://www.linuxfans.org/bbs/images/common/back.gif
至于现在的系统,是否还必须在一个分区扇区放置一个引导程序,就不知道了。

xp 需要 ,vista不知道
grub , lilo好像也需要。
好像分区的第一扇区必须是引导程序才能启动 win 系统,不管是 win98/2000/XP/vista 。主要是不知道 Windows 的引导程序系如何控制的,曾经有人说只要把 ntldr 这个文件拷贝到根目录,就能启动系统。win98 的话,拷贝 io.sys msdos.sys command.com 到软盘根目录就算做好启动软盘……:shock: 从来没有尝试过能这样操作……

现在我不明白的问题是 grub 所在分区删掉后,grub 依然会进入命令行,这个时候 grub 如果是基于分区表识别的,就应该是不能工作,除非使用的是绝对扇区的方式。但绝对扇区方式已经被彻底淘汰了啊……
除非 grub 光放在 MBR 扇区和引导分区的第一个扇区,他在别的地方还有东西?
原帖由 自由狼-台风 于 2007-12-18 10:13 AM 发表 http://www.linuxfans.org/bbs/images/common/back.gif


Lilo是通过绝对扇区来引导的,即使删除Linux分区(甚至格式化),只要不做数据覆盖,Linux内核数据还在,Lilo就能找到Linux。当然,Linux文件系统已经不存在了,启动需要的其他文件无法找到,于是Kernel Pani ...
lilo 的工作方式太不好控制了,适合万年不变的系统……

自由狼-台风 发表于 2007-12-21 10:32:57

原帖由 jiangtao9999 于 2007-12-18 18:52 发表 http://www.linuxfans.org/bbs/images/common/back.gif

现在我不明白的问题是 grub 所在分区删掉后,grub 依然会进入命令行,这个时候 grub 如果是基于分区表识别的,就应该是不能工作,除非使用的是绝对扇区的方式。但绝对扇区方式已经被彻底淘汰了啊……
除非 grub 光放在 MBR 扇区和引导分区的第一个扇区,他在别的地方还有东西?

你说的“在别的地方还有”的东西在“/boot/grub”里。grub引导扇区会指向这里的某个*stage*,具体情况由其所在分区的格式决定。由于在grub启动步骤中,这一步是通过绝对扇区跳转的,只要数据不被覆盖,grub依然能运行,但“menu.lst”和“grub.conf”肯定找不到了。

原帖由 jiangtao9999 于 2007-12-18 18:52 发表 http://www.linuxfans.org/bbs/images/common/back.gif

lilo 的工作方式太不好控制了,适合万年不变的系统……

没有充分的理由,我不会改变操作系统在硬盘上的分布。万年不变夸张了,但几个月不装系统、一两年不重新分区倒是真的。

[ 本帖最后由 自由狼-台风 于 2007-12-21 10:40 编辑 ]

jiangtao9999 发表于 2007-12-22 10:18:02

那也就是说 grub 用的还是直接跳转地方式,这个方式是不好地……

我记得 lilo 是直接跳转到内核。所以你把内核删掉后重新拷贝一个过来,如果原先的内核被别的数据覆盖,lilo 就不能启动linux了。

[ 本帖最后由 jiangtao9999 于 2007-12-22 10:19 编辑 ]

自由狼-台风 发表于 2007-12-25 09:42:16

原帖由 jiangtao9999 于 2007-12-22 10:18 发表 http://www.linuxfans.org/bbs/images/common/back.gif
那也就是说 grub 用的还是直接跳转地方式,这个方式是不好地……
没办法,Grub太大了,主体部分在MBR和超级块里都塞不下。

原帖由 jiangtao9999 于 2007-12-22 10:18 发表 http://www.linuxfans.org/bbs/images/common/back.gif
我记得 lilo 是直接跳转到内核。所以你把内核删掉后重新拷贝一个过来,如果原先的内核被别的数据覆盖,lilo 就不能启动linux了。
跳转到内核文件和IMG文件的文件头所在的扇区。删除这些文件,再复回过来,文件头所在扇区一般不会再是原来那个。如果是在同一文件系统内移动(ext2/ext3),文件头的物理位置不会改变,没有问题。

jiangtao9999 发表于 2007-12-25 22:02:34

我觉得 grub 应该学习 Windows , MBR 仅仅是一个中转代码。grub 本体放入 / 分区比较好。不过 windows 的 MBR 引导程序只支持主分区的引导……

在同一个文件系统内移动,其实修改的仅仅是目录结构上的节点,文件的位置分配没变化……

自由狼-台风 发表于 2007-12-26 15:09:09

原帖由 jiangtao9999 于 2007-12-25 22:02 发表 http://www.linuxfans.org/bbs/images/common/back.gif
我觉得 grub 应该学习 Windows , MBR 仅仅是一个中转代码。grub 本体放入 / 分区比较好。不过 windows 的 MBR 引导程序只支持主分区的引导……

在同一个文件系统内移动,其实修改的仅仅是目录结构上的节点, ...

可能表述方式不一致。我所说,grub在MBR或超级块中的部分就是跳转用的,跳向引导器主体,这个跳转是扇区级硬跳转。ntldr也是这种方式,但引导灵活性不及grub。

我的计算机上,grub位于Linux的[/]分区,ntldr位于。
页: 1 2 [3]
查看完整版本: STAT硬盘如何安装Magiclinux