デベロッパー:Linux How-To | 2005年10月07日 01:02 更新 |
GRUBによる起動 |
ここでのList 1のGRUBメニュー項目からは,起動時にFig.1のような表示となる。
この際にメニュー項目を選択し「Enter」キーを押せば,そのメニュー項目のkernel項目部分に設定したブートイメージが読み込まれ,希望するOSが起動する。
また,「Enter」キーを押さなくても,前述したようにmenu.lstファイルのtimeoutr項目に設定した秒数だけ操作が無い場合,自動的にdefault項目で設定されたメニューが実行される。
メニュー編集モードメニュー項目を選択し「Enter」キーを押す代りに「E」キーを押すと,Fig.2のようにメニュー編集モードとなる。
メニュー編集モードでは,フルスクリーン編集ではなく1行ごとの編集となる。
|
メニュー内容を編集したい場合には,カーソルキーで反転行を編集したい行に移動させ,「E」キーを押す。するとFig.3のように編集可能な画面になる。ちなみに行を削除したい場合には「D」キーを押せばよい。
Fig.3にて編集した場合「Enter」キーを押すと変更が反映される。「ESC」キーを押すと編集取り消しが可能だ。その後,「B」キーを押せば選択されているメニュー項目でカーネルがブートされる。
このようにGRUBではメニューの編集が容易なのも特徴だ。万が一の設定ミスでも,対処がしやすいのである。
|
GRUBコマンドプロンプト
メニュー項目部分で「Enter」キーの代りに「C」キーを押すと,Fig.4のようにコマンドプロンプトが表示される。ここでは直接にコマンド入力ができるのだ。
GRUB上のコマンドプロンプトでは,任意のコマンドを使うことができる。例えば,helpと入力すると利用できるコマンドの簡単なヘルプが表示される。より詳細な使い方は,GRUBのオンラインマニュアルを参照するとよいだろう。
例えば,ここで現在のメニュー設定がハードディスクの1台目からの起動するようになっているが,今回の起動に限ってハードディスクの2台目(hd1)から起動したいとする。そのような場合には,次のように入力すればよい(下記は例であり,指定すべきカーネルのイメージファイル名の場所などは環境によって異なる)。
grub> root (hd1,0) Filesystem type is extfs, parttition type 0x83 grub> kernel /vmlinuz-2.4.7-10 ro root=/dev/sdb2 [Linux-bzImage, setup=0x1400, size=0xc2714] grun> initrd /initrd-2.4.7-10.img [Linux-initrd @ 0x7f85000, 0x6aefe bytes] |
上記の後,最後に次のようにbootと入力すると,その設定で起動するのだ。
grub> boot |
このようにしてコマンドプロンプトを利用すれば,任意のハードディスクにある任意のブートイメージファイルから起動することができる。このため,新しいカーネルをテスト目的で入れている場合でもとても便利だ。
パスワードを設定するコマンドプロンプトを実行できるということは,ほかの何者かがブートした際,カーネルイメージを入れ替えることができてしまうことも意味する。
今回は詳細を説明しないが,GRUBではファイルの内容を表示するcatコマンドが用意されている。このコマンドを使うと,任意のファイルを見ることができるのだ。そのため,例えば/etc/passwd(/etc/shadow)ファイルなどをcatコマンドで見られてしまうと,セキュリティ上危険だ。
そこでGRUBにおける操作を制限できるようにするため,GRUBにはパスワードを設定しておくのがよいだろう。
GRUBでパスワードを設定するには,インストール時に行うか,menu.lstファイルの先頭に次のようなpassword項目を記述すればよい。
password 設定したいパスワード |
すると,GRUBの起動時に「E」キーによる設定変更や「C」キーによるGRUBコマンドラインの起動ができなくなる。「E」キーや「C」キーを押して編集やGRUBコマンドの起動をしたいのであれば,「P」キーを押してパスワードを入力しなければならない(Fig.5)。そのため,不正なユーザーが起動時のオプションを書き換えたり,ファイルの中身を参照するといった操作ができなくなる。
password項目を先頭に書くだけであると,「P」キーでパスワードを入力するまで「E」や「C」キーが利かなくなるだけであって通常の起動は可能だ。もし通常起動すらも許可したくないのであれば,起動を許したくない項目内にlock項目を記述しておけばよい。
また,GRUBではpassword項目に-md5オプションを伴うことでパスワードをそのまま記述するのではなく,MD5で暗号化して記述することもできる。より強固なセキュリティ設定については,GRUBのオンラインマニュアルを参照してほしい。
GRUB起動フロッピーを作る |
さて,ここからGRUBのカスタマイズ方法などを説明しよう。ただし,GRUBはブートローダーという性質上,万一設定を間違えると最悪の場合にはLinuxすら起動しなくなってしまう恐れがある。Windowsとのマルチブート環境であれば,なおさら注意が必要だ。
そこで,カスタマイズの方法を説明する前にGRUBによる起動フロッピーを作っておこう。起動フロッピーを作成しておけば,万が一ハードディスク上のGRUBで編集が失敗しても,起動フロッピーから起動して修復することができる。
GRUBの起動フロッピーを作成するには幾つかの方法がある。中でも,grub-installコマンドを使うのがもっとも簡単だ。
まずは次のようにしてフロッピーディスクをマウントし,ext3ファイルシステムでフォーマットしよう。ここでは,フロッピーディスクを/mnt/floppyにマウントしている。
# /sbin/mke2fs /dev/fd0 # mount -t ext2 /dev/fd0 /mnt/floppy |
次に,grub-installコマンドでGRUBをインストールする。
# /sbin/grub-install --root-directory=/mnt/floppy '(fd0)' |
フロッピーディスクの中にはbootディレクトリ,さらにその下にはgrubディレクトリが作成されてGRUBに関係するファイル一式がコピーされる。最後にアンマウントすれば,起動フロッピーディスクの作成が完了だ。
# umount /mnt/floppy |
ちなみに,この状態の起動フロッピーディスクはメニュー項目のファイルmenu.lstファイルがコピーされていない。このため,起動時の画面にもメニュー項目は表示されず,Fig.6のように直接GRUBのコマンドラインが実行される。ここでは必要なコマンドを入力し,手動で修復するなりOSを起動するといった操作になるのだ。メニュー項目を追加する方法は後述しよう。
3/5 |