T43 HDD 交換と OS の更新

Windows 7 と Vine Linux 5.0 の Dual Boot 環境の構築


そろそろ P-ATA の入手が難しい

 最近のディスクインターフェイスの主流は S-ATA になってきています。Note PC でもそれは変わらず、P-ATA と比べて扱いの容易さから好まれているように感じます。流通量の差は、価格差となって現れてきますので、S-ATA の安さは、P-ATA の値付けが間違っているのではないかと感じるほど、突き抜けています。T43 は、オンボードのコントローラは S-ATA なのですが、変換して P-ATA として出ているので、搭載する HDD は P-ATA となる上、対応する HDD も限定されてしまう、という少々扱いの難しいところがあります。

 購入時には 100GB の HDD が搭載されていましたが、すでにそれでは足りなかったことから、購入まもなく、Samsung の 160GB を搭載していました。容量的な不足が生じたわけではなかったのですが、今後、P-ATA が安価に手に入るかという点で不安を感じ、予備的交換を行うことにしました。それでは容量をどうするか、という点がポイントになるわけですが、選択肢は事実上残っていませんでした。DOS/V パラダイスの通販をみたところ、320GB は予定数を完売しており、250GB が最大容量になるようでした。店頭に出向くと、320GB が入手できたのかもしれませんが、仕事が忙しい状況では、会だしに行くこともままならず、初めて通販を利用しました。購入した HDD は WDC WD2500BEVE-00WZT0 となりました。

Windows 7 のインストール

 HDD を入れ替えるついでに、Windows 7 RC を導入してみました。すでに ThinkPad T41 にて使用しており、なかなかの好感触を得ていたので、メインマシンでも使ってみよう、と考えたわけです。それだけであれば、Windows XP をアップグレードすればよい、と思われるかもしれませんが、そうは問屋が下ろしてくれない事情が生じています。

 Windows 7 では、事実上初めて、OS が2パーティションを使用することとなっています。これまでの Windows では、OS は1つのパーティションを使うのみで、データを別パーティションにいれる、という使い方がせいぜいでしたが、Windows 7 ではこの殻を破っています。これには、パーティションの暗号化が深く関わっています。これまでの OS では、データパーティションの暗号化には数多く対応していましたが、システムパーティションの暗号化には二の足を踏んでいました。システムパーティションを暗号化してしまった場合に、 OS Loader が暗号化されたパーティションの内容をよむことができなくなってしまうことになり、OS そのものが起動できなくなってしまう、という問題をはらんでいたのです。そこで、Windows 7 では最小限の OS 起動用部分を独立させることで、システムパーティション自体の暗号化を可能にしてくれたのです。

 パーティションの使用数が変わることがそんなに大木なことか、と思われるかも知れません。たしかに、Windows しか使わない、というのであれば問題ありませんが、私のように Dual Boot をさせようとした場合には、非常に大きな問題となります。OS の Boot は基本パーティションから行う、という制限が足枷となるためです。PC の起動方法について、少しだけ触れておきます

