2008年12月27日土曜日

Linuxを外付けUSB HDDにインストールし、かつ、外付けUSB HDDから直接ブート可能にする方法

 HDDの交換により、手元の外付けUSB HDDが余ったので、Linuxを導入することにした。早速、Fedora10のx86_64版のDVDを焼いて、インストール開始。

 しかし、Fedoraのインストーラでは、外付けUSB HDDへのインストール自体は可能なものの、ブートローダーを外付けUSB HDDに書き込むことができない。だから、外付けUSB HDD単体でLinuxをブートさせることができない。困った。

 ということで、外付けUSB HDDのMBR(Master Boot Record)にブートローダ(もちろんGRUBを使用する)を書き込み、外付けUSB HDDだけでLinuxを起動可能にする方法を調べてみた。

 大まかな手順
 (1)外付けUSB HDDのMBRにGRUBを書き込む。
 (2)GRUBのコマンドラインからOSを起動してみる。
 (3)GRUBの設定を適切に行い、Fedoraを自動起動させる。


(1)外付けUSB HDDのMBRにGRUBを書き込む。

  • まず、FedoraのDVDでブートし、レスキューモードに入る.(初期画面でRを押下する)
  • 言語は日本語(Japanese)を選択、この際英語しか使えない旨表示されるが続行。
  • キーボードはjp106。
  • ネットワークには接続しなくてもよい.(どちらでも可)
  • Continueを選択して、既存のLinuxに読み書きできるようにする。
  • sh-3.2# とか表示されて、シェルが起動すればOK。
  • 以下のコマンドを順に実行する。
# chroot /mnt/sysimage
# grub-install /dev/sde (/dev/sdeの部分は、環境により異なるので注意。私の環境では内臓HDDが4本あるので、外付けUSB HDDは5本目のsdeになっている。)
  • これで、外付けUSB HDDのMBRにGRUBがインストールされました。

(2)GRUBのコマンドラインからOSを起動してみる。

  • PCのBIOS設定をいじって、外付けUSB HDDから起動できるようにする。
  • 起動すると、GRUBのコマンドライン画面になる。
  • 以下のコマンドを実行する。(キーボードの配列が違っているので、少々注意。あと、デバイス名やカーネルのパスは適宜変更してください。)
> root (hd0,0)
> kernel /boot/vmlinuz-2.6.27.9-159.fc10.x86_64 root=/dev/sde1 ro
> initrd /boot/initrd-2.6.27.9-159.fc10.x86_64.img
> boot
  • これで、OSが起動し、ログイン画面が表示されればOK。

(3)GRUBの設定を適切に行い、Fedoraを自動起動させる。
  • ここからはOSが使えるので、普通にviあたりでファイルを編集してください。
  • /boot/grub/grub.confを作成する。内容は以下のような感じ。(もちろん、こちらもデバイス名やカーネルのパスは適宜変更してください。)
timeout=10
default=0
splashimage=(hd0,0)/boot/grub/splash.xpm.gz

title Fedora 10
root (hd0,0)
kernel /boot/vmlinuz-2.6.27.9-159.fc10.x86_64 root=/dev/sde1 ro
initrd /boot/initrd-2.6.27.9-159.fc10.x86_64.img

  • 上記ファイルに対し、/etc/grub.confからシンボリックリンクを張っておく。
# ln -s /boot/grub/grub.conf /etc/grub.conf
  • マシンをリブートし、スプラッシュ画面に「Fedora 10」と表示されていればOK。選択して、OSが正常起動することを確認。

 これで、内臓HDDに無理やりLinuxをぶちこまなくても、使いたいときにだけ電源をポチッと入れれば使える、夢のようなLinux環境の出来上がり。

 しかし、やっぱり64bit版は速いね。Windows Vistaから本気で移行したくなってきた。

4 件のコメント:

0463 さんのコメント...

参考にさせて頂きました。
fedora10-i386版です。USB-HDD挿して電源入れればfedora10、USB-HDD挿さなければXPと言う風にしたかったんですが、結局fedora10使いたいときだけ、USB挿して電源+F2でHDDの優先順位を変えて起動にしました。
ゆくゆくは、ひろサンと同じように楽ちんな環境にしたいです。PHPとかで何か作成するとかで、しょっちゅうlinuxに切り替えるような状態になったら、導入しようかと。
ともあれ、最悪、GRUBを書き換えるか、内蔵HDDのMBRを消せばいいんじゃん。と知ったんで、インストールに踏み切るきっかけをもらえました。ありがとうございます。

ひろ さんのコメント...

コメントありがとうございます。

実は、この方式で構築した後、Fedoraの環境はVirtual PCに移行してしまいました。
USB HDDは他の用途に転用しました・・・

0463 さんのコメント...

Virtual化うらやましいです。ともあれ、このBLOGは私の中でfaverですので、まめにチェックさせていただきます。うちのデスクPCは2004年モデルなんで、P4-HTの2コア。あの頃のは、結構いい値段だったので、悔しいから、メモリだけ1.5GBにして現役で使ってます。そんなわけで、Virtualちょっときついです・・・。会社のサーバはxeonQuadなのになぜかfedora7なんです。今度10にアップデートの予定です。今後とも、いろいろと参考にさせていただきたいと思います。末永く、ブログを続けていただけると、いいなと思います。

ひろ さんのコメント...

コメントありがとうございます。
当方のPC増強は、一段落といったところです。
今後もよろしくお願いいたします。