TP600 最終進化へ その2

OS インストール

データの移行

 購入した HDD は東芝製 MK6022GAX となりました。東芝製を選択した理由は、IBM の HDD 部門がなくなったこと、日立では個人的に信頼性が劣ること、それ以外のメーカーは 2.5" HDD の製品が入手できないこと、からでした。それ以外の理由はありません。

 NotePC に限った話ではありませんが、HDD を交換するときに問題となるのが、既存の環境をどうやって引き継ぐか、というものがあります。Windows 98 だけであれば、それほど面倒ではありませんが、Windows 2000 を NTFS で使用している場合などは、結構面倒な手間が必要となります。今回はさらに Linux の領域もありますので、単純には行かないことは容易に想像できます。

 さらに NotePC の場合、HDD はひとつしか内蔵できないため、新しい HDD をどうやって接続するか、という問題が追加で発生します。案外落とし穴になるのが、USB で HDD を接続することです。USB は Windows 98以降で正式サポートとなっているため、USB HDD を使うためには、Windows 98 を起動させる必要があります。しかし、起動した Windows 98 は OS の保護機能が働くため、ファイルをコピーすることができません。多くのバックアップツールでは、DOS モードで起動させることが多く、USB HDD は認識できないことが多く、使いたくても使えない、という『缶の中に缶きり』状態になります。

 しかし、ThinkPad ではそのような心配も不要です。なぜなら、ThinkPad には、セカンド HDD アダプタというすばらしいアイテムがあります。これは、CD-ROM ドライブや DVD-ROM ドライブなどの工学ドライブを搭載するスペースを活用し、HDD を搭載することを可能にするためのアダプタです。ThinkPad では、工学ドライブだけでなく、交換可能なデバイスベイとして使用できるように設計されており、FDD、HDD、光学ドライブ、バッテリ、などを交換しながら使用することができます。このような仕様のため、ThinkPad では最大2台の HDD を内蔵して使用することができます。私は ThinkPad 600/570 兼用の ものを持っています。

 セカンド HDD アダプタがあるので、あっさり終わるはず、と思っていた私の予想は、あっさり裏切られました。なぜか2区画目を複写しようとすると、異常終了してしまうのです。使用している Power Quest Drive Image 3.0 日本語版は、すでにかなり古く、どうも大容量 HDD の認識に問題があるようです。すでに Drive Image Pro 5.0 が発売されていることからも、そろそろ限界のようで、まともにコピーできたのは、第一区画の Windows 95 のみとなってしまいました。

 (もしかすると、ThinkPad 600 では 60GB の HDD を認識できないのでは)という不安を覚え、せっかくコピーした Windows 95 の区画を削除し、全容量を与えて Turbo Linux をインストールしてみたところ、特に問題もなく全容量を確保して、インストールは完了し、TurboLinux もまったく問題なくインストールが完了しました。このことから、やはりツールの扱える上限を超えている、という判断を下しました。とどのつまり、現在の環境を移行することはできなかったわけです。

Dual Boot 環境の構築(Linux インストール編)

 環境移行は失敗してしまいましたが、さすがにすべての作業を Turbo Linux だけで行うまでにはいたっておらず、Windows との Dual boot 環境を改めて構築する必要がありました。とある事情で、先に Linux 環境を構築する必要があったため、本来は先にすべき Windows のインストールを後回しにして、先に Linux をインストールことにしました。

 先に Windows をインストールしたほうがよい理由はいくつかありますが、その最大のものは、Windows のインストールで、Linux の Boot Loader が上書きされてしまうことがあげられます。Linux の Boot Loader は、他の OS がインストールされていることを考慮していますが、Windows の Boot Loader は自分がすべてであるため、他の OS が入っていても、あっさりと上書きしてしまいます。唯一自分の兄弟にあたる Windows OS が入っている場合についてはのみ、従前どおり起動できるようにするのみとなっています。

 Linux を先にインストールするときの留意事項は前述した Boot Loader の問題のほかに、もうひとつあります。それは、Windows は基本区画からしか起動できない、というものです。Linux のインストールで基本区画の3を使い切ってしまうと、あとから Windows を入れたくても、入れようがなくなってしまうのです。実は、一度目はこれにはまり、基本区画をすべて使い切ってしまう、という大失敗を演じてしまいました。Windows をインストールするときに、HDD の空きがないとメッセージが表示され、理由が判明するまで、実に一日もかかってしまいました(爆)。

 二度ほど試行錯誤を行い、最終的な区画設定は、次のようになりました。

 番 号  フォーマット   マウント     容  量       備        考    