ブートストラップ

 PC は、ある意味非常に馬鹿です。人が決めたルールがないと、人の役に立つことができません。いわゆる、プログラムという決まりごとを事前に教えておかないと、キーボードからの入力を受けつけることさえできません。このような状態では、PC は粗大ゴミしかならないわけです。プログラムがないと何もできないことは、起動についても同じです。まったくプログラムのない状態では、PC を起動させることさえできないのです。なぜなら、起動とは、プログラムを HDD から読み込むことに他ならないわけですから、この読み込むためのプログラムが事前に必要となるのです。このような、ごく小さな基本的な入出力機能については、最初から PC に用意しておく必要があります。このような基本的な入出力機能を BIOS(Basic Input Output System) と呼び、PC の中に差しほから用意されています。

 BIOS は PC が通電されると、強制的に読み込まれます。その後、HDD 上の特定の場所から、OS を読み込みます。しかし、BIOS が扱える資源はごくわずかなものとなっているため、一度に OS 全体を読み込むことはできません。段階を踏んで、使える資源を増やしていきながら、より大きなプログラムを読み込んでいくわけです。このように、段階を踏んで起動していくことを、ブートストラップ(bootstrap)とよびます。ブーツの紐は、互い違いにかけられながら、だんだん上に登っていくことから、段階を踏んだ起動方法に同じ呼び名をつけたわけです。

 BIOS は通電されると、HDD 上の特別の場所を強制的に読み込みます。BIOS が使える資源はごくわずかなので、読み込めるプログラムも小さいものとなります。この最初に読み込まれる起動のためのプログラムを IPL(Initial Program Loader) と呼びます。IPL は、OS 本体を読み込むためのプログラムとなっています。

 Windows の祖先の MS-DOS から使われている IPL は、非常にシンプルな構造で、ディスク上の基本パーティションの先頭セクタを読み込む、という機能になっています。このため、MS-DOS 系の IPL で起動する場合には、基本パーティション上に、OS Loader が存在していることが必要となります。Linux などでは、この IPL を 拡張して LILO や grub というブートローダーが作られていますが、これらは基本的には IPL と置き換えられます。Windows 系 OS では、他の OS が同居していることなど、端から想定していない、というよりも、自分しか存在していないことが大前提となっているので、メインの IPL に LILO や grub をいれておくと、Windows 系 OS の再インストールで、これらのブートローダがけされてしまい、Linux が再起動不能に陥ってしまいます。かといって、IPL のままでは、Linux が起動できません。ということで、それらをうまく共存差せる方法として、IPL は基本パーティションの先頭セクタを読み込むという機能となっていることを利用して、IPL と置き換えずに、先頭セクタに LILO や grub を書き込む、という手が好んで使用されます。

OS Loader , LILO , grub

 OS Loader 、LILO 、grub はいずれもが OS のブートローダとなっています。OS Loader は Windows NT 系、LILO と grub は Linux 用のブートローダで、LILO と grub は Windows 系のブートローダーとしても使うことができます。OS Loader は、ちょっと工夫をすることで、Linux を起動させることが可能になります。どれがよい、とは一概にはいえません。LILO は、長らく Linux 用ブートローダとして君臨してきましたが、自由度が少々低い、という問題があり、最近は grub が用いられることが増えてきています。


 Windows 7 のインストールで注意するところは、新規 HDD へのインストールについては、特にありません。今回の場合では、Dual Boot を行うということで、HDD の全容量を確保してしまうことのないようにする,という点だけです。Windows 7 では、これまで1パーティションから、2パーティション運用に変更されているため、Linux との Dual Boot をさせる場合に、少々注意が必要となっています。HDD には、基本区画を4つまで作成可能となっています。それ以上に分割したいという場合には、基本区画の1つを拡張区画に変更して、論理ディスクを作成することになります。Windows の IPL は基本区画の先頭セクタから OS Loader が起動することを前提としているため、論理ディスクから起動させることができません。論理ディスクに導入した OS を起動させることは、Windows の IPL ではできません。

 普通に Windows 7 をインストールすれば、二つの区画を作成することになり、基本区画2つで問題ありません。しかし、D2D のように、表には見えないパーティションが存在している場合には、新たなパーティションが作成できないことから、エラーが生じる可能性があります。昨今の、リカバリメディアをユーザーに作成差せるタイプのマシンでは、Windows 7 をインストールするときには注意が必要です。最新のマシンを使っていないのですが、これまでの経験では、ThinkPad に関しては、必要なドライバを Web から入手できるので、バックアップしなければならないソフトウェアは特別ありませんでした。

 Windows 7 をインストールすると、概ね必要な機能は動作するようになっていました。ディスプレイドライバも適切に組み込まれるため、後から別にインストールしなければならない、ということもありませんでした。とはいえ,ThinkPad 機能設定ユーティリティはないと、いろいろと不都合がでてきますので、これらについては、別途インストールする必要はあります。なくても、動作には支障ありませんので、特別必要性を感じない場合には、そのままでも特に問題はありません。

 ThinkPad 用のユーティリティは IBM のサイトからダウンロードして行いました。System Update が復活しているので、最初にこれを導入しました。Windows 7 用のユーティリティが提供されているわけではないので、Windows Vista 用を使いました。Windows 7 の公式リリース後には、正式な対応版が登場するものと思われます。System Update をインストールすると、後はおまかせでインストールされました。ただ、Vista 用のサービスパックの類もひっかかってくるので、これらについては、明示的に外しました。

 Windows 7 のインストールにかかった時間は、概ね1時間でした。アプリケーションのインストールは別に行うことになりますが、メイン環境ではないということから、それほど時間はかかっていません。別途インストールしたアプリケーションは、Mozilla Firefox 、GOM Player 、AVG 8.5 、です。どれも Windows 7 ということでの問題は発生しませんでした。

 率直なところ、Windows 7 は、Vista Ready マシンだけでなく、Windows XP マシンまで救済しかねないですね。インターフェイスの変更は、結構とっつきにくいところがありますが、2〜3日使えば、通常操作はなんとかなるものと思われますね。Security Fix を考えておくと、このあたりが移行のタイミングのように感じます。メモリが 1GB 未満の場合にはお勧めできないでしょうが、1.5GB 程度でも十分使えるものと思われます。

