GRUB起動ディスクを作っておくの巻

はてなブックマーク TOPSY

2009.9.16 作成
最終更新日 2010.9.7

【ご注意】尚、Palm84レベルということで安全性はこれっぽっちも保障されていないと思われます(信用ない人だからなぁ...w)。緊急時に使う【取り扱い注意】ツールということで。あしからず。

これってなに? 3

GRUB (for DOS) 起動フロッピーです。

そのまんまでも便利ですが、レスキューやメンテナンス用に便利なツール類など詰め込んでおくのじゃ、ということで。

ハッキリ言って、レトロなPC向けなのでありんす。

戻る | ページ先頭 U

使用目的 4

障害時の原因の切り分けにも使えるかもしれない。

ブートセクタのチェインロード

MBR内のブートストラップが飛んじゃった場合に。

Windows XP/2000 の ntldr のチェインロード

ブートセクタ内のIPLとかが飛んじゃった場合に。

Vista の bootmgr もチェインロードできます。

FD内の ntldr のチェインロード

Windows XP/2000 緊急起動ディスクとして。

boot.ini がおかしいとか、ntldr そのものがおかしいとか。ntfsdos や LiveCD などで直接HD上のファイルを弄るより、とりあえず Windows をブートさせて Windows 上で編集した方がいいかなと。(※回復コンソール使う手もありますけどね)

また、これでもブートしないとなるとHDの異常なのか、Windows の問題なのか判断が付くかも。

FreeDOS

BIOSアップデートとか、DOSが必要な時に。

FD内の boot.ini の確認・修正用にテキストファイル編集の edit.exe を入れといてと。FDISKとかも入れといてもいいかも。

ネットワークブート用起動ディスクとして

ネットワークブート非対応PC用。汎用イメージを使います。BIOS対応に比べ若干制限ありますが...

PLoP Boot Manager

人気急上昇中?(w)。USB(フラッシュメモリ・HDD)非対応PC用の起動用イメージ。完璧じゃないけれども。

Memtest86+

メモリーテスト。

Linuxカーネルのロード

これが本業やん(笑)。Knoppix などの LiveCD をCDドライブを使わずHDにコピーして試したい時とかにも使えるし。(結構簡単w)

Windows の再インストールで MBR の GRUB 消えちゃったな時でも、これがあれば心配ないのです。これで Linux を起動して GRUB を再インストールすればよいのです。

Windows PE 起動ディスクとして

通常の手段(※ CD, USBメモリブート)が使えない時に。HD上にいずれかの方法でPEをコピーしておきます。

  • PE の isoイメージ をHD(ドライブ)のルートへ
  • PE CD内のファイルをそのままHD(ドライブ)のルートへ (※ Vista の bootmgr があるドライブにコピーしてはいけない!)
Linux LiveCD 起動ディスクとして

通常の手段(※ CD, USBメモリブート)が使えない時に。HD上にファイルをコピーしてGRUBから起動させます。

他には、FDしか使えない場合に BG-Rescue Linux の起動用にするとか(FDが +2枚必要)。

【注意】NOD32 など一部のウイルス対策ソフトでFDのブートセクタが「ウイルスの可能性:TSR.BOOT ウイルス」などとして検出されることがあります。面倒ですが除外設定するしかないかなぁ。(※ 何度も提出してますねんけど...)

戻る | ページ先頭 U

【基本的】起動ディスク作成 5

FD書き込みツールは、RawWrite for Windows がお手軽かな?

  1. grub_for_dos-0.4.2.zipgrub4dos-0.4.4.zip をダウンロード
  2. 0.4.2 の fat12grldr.imgをFDへ書き込む
  3. 0.4.4 の grldr を上書きコピー
  4. ファイル default は削除

基本的なGRUB起動ディスクとしてなら、これだけでおk!

grubinst.exe で作成するなら...
grubinst.exe --pause --floppy (fd0)

この後、0.4.4 の grldr , menu.lst をFDへコピー

FDドライブが無い場合はVirtual Floppy Driveを使うとか。