hda1 ext2 /boot 128MB 基本区画、grub 導入区画
hda2 FAT32 /dos 4096MB 基本区画、Windows 95 用
hda3 Extend 51200MB 拡張区画
hda5 swap swap 512MB 論理区画1、ID:82
hda6 ext3 / 4096MB 論理区画2
hda7 ext3 /var 10240MB 論理区画1
hda8 ext3 /usr 4096MB 論理区画3
hda9 ext3 /home 4096MB 論理区画4

 かなり細かい区画設定となりました。以前 root パーティション単一で作成していたときに、/var の容量が急増してしまい、root パーティションを飛ばしてしまったことがあり、それ以来、/var は大き目の別パーティションに作成するようにしています。こうすることで、/var が溢れても、root パーティションには影響を与えないので、システムクラッシュを防ぐことができます。容量の少ない場合は、単一の区画を割り当てることもありますが、十分な余裕がある場合は、分割しておくほうが、システムの安定性にはよいようです。なお、容量には、余裕を見て設定しています。果たして、ここまでの容量が必要かどうかは、今後の使用法次第です。

 実はこの区画設定を間違えて、あとではまってしまうことになるのでした。

 区画設定は Linux のインストール中に行います。ここで、先に hda2 を確保しておくことがひとつのポイントになります。HDD 上には、基本区画が3つと拡張区画が一つの最大4つが作成されます。拡張区画を使わない場合には、基本区画を4つ作成することになります。拡張区画内には、任意の数の論理区画(Windows では論理ディスクと呼ぶことがあります)を作成することができます。このような仕様のため、拡張区画は、基本区画に割り当てる以外のすべての容量を割り当てておく必要があります。したがって、拡張区画の前に基本区画を作成しておかないと、基本区画を作成できなくなります(正確には作成することもできるのですが、パーティション番号の割り当てと一致しないため、わけわかになってしまいます。以前、これではまりました.....)。

 このような区画設定を行う場合、fdisk でせこせこ行うしかありません。もっとも ツールの割り当ては、私の好みに一致することが珍しいので、Linux のインストール時には、ほとんどの場合、fdisk で手動割り当てしています。Windows の fdisk に比べて、柔軟性が高く、いざというときのメンテナンスツールとしての性格も持ちますので、Linux の fdisk は覚えておくと、役に立ちます。

 それ以外は、ほとんどお任せでインストールを進めました。起動時のランレベルはもちろん5とし、デフォルトの Window Manager は KDE としました。インストール完了後、時間がだいぶ遅くなったこともあり、起動確認をせずに就寝してしまいました。実は、このときに予想だにしなかった問題が発生していたのですが、私はそのことに気づいていませんでした。

 翌日、早速インストール完了した TuroLinux を起動させようと ThinkPad の電源を入れたのですが、なぜか、Operating System not Found のメッセージが表示され、起動する様子がないのです。Windows の導入を考慮し、MBR ではなく、hda1 に grub をインストールしたはずなのですが、grub のプロンプトは一向にくる気配がないのです。起動ディスクはいつものごとく作成を省略しているので、HDD から起動してもらえないと、どうにも打つ手がありません。

 早速 Turbo Linux の Web を確認しました。そして、Turbo Linux 6.5 用でしたが grub FD の作り方が見つかりました。早速同じ方法を用いて、Turbo Linux 10 Desktop でも、grub FD を作成することができました。grub は Boot Loader でありながら、ファイルシステムを理解するため、パーティションの内容を読み込みながら起動させることができます。とはいえ、コマンド系は、Linux 起動後のそれとは異なりますので、専用のコマンドを打ち込む必要があるのですが、ここで再びはまりました。以前はよく打ち込んでいたので覚えていたのですが、使わなくなってから、すっかり忘れてしまっていたのでした。これについても、Turbo Linux の Web が役に立ちました。

 grub FD でパーティションを mount しながら、起動させようとしたのですが、どうにも、ルートパーティションを読み込んでくれないのです。grub の使い方を復習しましょう。grub でパーティションを mount するときは、root コマンドを使用します。/dev/hda1 を mount する場合は、

 grub>root (hd0,0)

となります。root が mount コマンドに相当します。hd0 が /dev/hda に相当し、0 がパーティション番号1に相当します。grub では0から符番が始まるので、/dev/hda1 を mount する場合には、hd0,0 と指定することになります。多くのドキュメントでは、root コマンドの引数として、ルートパーティションを設定するようになっていますが、今回の私のようなケースでは、これは正しくありません。root コマンドの引数には、起動する kernel が含まれるパーティションが必要となりますので、/boot が含まれる /dev/hda2 を引数と指定すればよいわけです。ここに気づくまでに、約一日半もかかってしまいました。

 なお、この grub の mount 機能を使うことで、Linux を起動しなくても、どこにファイルがあるか程度であれば、簡単に調べることができます。今回、ルートパーティションかどうかを判断するためには、root コマンドで mount し、/root ディレクトリがあるかどうか、を調べました。まず、ファイルシステムの mount は /dev/hda6 なので

 grub>root (hd0,5)

