uso

雑記いろいろ
★書いてある内容に保証は一切ありません。
 ご自身で判断をしてください。

[server] ブートローダとMBR

2010-08-21 17:45:45 | work
■ ブートローダとMBRについて

  キックスタートの説明を書いてて、引っかかるので、その関係?を明らかにする、方がいいはず。
  そもそも、MBRをキックスタートで消去する方法について調べていたのだが、
  なぜかこの辺を周到に調べている。。。
  
  参考:http://www.lpi.or.jp/column/linux/linux5.shtml(LPI-JAPAN)

■ ブートローダとは

   e-wordでは「コンピュータの起動直後に動作し、OSをディスクから読み込んで起動するプログラム」らしい。
   Linuxには「LILO」「GRUB」、WindowsNTには「OS Loder」「Windows Boot Manager」が有名。

■ MBRとは
   
   MBR(Master Boot Record)のこと。
   つまり、HDDの先頭セクタのこと、らしい。
   
   MBRはHDDに1つしか存在しない。

   
■ PCの起動

   調べていくと、この辺から語らないとだめらしいので、順を追っていくということで・・・
   
   1. 電源投入
   2. BIOSによるデバイス初期化
   3. ブートデバイスの決定
   4. ブートストラップローダのロード
   5. ブートローダの実行
   6. OSの起動
  
   3でブートデバイスが決まると、BIOSはブートドライブの先頭セクタ(MBR)のロードを行う。
   MBRをメモリ上にロードし、MBR領域にあるプログラム(一般的にブートストラップローダ)に制御を移す。

   ブートストラップローダは、実行の中で、起動フラグのある
   パーティションテーブル(複数のパーティションに関する情報が保存されているMBR内の1つの領域)を探す。
   
   起動フラグのあるパーティションにブートストラップローダから制御が移行する。
   そのときに、ブートストラップローダは、各基本パーティションの先頭セクタ(PBR)のプログラム(IPL)を呼び出す。
   IPLから呼び出されたブートローダが後続のOSのファイルを読み込んでいき、最終的にOSが起動していく。
   
   →とりあえず、入れ子式にプログラムが呼び出され、最終的にOSが起動する、みたい。

■ マスタブートレコードの消去
   
   直訳 : MBRの消去
   
   これは、微妙。
   MBR = HDDの先頭セクタ
   
   ① HDDのセクタを消去する、という意味合いなら、HDDフォーマット・・か?
   ② MBRにある、ブートローダと呼ばれるプログラムを消去、なら(多分)プログラムを消すだけ。

   多分②なんだろうなぁ・・・と思いつつも、???


■ zerombr

   キックスタートのコマンド。
   いろいろなサイトを見ていると、これが「マスタブーとレコードの消去」に該当しているみたい。
   
   ただ、RedHatサイトの説明には、MBRの消去とか、ブートローダとかが書いていない。
   
   「ディスク上に発見された無効なパーティションテーブルは初期化されます。
    これは無効なパーティション テーブルを持つディスクの全ての内容を破壊します。」

   と思っていろいろと調べてきたが、見落としに気づく。
   
   パーティションテーブル = 複数のパーティションに関する情報が保存されているMBR内の1つの領域
   
   これか?

   その他のサイトのzerombrの説明。
   
   ●http://www.turbolinux.com/products/server/11s/user_guide/kscfg.html
   「zerombr では、MBR にある不正なパーティションテーブルを初期化します。
   この場合、不正なパーティション情報とともに、ディスクにある全てのパーティション情報は破棄されます。」
   
   ●http://www.jp.redhat.com/manual/Doc72/RH-DOCS/rhl-cg-ja-7.2/s1-kickstart2-options.html
   「zerombrの引数にyesを指定すると、ディスク上にある不正なパーティションテーブルはすべて初期化されます。
    その場合、不正なパーティションテーブルがあるディスクの内容はすべて破棄されます。」
   
   ●http://www.linux.or.jp/JF/JFdocs/KickStart-HOWTO.txt
   「MBR(Master Boot Record) を消去します.
    既存のオペレーティングシステムのブートローダをディスクから消去します.」
   
   これはバージョン6.2の原文
   ●http://www.redhat.com/docs/manuals/linux/RHL-6.2-Manual/ref-guide/s1-kickstart2-commands.html
   zerombr -- Partition table initialization
   「If "zerombr" is specified, and "yes" is its sole argument,
    any invalid partition tables found on disks are initialized.
    This will destroy all of the contents of disks with invalid partition tables.
    This command should be used as:
    zerombr yes
    No other format is effective. 」
   
   直訳(できる範囲で)
      
   any invalid partition tables found on disks are initialized.
   複数のinvalid(無効、不正など)なパーティションテーブルがディスクにあれば、初期化される。
   
   This will destroy all of the contents of disks with invalid partition tables.
   無効なパーティションテーブルの内容をすべて破壊(削除)するでしょう。
   
   No other format is effective
   他のどんな形式も有効ではありません
   
   
   うん、よくわからん。
   
   ごちゃごちゃ書いたけど、言える事は、
   zerombrコマンドは、
   MBRの中にある、パーティションテーブルと呼ばれるデータ領域の値が無効だったら、それを初期化する。
   