戻る | ページ先頭 U

追加ダウンロード 6

FreeDOSのファイル群

FDイメージなのでFDへ書き込むかマウントするなどしてファイルを取り出せる状態にしておく。

ネットワークブート用カーネル
  1. Choose an output format
    • Linux kernel (SYSLINUX/GRUB/LILO) loadable image (.lkrn) を選択
  2. Choose a NIC type
    • all-drivers を選択
  3. [Get Image] をポチっと
  4. gpxe-0.9.x+-gpxe.lkrngpxe_all.krn にリネーム

※ ずっと 0.9.5 使ってたので最新版はどうなのかわかりません。。。旧バージョン(0.9.4, 0.9.5)は、184 KBと若干サイズが小さいです。最新 0.9.6 は 206 KB。旧バージョンでは、Choose NIC/ROM typegpxe:all-drivers を選択。

PLoP Boot Manager

必要なのは、plpbt.bin だけ。

Memtest86+

※旧バージョンは若干サイズが小さいです。

戻る | ページ先頭 U

追加コピー 7

(GRUB for DOSの)FDへファイルをコピーしませう。

A:.
|   autoexec.bat
|   boot.ini
|   bootfont.bin
|   command.com
|   config.sys
|   edit.exe
|   gpxe_all.krn
|   grldr
|   himem.exe
|   kernel.sys
|   keyb.exe
|   keyboard.sys
|   keybrd2.sys
|   memtest
|   menu.lst
|   more.exe
|   NTDETECT.COM
|   ntldr
|   plpbt.bin
|
\---grub ディレクトリ  * 必要ならここから下も *
        berry.conf
        bgrescue.conf
        insert.conf
        insertfd.conf
        knoppix.conf
        knoppix3.conf
        knoppixs.conf
        puppy.conf
        slax.conf
        sysres.conf
上記でダウンロードしたファイルをFDへコピー
  • gPXE version git - gpxe_all.krn
  • PLoP Boot Manager - plpbt.bin
  • Memtest86+ - memtest
Windows(XP,2000)のブート関連ファイル

通常はCドライブのルートにある。XP SP2のntldrで2000のブートも可能。

  • bootfont.bin
  • NTDETECT.COM
  • ntldr
  • boot.ini のサンプル
echo f| xcopy C:\ntldr A:\ntldr /h/r/y
xcopy C:\NTDETECT.COM A:\ /h/r/y
xcopy C:\bootfont.bin A:\ /h/r/y
xcopy C:\boot.ini A:\ /h/r/y
attrib -s -h -r A:\boot.ini

※ boot.iniは上記のサンプルの方がオススメ

サービスパックから取り出す場合は?

ntldr,ntdetect.comWindows XP Service Pack 3 のアップデートプログラムを展開して取り出すことも可能。bootfont.binはありませんが(※セットアップ起動ディスクの1枚目に入ってます)選択画面が英語になるだけで使用はできます。

  • (コマンド プロンプトから)D:\tmp にすべて展開する例(※/xオプション)
WindowsXP-KB936929-SP3-x86-JPN.exe /x:D:\tmp

7-Zip をインストールしておく方がいいかも。7-Zip で開けば必要なファイルのみ抽出できます。

FreeDOSのファイル
  • command.com
  • edit.exe
  • himem.exe
  • kernel.sys
  • keyb.exe
  • keyboard.sys
  • keybrd2.sys
  • more.exe

FDに空きがあるなら、fdisk.exe, xcopy.exe sys.com なんかも。

戻る | ページ先頭 U

スクリーンショット 8

※ 画像の内容が古いです。menu.lst の内容と違いがあります。すみません。

【注意】【私的】menu.lst使用時のキーマップ
【私的】menu.lst のキーマップ
\ バックスラッシュ 半角
| バーチカル・バー Shift-半角
_ アンダースコア Shift-0

※HD上のファイルが読み込まれた場合は、cキーでコマンドモードから configfile (fd0)/menu.lst と入力。

「私的」なのでごちゃごちゃすぎだったりします。

