■ やっかいなハードディスク事情 2014-11-21
ケバブ人からのお便り
はじめまして。ケバブ人です。SEをやっています。
BREASTOのブログができたということで、時々の適当なことを更新していきたいと思います。
11/9、デザインフェスタvol.40に行ってきました。・・・って、お嬢が既に書いている・・・!
まさか被るとは思ってませんでした。。。しょうがないので技術寄りのことでも書きます。
最近、自宅LinuxPCのハードディスク2台を RAID1(*)+LVM(*) にしました。
以前はRAID1のみで運用していましたが、半年以上前にディスクが1台壊れてしまい、縮退モード(*)で放置していたのです。
新たなディスク自体は何ヶ月も前から購入していましたが、それをようやく取り付け、RAIDを復旧させました。。。そしてついでにLVMにも対応させました。
RAIDやLVMはともかく、Linuxの構成するディスク構成とうちのデスクトップPCのマザーボードの相性が良くないようで、
PC購入時もそうですが今回も大変苦労しました。
そのことについて触れたいと思います。ハードディスクに興味の無い方にはサッパリな内容かもしれませんがご了承ください。
最近はハードディスクのパーティションテーブル(*)のフォーマットにGPTという形式が使われることが多いです。
以前はMBRという形式が主流でしたが、HDDの容量に2TBの制限がありました。
PCを購入したのは数年前で、2TBのハードディスクも普及してきていたのでディスクフォーマットにGPTを採用したのです。
するとどうでしょう。LinuxOSをインストールしてPCを再起動すると、”no bootable device”と黒地に白文字が出てそこから一切進みません。
(GPTをよく調べていれば数年前のあの時、理由に気付けたかもしれないのが悔やまれる)
そこから試行錯誤したのですが、OSインストール作業自体が1回何十分もかかる上、インストールオプションを変えながら何十回とやり直して膨大な時間を要しました。
仮想PCではそれまでに何度も使用していたLinuxOSで、ハードウェア面の問題だということは認識していたのですが、全く理由がわかりませんでした。
何度も試してわかったことは
・OSのバージョンが古いものをインストールすると起動できる
・OSバージョンを下げてもRAIDやLVMの構成によっては起動できない
RAIDを諦めれば早々にインストールは完了していたのですが、
あの時は既にハードディスク2TBを2台購入済みで、バックアップ必須なデータを入れたかったのです。
それすら諦めかけていた終盤、ネットで1つの情報を見つけました。
・マザーボード(BIOS)がGPTに完全対応していないと起動できないことがある
・MBR用のディスク設定をすれば、マザーボードがOSディスクを認識してくれる
・あとはLinuxの起動シーケンスがうまいことやってくれる
OSがディスクから起動する仕組みとして
1. PC電源ON
2. BIOSがOSの入ったディスクを認識
3. BIOSがディスクのブートローダが起動
4. ブートローダがOS起動
というプロセスがあるのですが、
マザーボードがGPTに完全対応していなかったため「2」が失敗していたというわけです。
MBR形式では、BIOSがOSの入ったディスクを認識する際に、「起動フラグ」の立っているディスクを探すのですが、
購入したマザーボードは、ディスクがGPT形式にも関わらずMBR用の「起動フラグ」を探して失敗している。そういうことのようです。
上記状態の対処方法も発見されており、CDに焼いて起動するレスキュー系のプログラムを使い、
GPTでは本来不要なMBR用の起動フラグを無理やり立てるというもので、それでようやく解決しました。
(ちなみにfdiskコマンドのaコマンドです)
以前は、上記方法でもRAID1+LVMではうまくいかなかったのですが、今回試しにやってみたらうまくいきました。(理由は調べてませんが)
ただ、何かするたびに起動フラグが消失するようで、起動に10分はかかるレスキューディスクを何度も使うことになり疲れました。。。
次にマザーボードを購入する際は、「UEFI」というBIOSに代わるものを搭載した、GPT完全対応のマザーボードを購入したいと思います。
(その頃には気にするまでもなく対応しているのかもしれませんが)
というわけで、初回の投稿でした。
もしLinuxOSのインストールで同様にお困りの方いらっしゃいましたら、参考にして頂ければと思います。
* RAID1: 複数のハードディスクを1つのハードディスクとして扱い、同じデータを書き込む仕組み。バックアップに使える。
* LVM: Logical Volume Manager。複数のディスク(及びパーティション)を1つとして扱い、容量の拡大縮小が可能な仕組み。
* 縮退モード: RAIDを構成するディスクが1部壊れた状態。
* パーティションテーブル: ハードディスクをPCで使用するための管理情報やその構成。