■ MBRの構造

   http://park12.wakwak.com/~eslab/pcmemo/hdisk/hdisk4.html
   MBRの構成はいろいろあるが、一例として上記サイトを参考にした(新しいMBRに代わるものもあるらしい!)。
   要は写しです、すみません。

   MBRは、HDDの先頭に設けられた特別なセクタ。
   MBRには、Boot Strap Loaderとパーティションテーブルがある。
   
   位置    適用              サイズ(バイト)
   0x0000  Boot Strap Loader       446
   0x01BE  パーティションテーブル1   16
   0x01CE  パーティションテーブル2   16
   0x01DE  パーティションテーブル3   16
   0x01EE  パーティションテーブル4   16
   0x01FE  boot signature          2
   
   ●Boot Strap Loader : BIOSから起動される最初のプログラム
                   パーティションテーブルを参照し、起動可能なパーティションの先頭セクタを
                   メモリ上にロードし、そこに書かれているIPLに制御を渡す

   ●boot signature   : MBRが正当であることの署名(0x55AA)が書かれている
                  この位置に値がないと、MBRは無効のものとして扱われ、BIOSによる起動ができない

■ パーティションテーブルの構造
   
   位置     適用                サイズ(バイト)
   0x00     起動(アクティブ)フラグ       1
   0x01     パーティション開始位置      3
   0x00     パーティションタイプ        1
   0x00     パーティション終了位置      3
   0x00     開始セクタ番号           4
   0x00     パーティションサイズ       4

   細かく意味があるが、必要なところだけ・・・
   
   ●起動(アクティブ)フラグ : 当該パーティションからの起動の可(0x00)否(0x80)。
   
   ●パーティション開始位置 : パーティションの開始位置を指定している(CHS方式だが、どうも使われていないとか・・)
   
   ●パーティション終了位置 : パーティションの終了位置。開始位置と同じような感じ。
   
   ●開始セクタ番号      : パーティションの開始位置をLBA方式でセクタ番号指定する
    
        LBA 方式 : ハードディスクの先頭セクタ (Cylinder 0, Head 0, Sector 1) を "0" とした場合の通し番号

■ 無効なパーティションとは?

   憶測。
   起動(アクティブ)フラグが0x00の値のもの?

   憶測
   パーティションタイプが起動しようとしているOSに該当しないもの?
    (0x00~0x0FまでにUNIXやらLinuxたら、NTFSやら何やらとある)

■ パーティションテーブルを消去するとどうなる?

   全部消去すると起動しなくなる(OS読み込めないから)
   無効な(不要)パーティションテーブルなら、MBRが少しきれいになる(最大4つの限りある資源が大事にできる)
   
   微妙。。

   


最新の画像もっと見る