開発やらlinuxについてやったこと、ひっかかったことのメモ
× [PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
半日かかった.
やっと終わった! 今回の作業でOSのブートに対する基礎知識は十分についたとおもう. まず,基本的な知識から MBR(マスタブートレコード) これは,BIOSがOSブートの第1段階として呼び出す領域であり,原則OSのブートローダーはここに配置されている. PBR(プライベートブートレコード) これは,パーティションの先頭にある領域で,WindowsやFreeBSDなどLinux以外のほとんどのOSは,ここにメインのブートローダを配置する.要するにMBRは領域が少ないので, MBR→PBR(MBRで出来ないようなこと)→OSをブート という感じにしているっぽい. ちなみにこれを「2段階ブート」と一般的に呼ばれているらしい. PBRの説明で「Linux以外」となっていたことについて. 現行のLinuxはGRUBというブートローダを使用しており,GRUBは他OSのように2段階ブートせず,MBRから直接カーネルにアクセスし,/boot/grub/menu.lstを参照したり,stage2と呼ばれる作業を実行してOSをブートするらしい. つまり, MBR→OSをブート している.これは前述の2段階ブートと比較して「1段階ブート」と呼ばれているらしい. これがどういうことかというと,マルチブート環境構築時に問題が発生しやすくなってしまう. 例えばWindowsが入っていたPCにパーティションを区切ってLinuxを追加した場合, MBRはGRUBで上書きされてしまう. つまりWindowsを起動するためには MBR(GRUB stage1)→Linuxファイルシステム(GRUB stage2)上のmenu.lstを参照し,OS選択→Windows用PBR→Windowsのブート という経路になっているみたい. で,今回私が経験した問題がこれで説明できる. 内蔵HDDにWindowsが入っていて,新規でLinuxをUSBHDDにインストールすると,内蔵HDD上のMBRにはGRUBが上書きされてしまうため,USBを外した状態でBIOSを起動すると以下のメッセージが出力されてしまう. GRUB Loading stage1.5. GRUB Loading, please wait... Error 21 これはGRUBのstage1.5(stage2.0を呼び出すための準備?)をロードしようとしているが,stage2.0が存在しないため,エラーが発生してOSのブートが出来ない. さらには/boot/grub/menu.lstは,GRUBインストール時のBIOSのハードディスクのブート順などが書かれているため,GRUBをインストールしてしまったあとで,下手にBIOSのハードディスクのブート順などを変更してしまったり,新たなHDDを追加してしまうと,エラーになってしまう恐れもあるらしい. 今回私は無知の状態で上記2つの問題を同時に経験したので,この問題の対処に半日費やす羽目になりました. さらにstage2.0がUSBHDDに存在しているために,USBが壊れたら....ということもあるらしい. なので今回対処方法として実践したステップ↓ 1.Linuxのブートローダ(GRUB stage1)をPBR領域に配置 2.MBRに強力なフリーソフトのMBM(マルチブートマネージャ)をインストール 以上を行うことで設定を終えることができました. 設定の詳細は このあと記述する記事を参照のこと. 【参考URL】 マルチブートするなら2段階ブートに統一しよう wikiwiki.jp/disklessfun/ PR |
カレンダー
カテゴリー
フリーエリア
最新記事
(07/25)
(04/22)
(04/21)
(02/22)
(02/08)
(02/04)
(01/16)
(11/26)
(11/24)
(11/12)
最新TB
プロフィール
HN:
poti
性別:
非公開
ブログ内検索
最古記事
(11/16)
(11/16)
(11/17)
(11/17)
(11/17)
(11/18)
(11/18)
(11/19)
(11/21)
(11/21)
P R
|