分页: 3 / 4
发表于 : 2008-09-16 22:06
由 ptptptptptpt
muzuiget 写了:luojie-dune 写了:还在研究。。。顺便写个完整的入门文档~~~~
对对,建议分头写个什么各种情况grub修复办法,然后发布为pdf,包比wiki更有影响力。
说实在话,我不止一次此冲动,但后来发现,grub 太灵活了,可能的情况太多,写出来太繁琐了,读者看起来也会头大
另一种选择是,从基础原理讲起,明白了原理,就都好说了
不论哪种选择,都挺费劲的,所以才有了这个帖子,大家讨论一下,有没有改造的可能,哪怕牺牲一些灵活性或增加一些限制,能够使得 grub 问题简单化,新手老手都省劲
发表于 : 2008-09-16 22:08
由 hecha
我的系统用的是 一键还原 装的 grub, ubuntu 和 arch 都从那里启动.
个人觉得应该搞一个专门的引导分区.
然后装系统, 所有系统都从该分区引导. 这样, 基本上不会有什么启动问题了
发表于 : 2008-09-16 22:10
由 ptptptptptpt
muzuiget 写了:ptptptptptpt 写了:pentie 写了:ptptptptptpt 写了:lz说专门弄个fat32分区去放dos、grub4dos,那干嘛不在win下用虚拟机安装lin算了。
这才真是莫名其妙,弄个 fat32 分区 跟 用虚拟机安装lin 有任何的可比性吗??
你不知道用fat32会破坏系统的统一性和安全性么?不然既然有了开放的fat干嘛还ext、reiserfs?
我还真不知道,仅仅在 fat32 分区放个boot loader ,怎么就破坏了统一性和安全性?? 盼指教。
照你的意思,用虚拟机安装lin 也会破坏系统的统一性和安全性 ?
论特性 ,fat32 当然比不过 ext、reiserfs ,但好东西并非放在哪都是好东西,仅仅存放个 boot loader ,fat32 绰绰有余,而且便于访问,有什么不好??
一个分区就放一个东西,不爽。
只是习惯而已。如果能带来更多好处,改变下习惯是值得的
觉得太空的话,还可以放些急救软件、应急系统。现在我的硬盘、移动硬盘都是这样
发表于 : 2008-09-16 22:13
由 ptptptptptpt
代码: 全选
pt@pt-desktop:/media/U-BOOT$ ls
Autorun.inf casper0 grldr MiniPE Recycled WINPE.IM_
boot casper1 LDRXPE NTDETECT.COM slax 复件 menu.lst
casper casper2 menu.lst PELDR WINNT.SIF
发表于 : 2008-09-16 22:22
由 muzuiget
ptptptptptpt 写了:muzuiget 写了:luojie-dune 写了:还在研究。。。顺便写个完整的入门文档~~~~
对对,建议分头写个什么各种情况grub修复办法,然后发布为pdf,包比wiki更有影响力。
说实在话,我不止一次此冲动,但后来发现,grub 太灵活了,可能的情况太多,写出来太繁琐了,读者看起来也会头大
另一种选择是,从基础原理讲起,明白了原理,就都好说了
不论哪种选择,都挺费劲的,所以才有了这个帖子,大家讨论一下,有没有改造的可能,哪怕牺牲一些灵活性或增加一些限制,能够使得 grub 问题简单化,新手老手都省劲
如果你真的是有写的打算,先列一个大纲(或目录)出来,再讨论讨论哪些需精,那些需简。最好主要说明grub4dos使用,毕竟还有不少人得保留XP。grub4dos好像缺乏全面的入门手册(英文的不算),我学grub的知识也是东拼西凑得来的,一些chm(都有点过期了),wiki(没多少人更新了),无忧板块,还有一些硬盘分区知识。
发表于 : 2008-09-16 22:30
由 ptptptptptpt
不是说了吗,我曾经有冲动,但,现在想拿 grub 开刀了——从源头改善
个人能力有限,先讨论讨论过过嘴瘾
发表于 : 2008-09-16 22:33
由 ptptptptptpt
必须有一整套的解决方案,得能打动发行版作者 来采用。才能有影响力。
grub4dos 那么好使,这么多年来,也只限于爱好者使用,发行版还是用 grub 0.97 ,就是因为 GRUB4DOS 没有为发行版提供一套完整可用的解决方案。
发表于 : 2008-09-17 0:24
由 ffsxsy
ptptptptptpt 写了:必须有一整套的解决方案,得能打动发行版作者 来采用。才能有影响力。
grub4dos 那么好使,这么多年来,也只限于爱好者使用,发行版还是用 grub 0.97 ,就是因为 GRUB4DOS 没有为发行版提供一套完整可用的解决方案。
有点道理,ubuntu的livecd的启动菜单已经用grub4dos了
发表于 : 2008-09-17 12:44
由 ptptptptptpt
设想一种新的引导定位方法:利用记号文件
其实也不算新,slax 很早就在用了。以前做移动 ubuntu ,也用过这个法子。那么,它有什么好处呢?
先看看当前的引导定位方法。这是一个 menu.lst 项:
代码: 全选
title Ubuntu 8.04.1, kernel 2.6.24-19-generic
kernel (hd0,6)/boot/vmlinuz-2.6.24-19-generic root=/dev/sda7 ro quiet splash
initrd (hd0,6)/boot/initrd.img-2.6.24-19-generic
可以看到,在 grub 中是通过 hdx,x 来定位分区,在linux ,传统上是 /dev/sdxx ,现在开始用 UUID
对于 hdx,x 和 /dev/sdxx 方式,当进行了 增删分区 或 其他操作,改变了原分区序号 ,就会失效
比如,在本机上是 /dev/sda7 ,换个机子,可能就是 /dev/sdb7 (双硬盘)
UUID 先进一些,不论硬盘拿到哪里,也不论其它分区如何增删,未经操作的分区 uuid 都不会变。
但是有一点,克隆系统时,也就是把一个装好的 ubuntu 复制到另一硬盘时,一般都会有新的 uuid ,这时需要改 menu.lst 才能启动。
而且, uuid 是一串挺长的字符,很难记,不直观。像 /dev/sdxx 万一写错 导致启动失败的话,还可以在 grub 下猜测修改。而 uuid 就无奈了,恐怕没人能猜测到该是怎样,而 grub 0.97 又不能查看分区 uuid (grub2 可以),这就很麻烦。
记号文件就比较直观。比如,可以按这样的规则 在安装系统时生成记号文件,放在分区根目录:sign-[发行版名称]-[版本号]-[安装日期]-[挂载点]。举个例子,sign-ubuntu-8.04.1-20080916-usr ,表明该分区是 2008年9月16号安装的 ubuntu 8.04.1 的 usr 分区
可以定义一个新的内核参数:rootsign 。 rootsign=sign-ubuntu-8.04.1-20080916-rootdir 表示 以 存有名为 sign-ubuntu-8.04.1-20080916-rootdir 的记号文件 的分区 作为根分区 启动。
记号文件定位方式没有 /dev/sdxx 和 UUID 方式的缺点。
grub 也可以用记号文件来定位内核所在分区,原理类似。GRUB4DOS 的 find --set-root 命令 就是用来干这个的。
发表于 : 2008-09-17 22:18
由 billbear
我建议安装完以后都把类似
title Ubuntu 8.04.1, kernel 2.6.24-19-generic
root (hd0,4)
kernel /boot/vmlinuz-2.6.24-19-generic root=UUID=5b1b1014-efd3-4731-b3f9-b4924ca519a6 ro quiet splash
initrd /boot/initrd.img-2.6.24-19-generic
中的
root (hd0,4)
删掉
以后就算不再是 (hd0,4) , 还是可以简单地用 boot.ini 和 grldr 启动
我做了个 ghost 版的 ubuntu ,就是删掉这一句,所以不论恢复到哪个分区,都可以用 grub4dos 启动
发表于 : 2008-09-17 22:32
由 aitilang
新手描述不清,老手猜测不到,胡乱指挥一通,后果难以预料
发表于 : 2008-09-17 22:59
由 billbear
m$ 的 分区引导信息是寻找 本分区 中的 ntldr
而装在分区引导扇区里的 grub 却没有一个寻找 本分区 里的 stage2 的功能,必须清晰地指明是第几个分区,而分区的编号可能因为某些操作而发生变化。
我以为 grub 的麻烦就在这里。
只要 grub 可以指定 本分区,安装时装到分区引导扇区,然后通过激活分区来实现 grub 引导,不管分区位置怎么发生变化,都不会有麻烦。哦对了,menu.lst里的 root (hdx,y) 一句同时删掉。
另外,我觉得把 grub 装到 mbr 不是一个好主意。为什么呢, grub 和 linux 是紧密联系的,理应存在于 linux 分区里,放在 mbr 这种公用位置就是人为地把他们割裂。而且 mbr 这个弹丸之地如果每个 OS 都想染指的话就很难不发生冲突。我觉得 m$ 的 mbr 是比较单纯的,没有更多功能,就是直接向活动分区移交权力。应该以这种 mbr 为基础,起草一个标准 mbr ,让每个 OS 遵守,然后各自的引导功能放在自己的分区里,这样就不容易乱。
这种标准的 mbr,我设想是列出所有的 引导扇区非空的分区(不仅限于主分区)供选择启动。现在有一些启动管理器,实际上功能是列出所有可启动的主分区供选择,我想这是不够的,我们可用的主分区通常只有3个。如果有这种标准的 mbr,就可以启动装在逻辑分区里的 grub,同时可以忘记 活动分区的概念。那么 linux 就会默认把 grub 装在分区引导扇区里,如果他再可以指向 本分区 的 stage2,那么天下就太平了。
发表于 : 2008-09-18 9:39
由 ptptptptptpt
billbear 写了:m$ 的 分区引导信息是寻找 本分区 中的 ntldr
而装在分区引导扇区里的 grub 却没有一个寻找 本分区 里的 stage2 的功能,必须清晰地指明是第几个分区,而分区的编号可能因为某些操作而发生变化。
我以为 grub 的麻烦就在这里。
没错,这一点 grub 比较死板。相对于此,grub4dos 很大的优点就是引进了 搜索 ,而非指定分区。
而且,grub4dos 的引导代码也可以装入分区引导扇区,来搜索本分区内的 grldr ,我没仔细试验过,似乎只支持 fat32、ntfs、ext2/3 ,就像 grldr.mbr (本身就是从grldr.mbr 截取的代码)
billbear 写了:
另外,我觉得把 grub 装到 mbr 不是一个好主意。为什么呢, grub 和 linux 是紧密联系的,理应存在于 linux 分区里,放在 mbr 这种公用位置就是人为地把他们割裂。而且 mbr 这个弹丸之地如果每个 OS 都想染指的话就很难不发生冲突。我觉得 m$ 的 mbr 是比较单纯的,没有更多功能,就是直接向活动分区移交权力。应该以这种 mbr 为基础,起草一个标准 mbr ,让每个 OS 遵守,然后各自的引导功能放在自己的分区里,这样就不容易乱。
这种标准的 mbr,我设想是列出所有的 引导扇区非空的分区(不仅限于主分区)供选择启动。现在有一些启动管理器,实际上功能是列出所有可启动的主分区供选择,我想这是不够的,我们可用的主分区通常只有3个。如果有这种标准的 mbr,就可以启动装在逻辑分区里的 grub,同时可以忘记 活动分区的概念。那么 linux 就会默认把 grub 装在分区引导扇区里,如果他再可以指向 本分区 的 stage2,那么天下就太平了。
装到 mbr 确实值得商榷。这么做可能有历史原因,linux 似乎是要努力保证 在形式上 与 win 平起平坐的地位,另一方面,linux 文件系统种类繁多,共同造就了当前的 grub 。
billbear 兄所设想的 “标准的 mbr” 很有启发性,就是不知道一个扇区的代码够不够,待我咨讯下专业人士

