■ ブートローダと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つの限りある資源が大事にできる)
微妙。。
キックスタートの説明を書いてて、引っかかるので、その関係?を明らかにする、方がいいはず。
そもそも、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つの限りある資源が大事にできる)
微妙。。