Vine Linux 5.0 のインストール

 メインはこちらです(笑)。Flash Player の最新版が導入できないことがきっかけなので、まあ、当然ですね。とはいえ、手ぶらで問題なかったというわけでもないところが、頭が痛いですね。元の HDD 時代とあわせると、インストール回数は片手に達しますね。現時点では、そのほとんどが解決していますが、未だに原因の不明なものがあるところが、なんともいやらしいですね。

 基本的なインストールは、これまでの Vine Linux のインストールと何ら変わりません。しかし、Windows 7 との Dual Boot には、少々気を使う部分がありました。それはブートローダーのインストールにありました。Windows 7 は、二つのパーティションを使用するわけですが、起動に必要な /boot だけは基本区画におく必要があります。Linux のブートローダである grub は論理ディスクからの起動にも対応していると思われますが、そのためには grub を MBR に導入して、Windows の IPL の代わりにする必要があります。この方法でもちろん利用可能なのですが、Windows を再インストールすると、Windows のインストーラによって、grub が Windows の IPL で上書きされてしまい、Linux が起動できなくなります。データを Linux 側においていた場合に、これは深刻な問題となる場合があります。Vine Linux の DVD/CD から rescue モードで起動することで修復できますが、慣れていないと、かなり冷や汗をかきます。このため、私は MBR には Windows 用の IPL をいれておき、grub は /boot のパーティションの先頭セクタにかきこむようにしています。こうすることで、Windows を何度再インストールしても、Linux 側には影響が生じないというメリットがあります。

 しかし、この方法は別の問題を引き起こします。Windows の IPL は基本区画しか相手にしません。したがって、grub のかきこまれているパーティションは基本区画であることが絶対に必要となります。したがって、Windows で2区画を使用されると、使える区画が1つしか残っていない、ということになります。今回のように、まっさらな HDD を相手にする場合にはこれでよいのですが、D2D の区画があった場合には、パーティションを新たに作成することができなくなるわけですから、なかなか痛い問題となります。ならば Windows 7 の C ドライブを拡張区画に導入すればよい、と思われるでしょうが、System Reserve 区画は、ドライブ C を指定する時にかってに作るという、Windows 7 の強行策があるため、事前に拡張区画を作成することができなくなっているのです。やろうとすれば、理論的には、100MB の基本区画を作成し、拡張区画を作成した後に基本区画を削除して空き区画とすることで、対応できそうな可能性があります。が、現時点では未確認であり、理論上の話としてなので、実際にできるのかはわかりませんし、追試をする気力も亡くなってしまいます。事実、最初に 128MB の基本区画を作成しておいて、Windows 7 のインストールを行ったところ、事前作成したものとは別に、100MB の区画を作成されました。

 パーティション構成が決まれば、インストールそのものは、特別問題ありません。GUI インストーラも普通に起動しますので、概ね1時間程度でインストールそのものは終了しました。しかし、この後の再起動で問題が発覚しました。

Vine Linux が起動しない

 再起動して Vine Linux の起動ロゴが表示され起動が進んでいくわけですが、なぜか Core Dump が表示されて、起動が完了しない状態となりました。通常の runlevel 5 だけでなく、runlevel 3 でも Core Dump してしまいました。runlevel で起動させ、deamon の起動を確認していったところ、cupsd の起動で Core Dump していました。runlevel 3 でも起動が完了しないことから、どう対応すべきか、悩みどころとなりましたが、rescue モードを使うことで、cups の自動起動を停止させてみました。しかし,今度は sshd で Core Dump し、なぜそうなるのか、まったくわかりませんでした。Web で検索を行っても、情報が見つからず、やむなく、Vine Linux 5.0RC を再導入することとしました。

 とはいえ、これでは悲しい結末なので、再度、Vine Linux 5.0 を再インストールしてみました。ところが、結果が異なり、今回はCore Dump せずに普通に起動するようになりました。このような場合には通常メディアの不良が疑われるわけですが、Media Check 行っても、正常と診断され、一度目でなぜ Core Dump したのか、よくわからない状態となっていました。

