精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>电脑技术>>● UNIX>>◆网络知识◆>>介绍一个新的 boot loader(转寄) (转载)

主题:介绍一个新的 boot loader(转寄) (转载)
发信人: ding()
整理人: wwwyyyxxx(1999-08-23 21:33:38), 站内信件

syc 到了美国底定下来後,不离「本行」... :-)

以下是 woju reply syc 部分的信件内容。
-----------------------------------------------------------------------------
: 我昨天把Hurd (gnu-0.2) 装完又杀掉了. 一个令人沮丧的经验, 但是
: 有这麽一个收获, 就是Grub bootloader.
: 我不知道freebsd的loader是什麽, 印象中好像也烂烂的, 所以写给你,
FreeBSD loader... mmm... 不会烂烂的啦,FreeBSD loader 埋在 ufs □,
甚至,我怀疑埋在 kernel □ :p

: 看你要不要在台湾Linux/FreeBSD界推广.
看起来不错喔,待会我转到 BSD/Linux/UNIX 相关版面。

: 我想你会喜欢这个bootloader的, 它唯一的缺点就是太强了,
哈哈... 竟然使用了... woju 用来描述 FreeBSD 的「招牌形容词」 ;-)

: 如果这台机器是共用的, 你可能会比较希望用原来作业系统的
: loader.
FreeBSD 实在... mmm... 太强了 @_@ ... 强到不用管什麽 loader 的 :p
woju 到现在装 FreeBSD 还是使用 boot-eazy,看起来烂烂的那个... 但够用了,
也觉得相当好用。

最大的原因是,通常跑 FreeBSD 的机器都只有一种 OS -- FreeBSD only, 24hr in
FreeBSD!! 所以咧... 开机变成很少(几个月才有一次)发生的事... :p

Anyway,会把 syc 的心得转贴到 UNIX 各版面。

也很高兴 syc 到美国「底定」下来了,希望有机会多多回来 tw 关照关照哦 :-)

With regards,
吴 庆 鸿,[email protected] | 台大电机,http://freebsd.ee.ntu.edu.tw
-----------------------------------------------------------------------------

以下是 syc 寄给 woju 原始信件的部分内容。

-----------------------------------------------------------------------------
我昨天把Hurd (gnu-0.2) 装完又杀掉了. 一个令人沮丧的经验, 但是
有这麽一个收获, 就是Grub bootloader.

我不知道freebsd的loader是什麽, 印象中好像也烂烂的, 所以写给你,
看你要不要在台湾Linux/FreeBSD界推广.

以下是我写给同学的信(edited):
---------------------
装Hurd还是有收获. Hurd用一个叫Grub的bootloader,
非常漂亮. 可以线上透过下命令的方式(with Emacs line-editing)
选Kernel开机. 支援Ext2, NetBSD/FreeBSD FFS, DOS FAT.
也就是说, 不管什麽kernel放在这些档案系统, 都可以载入开机.
而且按TAB键可以show 目录出来. 强烈建议你装. 最好是
抓source code回来自己compile. 不然到freebsd.csie.nctu
gnu-0.2/去抓grub-image.gz (类似这样的名字),解开rawrite
到磁片上.软碟开机就行了, 不过没什麽说明就是了.

开机片上面你会看到:
bootloader namespace :=
    用() 括起来, 比如 (hd0,0) 表示 第一颗硬碟, 第一个partition.
                      (hd0) 表示整个硬碟0, 或者通常用来表示mbr.
    sd表示 scsi.
    这些数字表示bios index这些device的号码.
Mach namespace :=
    /dev/hd0s1     表 hd0, slice 1, 就是第一个partition.
    /dev/hd0a      表示 BSD disklabel内的a partition. 就是用BSD style
                   的命名法.(我讲的可能不太正确, anyway)
    还有很多组合, 要看Hurd FAQ. 如果你不想装hurd, 不用理它.
    Grub不care它, 只是把它pass给kernel.

缩写:
   (hd0,a) 表示 bsd disklabel patition a  (on wd0)

Boot Linux:
    Menu下选C 跳至command line,
    > kernel= (hd0,2)/vmlinuz 3 read-only root=/dev/hda3
    [ .... loading message]
    > boot

以上指令载入 (hd0,2)下的 /vmlinuz, 後面是kernel的 argv[].
我所下的指令把Linux启动於 run level 3.
'boot' 关鉴字没有意思, 就像debugger 的run一样, 表示开始执行.
一开始按tab键 show all available commands.
打到 hd时, 按tab键可以show all available devices.
打到 ), 按tab键 == ls /

你可以编辑menu上的 install from floppy to hard disk选项
把它装到自己的硬碟. 注意grub开机片没有能力把它所须要的档案
写到filesystem. 要自己想办法 (开机片可能是FFS格式)
先在linux:/boot/grub 下面放 {menu.lst,stage[12]} 等档案,
才能安装. (Linux可能没法mount grub开机片. either用 netbsd
or freebsd boot floppy才可能有办法mount,
所以由source code出发比较好)

安装完以後update kernel就 vi  /boot/grub/menu.lst
即可. 不用lilo. Grub自己看得懂filesystem, 自己去
把kernel image读出来.

相反的. lilo使用sector map(就是记录kernel image 放在
disk的哪些sector,以便开机时直接load这些sector, 所以
换kernel要重新执行lilo)

我觉得可以把 grub装在 mbr, lilo 装在 linux partition boot
sector,or 反过来. 这样有双重保障, 万一 mbr那个被干掉
了, 还有一个可以用. (其实纯lilo也可以做到这样子, 用不同
的map档就好了)

透过chainloader, Grub可以boot DOS/NT/OS2.
简单的说, 开机时有一个mini comand line(console),
可以透过menu或command line的方式载入并起动OS.

GRUB 可以把自己塞到mbr後面那块空地 (第0轨,sector 2- ?63)
使得partition移做它用 (原来寄宿的OS被干掉时), 还能正
常运作. 我想这就是system commander所作的.

我想你会喜欢这个bootloader的, 它唯一的缺点就是太强了,
如果这台机器是共用的, 你可能会比较希望用原来作业系统的
loader.

http://www.gnu.ai.mit.edu/    -> hurd page -> grub

or

http://www.uruk.org/~erich/grub/faq.html
--
Origin: 从零开始 freebsd.ee.ntu.edu.tw (140.112.19.123)

[关闭][返回]