技術的な詳細
7.3.1 恐怖の 1024 シリンダ制限と BIOS LBA の作用
起動プロセスの最初の部分は、すべて BIOS によって実現されています。 (BIOS とは、コンピュータのためのスタートアップコードを提供する、 システムマザーボードに載っているソフトウェアチップのことです)。 そのため、この最初のプロセスは BIOS インタフェースによって制限を受けます。
このプロセスの間、ハードディスクを読み込むために使用された BIOS インタフェース (INT 13H、Subfunction 2) は、 シリンダ番号へ 10 ビット、ヘッド番号へ 8 ビット、 セクタ番号へ 6 ビット割り当てます。 これがこのインタフェースを使う場合 (例 … ハードディスクの MBR から呼び出されるブートマネージャや、 起動セクタから呼び出される OS ローダーなど) に次のような制限を与えるのです:
さて、容量の大きなハードディスクには多くのシリンダがありますが、 ヘッドは多数ありません。 そのため、大容量のハードディスクにおいては、 シリンダ数が 1024 を越えます。 このことや BIOS インタフェースを考慮すると、 ハードディスクのどこからでも起動できるとは限らないのです。 すべての起動可能なパーティションの起動セクタから呼び出されるブートマネージャや OS ローダーは 1024 シリンダより下のシリンダに存在しなければなりません。 実際に、お使いのハードディスクが典型的なものでヘッドが 16 であれば、 次のようになります:
これが、よく言われる 528MB 制限です。
どのようにネットワークからWindows 2000へ
ここが BIOS LBA (Logical Block Addressing) が入ってくるところです。 BIOS LBA はシリンダを再定義することにより、 BIOS API を呼び出すコードが BIOS インタフェース経由で 1024 シリンダ より上の物理シリンダにアクセスするようにします。 つまり、BIOS を通して見る場合に、実際より少ないシリンダ数、 多いヘッド数として扱われるようにシリンダ数、 ヘッド数を再マップしてくれるのです。 言い替えれば、シリンダ数とヘッド数のバランスを変更することで、 ハードディスクが相対的にヘッドが少なく、 シリンダが多くなるということを利用することにより、 双方の数が上記に述べられている制限 (1024 シリンダ、256 ヘッド) を越えないと言うことになります。
BIOS LBA を用いることで、 ハードディスク容量の制限が仮想的になくなりました (まぁ、8GB まで上がったと言うところでしょうか)。 LBA BIOS を使用している場合は、FreeBSD または 他の OS をどこにでも載せることができ、 1024 のシリンダ制限に引っかかることもありません。
1.6GB Western Digital を再度例として考えてみましょう。 物理的なジオメトリは、次のとおりです:
しかしながら、BIOS LBA は次のように再マッピングを行います:
実際には同じサイズのディスクなのですが、 シリンダとヘッドの計算は BIOS API の範囲内で行われます (偶然にも、私のハードディスクの一つには、 Linux と FreeBSD が物理的なシリンダ 1024 番目より上に載っています。 これらのOS が問題なく起動するのも、BIOS LBA のおかげなのです)。
7.3.2 ブートマネージャとディスクの割り当て
ブートマネージャのインストール時、 他に気をつけねばいけないことは、 ブートマネージャ用として領域を割り当てることです。 1 つ、あるいは複数の OS の再インストールを余儀なくされたくないなら、 一番気にしなくてはいけないトピックです。
(MBR のある) マスターブートセクタ、 パーティション起動セクタ、起動プロセス についての Section 7.2 の説明を読んだ後は、 自分のハードディスクのどこに、 この気のきくブートマネージャが存在するのか気になるところですね。 それはと言いますと、いくつかのブートマネージャは、 パーティションテーブルの隣の、マスターブートセクタ (シリンダ 0、ヘッド 0、セクタ 1) に納まり切る程に小さいのです。 ブートマネージャによってはもう少し容量が必要なものもあり、 その領域は一般には空いているため、 シリンダ 0 ヘッド 0 セクタ 1 にあるマスターブートセクタを 越えたいくつかのセクタにまで自身を拡張しています。
どのようにUSBのバージョンを見つける
ありがたいことに (FreeBSD を含む) OS のいくつかは、 必要ならばマスターブートセクタの直後、 シリンダ 0、ヘッド 0、セクタ 2 からパーティションを 起動することができます。 実際に、先頭に空きのある、あるいは全体が空のディスクで FreeBSD の sysinstall を実行すると、デフォルトではその場所から FreeBSD パーティションが始まります (少なくとも私が行った時はそうでした)。 そして、MBR の後にあるいくつかのセクタを消費するような ブートマネージャをインストールする場合、 最初のパーティションのデータの先頭が上書きされます。 FreeBSD の場合は、ディスクラベルが上書きされ、 FreeBSD が起動できなくなります。
このような問題を避ける簡単な方法としては (また、後で異なるブートマネージャを試す柔軟性を持たすためにも)、 パーティションを切る時に、 ハードディスクの最初のトラックを割り当てないまま まるまる残しておくことです。 つまり、シリンダ 0、ヘッド 0、セクタ 2 からシリンダ 0、 ヘッド 0、セクタ 63 までを空けておき、 パーティションをシリンダ 0、ヘッド 1、セクタ 1 から開始するということです。 更に良いことに、ハードディスクの先頭に DOS パーティションを 作成する際、DOS はデフォルトでこの場所を空けておきます (これがブートマネージャのいくつかはその場所が空きだと 仮定するという理由です)。 というわけで、ディスクの先頭に DOS パーティションを作成することで この問題を避けることができるのです。 私はこのやり方が好みで、自分で 1MB の DOS パーティションを先頭に 作成します。そうすると、パーティションを切り直す時、 DOS のドライブ名をずらすことも必要ないのです。
参考として、次のブートマネージャはコードとデータを 記録する際にマスターブートセクタを使用します:
-
OS-BS 1.35
-
Boot Easy
-
LILO
次のブートマネージャはマスターブートセクタの後にある セクタをいくつか使用します:
7.3.3 マシンが起動しない場合はどうするか?
ブートマネージャをインストールした際に、 MBR が起動しない状態にしてしまうことがあります。 あまりないことですが、既にインストールしたブートマネージャが ある状態で FDISK してしまうと起こることがあります。
ハードディスクに起動可能な DOS パーティションがある場合、 DOS フロッピーから起動します。次を実行します:
オリジナルに戻すには、シンプルな DOS の起動コードを システムに戻します。そうすると、ハードディスクから DOS (DOS に限る) を起動することができます。 もう一つの手としては、起動可能なフロッピーを使って、 ブートマネージャのインストールプログラムを再度実行します。
These are our most popular posts:
NT-ServerHDD(O.S)の丸ごとコピー
Windows-NT-Server 4.00 のO.S.の入ったHDDの全内容を他のHDDへ丸ごとコピー する 市販ソフトはあるのでしょうか? Win-9X、XP では( ... 宜しくお願い致します。 ... もし、市販パッケージが対応していない場合、皆さんはどのような手段でHDDの (O.S.を ... read more旅の空からb: 理論物理学
2012年2月22日 ... WindowsMe以前ならDOSモードで「fdisk /mbr」を叩けば初期化(削除)できるようだが 、XP以降はインストールメディアで立ち ... プログラムの起動時に、マウントされている 全てのドライブにアクセスするようで、リモートなドライブに対して意味不明のエラーが ... これでUSBメモリを刺したままでもBIOSの起動順序をいちいちいじらずにHDDからPC を起動できるようになった。 ... AcronisTrueImageHome2012+のブータブルメディアを USB HDD上に造る方法というか、ブータブルCDをHDD上に置いてそこ ... read more《無料で復旧》HDDが認識しない、RAWと認識され ... - 今日も俺は空・寝・遊
2011年2月3日... の連鎖になります。 どのような症状になるのか? ... コンピューターから不具合のHDD にアクセスしようとすると、「フォーマットをしますか?」と聞かれて、アクセス ... Advanced・・・各パーティションのブートセクタやMFTの修復ができます。 ... しかし、「 HDS722020ALA330」は駄目だな、アメリカや日本でクレームがあるナーバースな機器 のようです。 ネットで調べる .... はじめまして。 Linkstationが壊れて、USB認識させた後 、HDD上で実データが入っているパーテーションがRAW認識して困っていました。 read moreStray Penguin - どんがらりん(DOSブータブルCDを作る)
DOSシステムをハードディスク上で作り込み; ハードディスクイメージの書き出し; ブータブルISOイメージの作成; 焼く ... Linux ならどのディストリビューションにも標準で 入っているだろう。 mkisofs [Linux] -- El Torito はもちろん、ありとあらゆる CD 規格に 対応した ... はブート CD からブートファイルを取り出したりフロッピーイメージの内部を 閲覧/編集できて便利なので、私も利用させてもらっています。 ... EXE (WinNT 系の SID を書き換えたりするツール) は C: ドライブがリードオンリーであることにパニックする らしく、カタマる。 read more
0 comments:
Post a Comment