Homeに戻る  一覧に戻る 

install GNU GRUB


GNU GRUBを導入する[2002.02.24]

Windows 2000 Professionalの環境が構築できたので、bootセレクタとして、GNU GRUB version 0.91を導入した。GRUBはGRand Unified Bootloaderの意味である。

GRUBを組み込む作業に先だって、sd2(da2)のFreeBSD 4.2-RELEASEを4.4-RELEASEにupgradeした。
CDDからのbootが可能なら、4.4-RELEASE CD-ROM(UNIX USER 2001/12の付録)で起動して、installerでupgradeを選択すると、後は簡単な作業である。
sourceも展開して、kernelのconfigファイルを編集し、kernelをbuildして、入れ換える。少し心配だったXFree86 3.3.6aもELSA Synergy 2000カード上で、ごく簡単に動作した。1600x1200,32bit Colorにすると、CRT画面がちらついて気になるので、1280x1024,32bit Colorで妥協する。この中間の解像度がサポートされていると、もっとよいのだが。
Windows 2000をインストールする前は、CMOS時計をUTC(GMT)に合わせていた。Windows 2000を入れたために、CMOS時計を現地時間(JST-9)に合わせる必要があるので、FreeBSDでは、ファイル/etc/wall_cmos_clockを作成する。

ついでに、sd1のNetBSD 1.5をNetBSD-1.5.2にupgradeした。こちらは、BSD Magazine 2001 No.10の付録CD-ROMを使って起動し、installerでupgradeを選択した。ただし、このCD-ROMには、ソースが入っていないので、別途入手する必要がある。
CMOS時計を現地時間に合わせるために、NetBSDでは、kernelのconfigファイルで、RTC_OFFSET=-540を指定して、kernelをbuildし直して、入れ換える必要がある。XFree86もELSA Synergy 2000カード上で問題なく動作した。/etc/XF86Configファイルはこのように設定した。

以上の作業が完了したので、GRUBの組み込み作業に入る。sd1上のNetBSD-1.5.2を利用して、GRUBをsd0のMBRにインストールする作業の手順は、以下の通りである。
  1. grub-0.91-i386-pc.tar.gzを展開し、install用バイナリを/grubにコピーする。
    $ tar zxf grub-0.91-i386-pc.tar.gz
    $ su
    # cp -R ./grub-0.91-i386-pc/boot/grub /
          
  2. FDを1枚用意して、stage1,stage2をFDに書き込む(GRUB boot FD)。
    # cd /grub
    # dd if=stage1 of=/dev/fd0a bs=512
    # dd if=stage2 of=/dev/fd0a seek=1 bs=512
          
  3. GRUBのインストール先sd0のMBRをbackupしておく(組み込みを失敗した時に、MBRを復元できるようにするため)。
    # dd if=/dev/sd0a of=sd0.mbr bs=512
          
  4. menu.lstファイルを作成する。
    # GRUB version 0.91 configuration file
    default 0
    timeout 30
    color light-gray/blue yellow/brown
    
    # boot Windows 2000 Professional
    title Windows 2000
    rootnoverify (hd0,0)
    chainloader +1
    
    # boot NetBSD-1.5.2/i386
    title NetBSD-1.5.2/i386
    root (hd1,a)
    kernel --type=netbsd /netbsd
    
    # boot FreeBSD 4.4-RELEASE
    title FreeBSD 4.4-RELEASE
    root (hd2,0,a)
    kernel /boot/loader
    
    # Reinstall GRUB
    title Reinstall GRUB to MBR on sd0
    root (hd1,a)
    setup (hd0)
          
  5. 作成したGRUB boot FDからbootできて、GRUBのコマンドモードgrub>に入ることを確認する。また、コマンド入力により、sd0,sd1,sd2より、それぞれ、Windows 2000, NetBSD, FreeBSDがbootできることを確認する。

  6. sd1の/grubを利用して、sd0のMBRにGRUBを組み込む。
    grub> root (hd1,a)
    grub> setup (hd0)
         
  7. sd0からbootして、GRUBが起動し、menuが表示されることを確認する。

NetBSD-1.5.2のGAS(binutil)は.code16 addr32の生成をサポートしていないため、GNU GRUB 0.91(grub-0.91.tar.gz)をbuildするには、GNU binutils 2.9.1.0.23以降をインストールする必要がある。

当初の目的であったGRUBによるWindows 2000, NetBSD-1.5.2/i386, FreeBSD 4.4-RELEASEの起動の切り換えがひとまず実現できた。

最後に失敗談を一つ。
別にWindows NT 4.0 Workstation/NetBSD-1.4.2をインストールしたミドルタワー機も所有しているが、こちらでは640MB MOを通常NTFS formatで使用している。 Windows 2000のNTFS5は、Windows NT 4.0のNTFSの上位互換だが、下位互換ではない。 Windows 2000上でNT 4.0 NTFSでformatされたMOやHDを一度読み書きすると勝手にNTFS5に変更してくれるので、その後、NT 4.0で読み込むことはできなくなる。 このことは、あるとき会社で2000 ServerとNT 4.0 Serverを同じマシンにインストールして、起動を切り換えようとして発覚したが、結局、回避できずに、同一マシンでの起動の切り換えは、断念した。 今回は不注意により、NTFS MO1枚をNT 4.0から読めなくした。 これは、Windows 2000/NT4.0の混在環境を許さず、全機のOSを強制的にupgradeさせるための策略(仕様)ではないか?

項目 部品/製品 備考 購入年月
ケース
電源
星野金属工業
WinDy Premium MT Pro 2000 Black
350W ATX
Al製 1999.12
Mother Board MSI MS-6167 W6167 V1.2 090899
Award Modular BIOS 6.00PG
1999.12
CPU AMD Athlon 700MHz
L1 Data Cache: 64KB
L1 Inst Cache: 64KB
L2 Cache: 512KB
Family:Model:Step: 6.1.2
MMX, Extended MMX
3DNow!TM, Extended 3DNow!TM
Slot A, Box 1999.12
Memory 256MB 128MB SDRAM PC100-CL2*2 1999.12,
2000.02
FD Drive Teac FD-235HG 3.5 inch, 2-mode 1999.12
Display Card ELSA Synergy 2000 Quadro2 EX 32MB RAM, AGP 2002.02
SCSI Card Adaptec AHA-2940U2W PCI 1999.12
HD0 Quantum ATLAS10K3_36_WLS ULTRA2-LVD,ID=0,36GB
Windows 2000 Professional
GNU GRUB 0.91 on MBR
2002.02
HD1 Quantum ATLAS IV 18WLS ULTRA2-LVD,ID=1,18GB
NetBSD-1.5.2/i386
/grub/menu.lst
2000.06
HD2 Quantum ATLAS 10K 18WLS ULTRA2-LVD,ID=3,18GB
FreeBSD 4.4-RELEASE
1999.12
MO Drive 富士通 MCE3064SS Fast/Ultra-SE,ID=4,640MB 1999.12
CD-ROM Drive 東芝 XM-6401TA Fast/Ultra-SE,ID=6 1999.12
LAN card 3Com 3C905B-J-TX 100BaseTX 1999.12
Sound card AudioExcel AV512 PCI,SB16互換,6ch出力 2002.02
Keyboard PFU Happy Hacking Keyboard PD-KB02 PS/2 1999.12
Mouse Microsoft Serial Mouse 2.0A Serial 9pin 1995.08
Display Nanao FlexScan 68T 20inch CRT 1995.08

参考文献



Last Update: 2005.06.12
H.Nakao

Homeに戻る[Homeに戻る]  一覧に戻る[一覧2002に戻る]