無線 LAN が利用できない

 T43 には IntelPro Wireless 2915 ABG が搭載されており、Vine Linux 5.0RC では問題なく使えていました。ところが、Vine Linux 5.0 にしたところ、無線 LAN が利用できなくなっていました。手動で modprobe ipw2200 してみたところ、Invalid module format のエラーが発生してしまいました。

[root@T43 ~]# modprobe ipw2200
FATAL: Error inserting ipw2200
(/lib/modules/2.6.27-43vl5/extra/drivers/net/wireless/ipw2x00/ipw2200.ko):
Invalid module format

 Vine Linux の ML にて質問したところ、モジュールの確認をしてみては、というアドバイスがあり、早速モジュールの存在確認を行ったところ、ipw2200.ko が二箇所に存在していることが判明しました。

[root@T43 ~]# locate ipw2200.ko
/lib/modules/2.6.27-43vl5/kernel/drivers/net/wireless/ipw2200.ko
/lib/modules/2.6.27-43vl5/extra/drivers/net/wireless/ipw2x00/ipw2200.ko

 エラーになっているのは、後者のパッケージに含まれる ipw2200 の用ですが、含まれているパッケージ名を調べ(rpm ーqf 探したいファイルのフルパス名)、extra を含んでいる kernel-module-compat-wireless を削除して、modprobe ipw2200 してみましたが、extra のモジュールを読み込もうとして、エラーとなっていました。ディストリビューションの配布しているパッケージだけを使用している状態で、なぜこのようになるのか、まったくわからないでいたところ、Vine Linux の ML にて、当該モジュールの削除および Firmware の入れ替えの返信をいただきました。その中で、rpm -e した後に depmod -a をすることを知り、早速実行してみました。firmware の入れ替えは、Vine Linux 4.2 用の rpm ファイルを入手し、手動で rpm -ivh にてインストールしてみました。再び modprobe ipw2200 してみましたが、まだ動作しませんでした。再起動時に Synaptic が Vine Linux 4.2 用の firmware を見つけてしまい、アップグレードするようにメッセージを出したので、半分やけくそで更新して、再起動したところ、modprobe ipw2200 に成功するようになりました。

 当初は私の環境だけか、と思っていましたが、ML に投稿することで、同じ状況となった方が見つかり、対応策まで教えていただくことができました。ただ、なぜ私の環境でははまったのか、今ひとつ原因がつかめていないのが、少々心残りです。Vine Linux 5.0RC では問題なかっただけに、よくわからないエラーでした。

DVD 閲覧不可

 Vine Linux 4.2 あたりからだったと思いますが、マルチメディアプレイヤーの MPlayer が self-build パッケージで提供されるようになっていました。このパッケージは、あらかじめ build 済みのパッケージを配布する代わりに、ソースと build する環境を提供して、apt-get install するとあわせて build されるパッケージとなっています。Vine Linux 5.0 を導入して真っ先に追加したパッケージで、ファイルサーバー上にある各種動画ファイルは問題なく再生できることを確認しましたが、DVD の再生を行おうとしたところ、エラーが発生することが判明しました。

No stream found to handle url dvd://1

 Vine Linux の ML にて質問したところ、/dev/dvd のアクセス権の変更がなされている、とのことがわかりました。そこで、メインのアカウントを cdrom グループに属するように設定したところ、無事 DVD の閲覧が可能になりました。セキュリティ対応のため、このようになっているということですが、DVD の閲覧以外に、CD-R(W) DVD-R(W) の書き込みをする際にも発生するようで、私が投稿した後でも、話がでていました。なお、現在は、Vine Linux の FAQ として記載されています。私の ML での発言も見ることができます :)