发表于 : 2008-09-18 22:27
由 fbik
余以为,GRUB.EXE放于C盘,其会自行寻找menu.lst文件,利用其中参数进行引导。然今用其安装vector,起初一切正常,后安装过程出错,无奈重新开始,他却不去寻找menu.lst,直接进入grub命令行,我无奈直接使用命令:kernel (hdx,x)/sata 结果惨遭失败,提示找不到文件,屡试皆爽!
甚是不解!
ps:直接用grub命令 本正常过一次,其后我分区将 linux根分区设为boot型,结果进不了 系统,无奈光盘PQ取消 linux分区为活动分区,后再继续安装便再也kernel不到内核了。。。。。。。
发表于 : 2008-09-20 23:12
由 ptptptptptpt
fbik 写了:余以为,GRUB.EXE放于C盘,其会自行寻找menu.lst文件,利用其中参数进行引导。然今用其安装vector,起初一切正常,后安装过程出错,无奈重新开始,他却不去寻找menu.lst,直接进入grub命令行,我无奈直接使用命令:kernel (hdx,x)/sata 结果惨遭失败,提示找不到文件,屡试皆爽!
甚是不解!
ps:直接用grub命令 本正常过一次,其后我分区将 linux根分区设为boot型,结果进不了 系统,无奈光盘PQ取消 linux分区为活动分区,后再继续安装便再也kernel不到内核了。。。。。。。
看不懂。
GRUB.EXE ??您用 dos ??