忘れないうちに!の自分用メモ。Linux初心者なので間違いがあるかもしれません。あしからず(え。
menu.lst
を作成せず、フロッピー起動から手動で指定してOSをロードさせる方法についてです。GRUBフロッピーの作成及びmenu.lst
を作成して選択起動する方法については下記をどうぞ
NOBUSAN'S SQUARE さんの下記ページの解説がすばらしく深くてわかりやすいと思います(ってか私のページは無駄かも...orz)。参考にさせて頂きました。
キーボードの配置が通常時と違うので注意。( ) は1つずつ右にずれてます。
- = は へ
- + は Shift + へ
パーティションの先頭(PBR)にブートローダを置いてる場合はMBM(Multiple Boot Manager)の方が簡単だと思います。でもLILOなどをマスターブートレコード(MBR)にのみ置いてる場合はMBMでは起動できないようです。つまり、GRUBは自身がブートローダ(カーネルロード?)であるが、MBMはブート“マネージャ”(チェーンロード?)だからということになるんでしょうか。
最初は難しいと感じましたが、Tabキーでの補完機能を使えばなんてことないかなと。間違ってもやり直せるし、検索やファイルの内容表示も可能なので。
基本的な使い方
GRUB(起動フロッピー)自身をブートローダとして使う場合です。
root
コマンドでカーネルのあるパーティションに移動(大抵は/boot
パーティション)kernel
コマンドでカーネルのファイル名及びLinuxを起動させるルート(“/”)パーティションを指定
※あと、RAMディスクの指定が必要な場合はinitrd
コマンドで指定。
- 最後に、
boot
コマンドで起動
- カーネルのあるパーティションを指定(移動)
-
grub> root (
ここでTabキーを押すと
grub> root ( Possible disk are: fd0 hd0 hd1
と指定(起動)可能な候補が表示されます。但し、通常Linuxで使われるデバイスの表示方法と少し違うので注意
- hd0 = /dev/hda
- hd1 = /dev/hdb
※0から数えます。
hd0 = /dev/hda でいいなら
grub> root (hd0
ここでTabキーを2回押すと指定ドライブのパーティションの一覧が出ます。
grub> root (hd0, Possible partitions are: Partison num: 0, Filesystem type is fat, partiton type 0xb --- <省略> --- Partison num: 7, Filesystem type is ext2fs, partiton type 0x83 Partison num: 8, Filesystem type is ext2fs, partiton type 0x83
/boot
パーティションをルート(“/”)パーティションとは別に作っている場合はルートパーティションの前に置かれていると思うので「7」を指定してみます。間違っててもやりなおせばいいのでまぁ適当ですが...(汗。grub> root (hd0,7)
ここでEnterを押す。
Filesystem type is ext2fs, partiton type 0x83
と表示されます。
あるいは、
find /map
(find /boot/map*1)で表示されるので、それを指定した方が早いかも。grub> find /map (hd0,7) (hd1.0) grub> root (hd0,7)
- カーネルのファイル名、ルート(“/”)パーティションの指定
-
kernel
コマンドでカーネルのファイル名及びLinuxを起動させるルート(“/”)パーティションを指定します。grub> kernel /vmlinuz-
ここでTabキーを押すとファイル名が表示されます。
grub> kernel /vmlinuz- Possible files are: vmlinuz-2.4.31-0vl1.8 vmlinuz-2.4.31-0vl1.12
カーネルをアップグレードしている場合などは複数表示されるので新しい方を指定する。(※適当な所でTabキーを押せば補完してくれます。)
grub> kernel /vmlinuz-2.4.31-0vl1.12
このまま続いてルートパーティションを指定します。
※ここでのパーティションの指定はLinux上の表示と同じです。
適当な推測ですが(汗)、
/boot
パーティションが hd0,7 = hda8 ですから/
パーティションは hda9 かなぁと。grub> kernel /vmlinuz-2.4.31-0vl1.12 root=/dev/hda9 [Linux-bzimage, setup=0x1400, size=0x1608b1]
最低限必要な指定は以上です。このあと
boot
コマンドで起動させます。grub> boot
- オプション
-
grub> kernel /vmlinuz-2.4.31-0vl1.12 ro root=/dev/hda9 vga=0x318
とかできます。
- 初期RAMディスクの指定
-
必要な場合は(どんな時に必須となるのかよくわかってませんが...すみません)
initrd
コマンドで指定します。grub> initrd /initrd
とか入力してTabキー、で表示された候補の中からkernelコマンドで指定したカーネルとバージョン - リリース番号が同じものを指定します。
grub> initrd /initrd-2.4.31-0vl1.12.img [Linux-initrd @ 0x13fc4000, 0x1b5c6 bytes]
chainloader
コマンドでの指定
パーティションの先頭(PBR)にブートローダを置いてる場合(もちろんそれが生きてる場合ですけど)はchainloader
コマンドで指定する方が簡単です。
※Windows も起動できますよん。
chainloader
コマンド-
grub> chainloader (
と入力してTabキーを押すと起動可能なデバイスが表示されます。
grub> chainloader ( Possible disks are: fd0 hd0 hd1 grub> chainloader (
今度はパーティションを表示させます。
grub> chainloader (hd1, Possible partitions are: Partison num: 0, Filesystem type is ext2fs, partiton type 0x83 Partison num: 1, Filesystem type is ext2fs, partiton type 0x83 grub> chainloader (hd1,
grub> chainloader (hd1,1)+1
この後
boot
コマンドを入力するとブートローダ画面が出るはずです。※「+1」の指定はパーティションの先頭、つまりブートセクタのことらしいです(自信ないけど..)。
便利な使い方
何も入力せずにTabキーを押すと使用可能なコマンドの一覧が表示されます。
root
コマンドを使用せず、kernel
コマンドで直接パーティションを指定することも可能です。
grub> kernel (hd0,7)/vmlinuz-2.4.31-0vl1.12 ro root=/dev/hda9 vga=0x318
cat
コマンドでファイルの内容表示ができます。
grub> cat (hd1,1)/etc/fstab
find
コマンドで(絶対パスを指定して)ファイルの検索が可能。こんな風に使えば/boot
パーティションとルートパーティションの確認ができますね。
grub> find /vmlinuz (hd0,7) (hd1,0) grub> find /etc/fstab (hd0,8) (hd1,1)
※注:(hd0,8) = /dev/hda9
(hd1,1) = /dev/hdb2
*1:/boot パーティションを分けていない場合