Hatena::Grouplinux2

Going My Linux Way このページをアンテナに追加 RSSフィード

2012年01月27日(金)

LinuxのブートHack

23:07 | LinuxのブートHack - Going My Linux Way を含むブックマーク はてなブックマーク - LinuxのブートHack - Going My Linux Way LinuxのブートHack - Going My Linux Way のブックマークコメント

LINUXデスクトップHACKS」の第一章「Linux のブート」を読みました。

特筆するところのみメモします。

本が 2005 年出版なので古い内容があるかもしれません。

また、内容の実機検証はしてません。あくまで本の内容に関するメモです。

----

ブートローダ

Linuxブートローダーには LILOGRUB があります。

他に、Mac で使用される yaboot、フロッピーインストールできる Smart Boot Manager があります。

1種類のカーネルに対応する一連のエントリは「スタンザ*1」と呼ばれます。

マスターブートレコード(MBR)

/dev/hda をブートデバイスとして Linuxインストールされている場合、MBR の保存は以下のようにします。

$ sudo dd if=/dev/hda of=出力ファイル bs=512 count=1

IBM-PC 互換機での MBR の構成は以下のようになっています。

位置サイズ内容
0 .. 465466バイトブートコード
466 .. 50964(=16x4)バイトパーティションテーブル
510 .. 5112バイトマジックナンバー(0xaa55)

なので、パーティションテーブルは保存しない場合は以下のようにします。

$ sudo dd if=/dev/hda of=出力ファイル bs=466 count=1

また、DOS における fdisk /mbr と同じ働きをする install-mbr というツールがあります。(Ubuntu では mbr パッケージ)

使用するには以下のようにするそうです。(!!危険!! 実際に行うと MBR初期化されます)

$ sudo instal-mbr /dev/hda

ブートマネージャバイパス

これはブートマネージャを破損してしまった場合などの対応手段です。

  1. インストールCD-ROM から起動する
  2. インストールプログラムパーティション設定に進む前に、Ctrl + Alt + F2 *2などで別の仮想端末にジャンプする
  3. /boot のあるデバイスをマウントする
  4. /root のあるデバイスをマウントする
  5. マウントした /root に対して chroot コマンドを使用する
  6. ブートマネージャの修復(構成ファイルの修正やカーネルインストールなど)
(/boot のマウント) 
# mkdir /bootmnt
# mount /dev/discs/disc0/part3 /bootmnt (ディスク番号、パーティション番号は環境に合わせる)
(/root のマウント) 
# mkdir /rootmnt
# mount /dev/discs/disc0/part4 /rootmnt (ディスク番号、パーティション番号は環境に合わせる)
(マウントした /root に対して chroot)
# chroot /rootmnt

----

この本では GRUB が紹介されていますが、Ubuntu Linux 11.04 では既に Grub2 に移行されています。

*1:stanza、詩の連

*2Mac の場合は Apple Option Key + Fn + Fnキー

トラックバック - http://linux2.g.hatena.ne.jp/lnznt/20120127