GRUBメニュー画面1

戻る | ページ先頭 U

GRUBメニュー画面2

戻る | ページ先頭 U

GRUBメニュー画面3

戻る | ページ先頭 U

load FD NTLDR (Windows XP)

Windows XP/2000 緊急起動ディスクとして。

FD内の ntldr をロードして Windows XP/2000 を起動。boot.ini はFD内のもの。

Windows ntldr ブート画面1

F8キー押しで「拡張オプションメニュー」表示。「セーフモードとコマンドプロンプト」からタスクバーなどを出すには“explorer”を入力。

Windows ntldr ブート画面1

戻る | ページ先頭 U

load FD FreeDOS

FD内のファイル (kernel.sys) から FreeDOS 起動。

FreeDOS起動画面

戻る | ページ先頭 U

PLoP Boot Manager

PLoP Boot Manager 起動画面

戻る | ページ先頭 U

ネットワークブート

戻る | ページ先頭 U

find and load NTLDR of Windows NT/2K/XP

HD上の ntldr を検索してロード。boot.ini はHD上のもの。

戻る | ページ先頭 U

find and load CMLDR of Windows NT/2K/XP

HD上にインストールされた回復コンソールの起動。

戻る | ページ先頭 U

などなど...

戻る | ページ先頭 U

設定ファイル 9

menu.lst

こんなかんじで

FDにコピーする際は、menu.lst にリネームするべし

boot.ini

10行しか書けないようなのでこんなかんじでいいかな。

[boot loader]
timeout=100
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="XP SP3 from Partition 1" /fastdetect /NoExecute=OptIn
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="XP SP3 from Partition 2" /fastdetect /NoExecute=OptIn
multi(0)disk(0)rdisk(0)partition(3)\WINDOWS="XP SP3 from Partition 3" /fastdetect /NoExecute=OptIn
multi(0)disk(0)rdisk(1)partition(1)\WINDOWS="XP SP3 from disk2 Partition 1" /fastdetect /NoExecute=OptIn
multi(0)disk(0)rdisk(0)partition(1)\WINNT="2000 pro from Partition 1" /fastdetect
multi(0)disk(0)rdisk(0)partition(2)\WINNT="2000 pro from Partition 2" /fastdetect
multi(0)disk(0)rdisk(0)partition(3)\WINNT="2000 pro from Partition 3" /fastdetect
multi(0)disk(0)rdisk(1)partition(1)\WINNT="2000 pro from disk2 Partition 1" /fastdetect
FreeDOS

こんなかんじでいいかな。

menucolor=7,0
menudefault=0,100
menu
menu FreeDOS
menu
menu 0 - Clean boot
menu 1 - load HYMEM.EXE
menu

0?shell=command.com command.com /P
1?DEVICE=A:\HIMEM.EXE
1?DOSDATA=UMB
1?DOS=HIGH,UMB
1?FILES=20
1?BUFFERS=20
1?LASTDRIVE=Z
@ECHO OFF
SET PATH=A:\
A:\KEYB JP

戻る | ページ先頭 U

HDにコピーしたLinux LiveCDのブート

タイトルそのまんまですが、このGRUB for DOSはNTFSも読めるので使える場面があるかもしれないということで。

GRUBメニュー画面4

見本(?)ファイル

以下はFDに grub ディレクトリを作成、コピーして使用

※ 私が試した限りでは、NTFS上のINSERT+ 1.2.18 は駄目(※所謂「シェルに落ちる」)でした。他はNTFS上のファイルから起動できましたが、FAT32, ext3 の方が確実かもしれません。

※ BG-Rescue Linux 0.9.1 ならHDからではなく、+FD2枚で起動できます。

CD内のファイルをパーティション直下ではなくサブディレクトリに保存する場合は下記のディレクトリ名にしておけばメニューから選択できます。

戻る | ページ先頭 U

参考リンク

GRUB for DOS
FreeDOS
ネットワークブート
PLoP Boot Manager
Windows PE (2.0)
Linux LiveCD

戻る | ページ先頭 U

Written by yassy