メールが受信できない

 これは、どちらかというと、使用者側の問題なのですが(苦笑)、インストールが完了して、Sylpheed を起動させてメールを受信しようとしたところ、エラーが発生してメールが受信できなくなっていました。メッセージをよくよむと、メールフィルターの bogofilter のエラーでした。これは、Vine Linux 5.0 をインストールしただけでは導入されないので、別途ユーザーがインストールしなければならないのですが、あたり前のように使っている期間が長かったため、すっかり忘れていました。Vine Linux で標準のメーラーとして使用されている Sylpheed では、メールフィルターとして bogofilter と bsfilter の二種類が初期設定されてあり、ユーザーがどちらを使うか選択することとなっています。いずれのパッケージも Vine Linux 用が用意されているので、apt-get でインストールしました。

環境移行はとても簡単

 私はユーザーディレクトリの入る /home は必ず別パーティションにします。Linux では、個人設定はすべてこの /home に保存されるため、/home を独立したパーティションにしておくと、従来の環境がほとんどそのまま引き継げます。デスクトップ環境はもちろんですが、ユーザーでダウンロードしたファイルや作成したデータも、基本的には /home 内に保管されますので、環境移行は非常に楽です。Windows では Documents and Settings フォルダが相当しますが、このフォルダは Windows ディレクトリの中にありますので、OS のインストールをする場合には、まっさらになってしまいます。ディスクをフォーマットしないで、Windows を再導入することも可能ですが、ディレクトリ名が変更されますし、レジストリなどがやられてフォーマットが必要な場合には、そのままでは移行できませんので、この点は Linux を見習ってほしいです。特に、ユーザー環境をきちんとユーザーディレクトリに保管するのは、ありがたいですね。インストール直後から、個人環境が復元されているので、Windows でありがちな、再カスタマイズを必要としません。パーティションの管理という問題は別に発生するところがありますので、手放しで喜ぶわけにはいかないのが、難点ではありますが。

ブートローダの選択

 Dual Boot するためのブートローダには grub を使いました。先にかいたように、grub の導入先は、MBR ではなく、/boot のパーティションである /dev/sda3 の先頭セクタにしています。Vine Linux 5.0 のインストール途中で、ブートローダの設定を行いますが、その中で「高度な設定」にて、インストール場所を指定しています。これで、Windows の IPL が grub を呼び出すようになりました。

 grub に対しての設定は特別ありません。Vine Linux のインストール時に、すでにインストールされている Windows 7 の存在を見つけており、grub をインストールする設定の中で自動対応されています。ただ、表示名については、そのままだと Other となっていますので、編集ボタンを押して、Windows 7 RC と名称変更はしています。

 ここで再起動をすると、そのままでは Windows 7 が起動してきます。実のところ、最初インストールを失敗したかな、と思ったほどです。ですが、これは正しい動作なのです。Windows の IPL は、HDD 上の基本区画のうち、ブートフラグが付いているパーティションの先頭セクタを読み込みます。Vine Linux をインストールした状態では、ブートフラグを書き換えまでは行わないため、最初にインストールしている Windows 7 の System Reserved 区画を読み込みにいきます。なので、ブートフラグの付け替えが必要になります。この部分はよく忘れてしまうので、注意が必要ですね。

 ブートフラグの付け替えは、Vine Linux の rescue モードから行います。Vine Linux 5.0 のインストール DVD を挿入して、Advanced Options を選択し、rescue モードを起動します。しばらく待つと、表示するメッセージの言語選択(通常は Japanese で構いません)を選択し、使用するキーボードの種類(日本語キーボードを使っている場合には jp106 を選択します)します。その後、rescue するためのインストール済み Vine Linux を自動的に探しだし、/mnt/sysimage の下に mount するメッセージが表示されます。

 /mnt/sysimage にインストール済みの Vine Linux のルートパーティションが mount されます。chroot /mnt/sysimage コマンドを実行して、ルートパーティションを HDD 上の /dev/sda5 に変更し、fdisk コマンドを実行します。fdisk のプロンプトが開きますので、a → 1 → a → 3 と入力して、ブートフラグを /dev/sda1 から /dev/hda3 に変更します。a コマンドは、フラグの On/Off を切り替えるコマンドですが、他のパーティションとの整合性を確認することはしないので、先に Windows のパーティションについたフラグを Off に変更し、その後に /boot のパーティションのフラグを On にするという手順をとります。

 具体的手順は、rescue モードの使い方をご覧ください。


Last Update is 2009/09/22. CopyRights Tazoe Kazuya 2009.