GRUBを使えば、カスタマイズされたLinuxディストリビューションのUSBドライブからの直接ブート、組み込みデバイスの自動ブート、使用するディストリビューションやOSを選択できるマシンの構築といったことが可能だ。
かつてGRUBは、汎用のブート用フロッピーディスクの作成によく使われていた。GRUBを有効化したフロッピーディスクを使うと、システム上で GRUBが認識すればどんなOSでも直接ブートすることが可能であった。この点は、マスターブートレコード(MBR)が壊れたパーティーションの修復やシステムのリカバリに活用された。
時代は変わり、最近のコンピュータの多くはFDDを搭載しなくなった。その代わり、USBドライブからブートを行うことができる。必然的に、GRUBはUSBドライブに適応していくことになる。GRUBを使ってUSBドライブからブートを行うには、パーティーションが適切に設定され、サポートされたファイルシステム(BSD FFS、DOS FAT 16およびFAT 32、Minix fs、Linux ext2fs、ReiserFS、JFS、XFS、VSTa fs)を持つUSBドライブをまず用意する。後は、rootまたはsudo権限のあるユーザーでログインし、以下の手順を実行すればよい。
# mkdir /mnt/usb
# mount /dev/sda1 /mnt/usb
次に、ブート用のステージファイルをUSBドライブにコピーする。ステージファイルは、GRUBを構成する実行ファイルである。ファイルシステムに合ったステージファイルをコピーする必要がある。GNOMEでは、USBドライブのアイコンを右クリックして「Properties」を選択すると、ファイルシステムの情報が「Volume」タブに表示される。GNOMEを実行していない環境でも、fdiskを使うとファイルシステムの種類が分かる。
コピーすべきファイルは、stage1、stage2、そして使用しているファイルシステム用のステージファイルの3つである(以下の例では、ext2ファイルシステムに対応したe2fsステージファイルが使われている)。ステージファイルのコピーが終わったら、MBRの作成ができるようにUSBドライブをアンマウントする必要がある。
mkdir /mnt/usb/grub
cp /boot/grub/stage* /boot/grub/e2fs_stage1_5 /mnt/usb/grub/
umount /mnt/usb
最後に、USBドライブにMBRをインストールする。MBRは、ブート処理専用としてデバイス上に確保された512バイトの非表示領域である。MBRのインストールには、GRUB関連の処理を行うシンプルなコマンドシェル、GRUBシェルを使用する。
grub
grub> device (hd0) /dev/sda
grub> root (hd0,0)
grub> setup (hd0)
grub> quit
以上でGRUBのインストールが完了したので、USBドライブからのブートが可能である。ブートを実行すると、マシン起動時に大量のディレクトリ情報がGRUBシェルに表示されるはずである。コマンドシェルでどんなことができるかについては、GRUBコマンドラインのマニュアルを参照してもらいたい。
昔のようにGRUBでフロッピーディスクを使いたいという人は、フロッピーディスクをFATファイルシステムでフォーマットし、前記の/dev/sda1を/dev/fd0に、hd0をfd0に置き換えて実行するとよい。
Chad Filesはソフトウェア開発者兼ライター。10年以上のソフトウェアアプリケーション開発経験があり、多数のオープンソースプロジェクトに貢献。最近はEmbedded GentooのメディアジュークボックスデバイスのブートにGRUBを利用している。
Copyright © 2010 OSDN Corporation, All Rights Reserved.