とし、tab キーを押すと、ファイル名の補完機能が働くので、ファイルリストが表示されます。そこで、root が含まれていれば、ルートパーティションと判断しました。ここまでわかれば、あとは HDD の Turbo Linux を起動させるだけになります。/boot が /dev/hda2 ですから、mount は

 grub>root (hd0,1)

となります。そして、kernel を読み込みます。

 grub>kernel /vmlinuz-2.6_test2 root=/dev/hda5

とし、起動命令 boot を与えます。

 grub>boot

 もちろん TurboLinux が起動してきました、と言いたいところですが、そう一筋縄ではいきません。なかなか気づきませんでしたが、grub の数え方が頭にこびりついていたため、ルートパーティションの指定が誤っていました。/dev/hda6 がルートパーティションなのに、/dev/hda5 を指定していたのですから、それは当然、ルートファイルシステムが見つかりません、になるわけです。これを正しく設定したところ、きちんと TurboLinux が起動してきました。

 grub での起動が確認できれば、grub を HDD に導入して起動できるようにします。grub-install を実行することで、grub が /dev/hda2 に導入することができました。パッケージとして grub が導入されているので、grub-install コマンドが使えるようです。一度再起動して、Turbo Linux が起動できることが確認できましたので、無事 Linux のインストールが完了しました。

Dual Boot 環境の構築(Windows インストール編)

 Dual boot のもう一方である Windows 2000 をインストールをすることにしました。Windows 2000 のインストールでは、特に注意する点はないだろうと思っていましたが、意外な落とし穴がありました。

 Windows 2000 をインストールするためのパーティションは用意していたので、ただインストールするだけだと思っていたのですが、インストール後になにか違和感を感じました。(なにか、変な気がする....)と思い、じっくりと見ていたところ、Windows 2000 を導入したドライブのドライブ名が E になっていることに気づきました。(えっ、なんで D にならない?)

 Windows のドライブ名割付は、Windows 98 までと Windows 2000 では異なります。Windows 98 までは、HDD の区画にドライブ名を割り当ててから、光学ドライブなどに割り付けていたのですが、Windows 2000 からは、インストール時のドライブ名を引き継ぎます。インストール時点では、HDD 上に Windows 用の FAT 区画が一つしかなかったため、/dev/hda1 が C ドライブとなり、光学ドライブが D ドライブとなっていました。このため、Windows 2000 をインストールすることで、追加されたドライブが E ドライブとして新たに割り当てられることになったのでした。

 リモートデスクトップ接続のように、Local 環境を使わないのであれば、そのままでも特に問題はなかったのですが、ThinkPad 600 は外でも使用するため、実環境としてドライブ名の統一が必須となっていました。我が家では、アプリケーションを D ドライブに、データを E ドライブに導入することとしていますので、OS が E ドライブにあったのでは、問題となります。

 ということで、いきなり Windows 2000 の再導入を行う羽目になりました。で、私は再びミスを犯してしまいました。Windows 98 環境を引き継いでいるらめ、OS Loader のメニューに、D ドライブの Windows 2000 が残っていました。このため、インストールするときに、新規ではなく修復を選んでしまったのです。始めてから(この修復でどう戻るのだろう)と思ったのですが、すでに始めてしまったので、とりあえずは進めてみました。

 予想に反して、D ドライブの Windows 2000 が修復されました。単純にインストールするよりも、時間は倍近くかかりましたが、修復されることもある。ということがわかりました。ThinkPad 600 は、Windows 2000 の標準ドライバだけですべてのデバイスが認識されるので、Windows 2000 のインストールが完了すると、ほとんど終わりです。

Dual Boot 環境の復元

 Windows 2000 をインストールすると、/dev/hda1 が Active パーティションに設定され、OS Loader が常に起動するようになります。そこで、Active パーティションを /dev/hda2 に変更すると、ふたたび grub が起動するようになります。MBR に grub を導入しなかったため、/dev/hda2 にある grub は、Windows 2000 のインストールによって消えてしまうことがありません。

 Active パーティションの変更には、いくつか方法がありましたが、今回は、MS-DOS の fdisk を使って設定しました。MS-DOS の fdisk では、そのものずばり、アクティブ領域の設定という項目がありますので、これで設定できます。fdisk では、Linux の領域は Non MS-DOS 領域として見えていますので、こちらに Active 設定を行い、再び grub が起動するようになりました。

 grub では、基本区画として MS-DOS 領域が存在していると、起動メニューの中に Windows OS が追加されるようです。このメニューは Turbo Linux だけをインストールした時点で追加されていました。

 ということで、無事 Dual Boot 環境、というか正確には Triple Boot (Windows 95、Windows 2000 Turbo Linux )環境が構築されました。パーティション数だけはすさまじいことになっています。すでに /dev/hda12 まで埋まっており、しかも、空き容量があるため、さらに番号が増える可能性があります。あまり増えると人間の方が対応できなくなってしまいそうです....


Last Update is 2004/02/08