トラブルシューティング


  • GRUB(MBR)が破損してカーネル読み込みができない

 「MBR」(マスターブートレコード)とは、PCが起動した際にハードディスク上に記録されている希望するOSを起動させるためのプログラム。この領域が破損してしまうと、OSが起動できなくなってしまう。そのため、何らかの対策を行っておくのがよいが、その1つにはあらかじめ復旧可能な起動用フロッピーを作成しておく方法が挙げられる。

 次のステップで復旧させるまでの手順を紹介しよう。

1. GRUB用の起動フロッピーを作る

# dd if=/usr/share/grub/i386-redhat/stage1 of=/dev/fd0 count=1
読み込んだブロック数は 1+0
書き込んだブロック数は 1+0
# dd if=/usr/share/grub/i386-redhat/stage2 of=/dev/fd0 seek=1
読み込んだブロック数は 234+1
書き込んだブロック数は 234+1

 なお、GRUBがソースコンパイル状態、あるいはTurbolinux8の環境では、上記の「i386-redhat」ディレクトリ名が「i386-pc/」になっていることに注意したい。

 ここで書き込まれたイメージファイルは、それぞれstage1がMBR、stage2がGRUBのバイナリになる。

・Red Hat Linuxの場合
# ls -l /usr/share/grub/i386-redhat/stage*
-rw-r--r-- 1 root root    512 9月 6 2001 /usr/share/grub/i386-redhat/stage1
-rw-r--r-- 1 root root   120000 9月 6 2001 /usr/share/grub/i386-redhat/stage2

・Turbolinux8の場合
# ls -l /usr/share/grub/i386-pc/stage*
-rw-r--r-- 1 root root    512 4月 26日 19:57 /usr/share/grub/i386-pc/stage1
-rw-r--r-- 1 root root   105344 4月 26日 19:57 /usr/share/grub/i386-pc/stage2

 また、stage2ファイルが/boot/grub/ディレクトリ下にあるかどうかも確認しておこう。万が一見つからない場合には、次のようにしてコピーしておけばよい。

# ls /boot/grub

# cp /usr/share/grub/i386-redhat/stage2 /boot/grub

2. 作成した起動用フロッピーで再起動(# reboot)

 フロッピーで起動されたGRUBのコマンドラインでは補完機能が効く。「grub>」のプロンプトの表示後は、次のように入力していこう。例えば「(hd0,」まで入力して「Tab」キーを押すと、ファイルシステムの一覧が表示され、「kernel /」の入力後に「Tab」を押せば候補が表示される。

 なお、ここでは次のような環境を想定している例だ。

ルートパーティション:/dev/hda1
カーネルイメージ:/boot/vmlinuz-2.4.18-10k
RAMイメージ:/boot/initrd-2.4.18.img

grub> root (hd0,0)
grub> kernel /boot/vmlinuz-2.4.18 root=/dev/hda1 ro
grub> initrd /boot/initrd-2.4.18.img  ←SCSIのHDDの場合は、initdを読み込む必要がある。
grub> boot

 GRUB上では日本語キーボードが認識されていない。このため次の記号については、対応を参考にして入力すればよいだろう。

入力文字()=GRUB上の入力「Shift」+「9」「Shift」+「0」「^」

3. HDD(MBR)へのGRUBインストール

 フロッピーでの起動が確認できれば、次にHDDのマスターブートレコードへGRUBを書き込む作業だ。GRUB上で直接書き込むか、Linux起動後のコマンドラインで実行するかの2通りがある。 ・Linuxコマンドラインでの例

# which grub-install
/usr/sbin/grub-install

# /usr/sbin/grub-install /dev/hda
Installation finished. No error reported.
This is the contents of the device map /boot/grub/device.map.
Check if this is correct or not. If any of the lines is incorrect,
fix it and re-run the script `grub-install'.

(hd0) /dev/hda
(hd1) /dev/hdb

・GRUBコマンドラインでの例

grub> install=(fd0)+1 (hd0) (hd0,1)/boot/grub/stage2 0x8000 p

[木田佳克,ITmedia]




キャリアアップ



エンタープライズ・ピックアップ

news004.jpg 世界で勝つ 強い日本企業のつくり方:利用契約の検討――グローバルクラウドで失敗しないために(前編)
2010年以降、クラウドサービスの利用がさらに加速する。サービスを利用する企業はプロバイダーのデータセンターに預けた自社情報を保護するために、法的な要素を理解しておかなければならない。企業が注意を払うべき法的な検討事項を整理する。

news001.jpg IT投資の新方程式:「Twitter使ってます」――現役MS社員が“社員力”を語る(前編)
マイクロソフトが掲げるプロモーションメッセージ「社員にチカラを。ITで企業力を。(以下、BIEB)」からは、ITで社員の生産性を向上することが業績の拡大につながる、といったニュアンスを感じる。そこで気になるのが「じゃあ、マイクロソフトの社員自身はどうなのよ?」ということ。3人の現役MS社員により実態が明らかになる……?

news010.jpg 産業構造を変えるか:「住宅クラウド」の衝撃
住宅都市工学研究所が進める「住宅クラウド」は、クラウドが企業のIT領域にとどまらず、ビジネスのやり方自体を変える可能性を示している。

news010.jpg オルタナティブな生き方 栗原進さん:ネットでリアルを楽しくしたい
SE出身の企業広報マンでありながら、趣味は落語で憧れの人はインディ・ジョーンズとアナログ全開の栗原さんに、ブログを書く理由やネットからはじまるコミュニケーションについて伺った。

news001.jpg 最強最速アルゴリズマー養成講座:トップクラスだけが知る「このアルゴリズムがすごい」――「探索」基礎最速マスター
プログラミングにおける重要な概念である「探索」を最速でマスターするために、今回は少し応用となる探索手法などを紹介しながら、その実践力を育成します。問題をグラフとして表現し、効率よく探索する方法をぜひ日常に生かしてみましょう。