そういやデュアルブートしました
最近PCをあまりいじっていない、
かと思っていたが、そういえばこのあいだマルチブート(DOS/V)に挑戦したので
少しだけ記しておこう。
筆者が行ったのはLILOを用いたLinuxとWindows98の同居であった。
ハードディスク構成はもともと、次のようであった。
0 10 20 30 40 (GB) |--Linux--|------------FREE------------| |
40GBのハードディスクの後半の3分の1はガラ空きなのだ。
もったいないこと限りないので、残りの領域には窓の98にでも入ってもらうことにした。
普通、マルチブートをする際は、ハードディスクの一番最初の基本領域を窓のCドライブとして使うのがいいとされている。
あと、ペンギンと窓のデュアルブートをする際などは、「窓を先にインストールしておく」のが望ましいとされている。
そう、それはいきなりの苦境(w)だった。
筆者の環境では、一番最初の拡張領域はLinuxに使われている。
もちろん、Linux BOX に窓を入れなくてはならない。
debianをインストールしたころはこのようなマルチブートの知識は皆無だった。
後悔である。
気を取りなおして、パーティションの構成を見ていこう。
+-------------------------------------+ | +-------------------------------+ | | | Linux ext2 | | | | / | | | | (/dev/hda1) | | | | 1.5GB | | | | Primary | | | +-------------------------------+ | | | | +-------------------------------+ | | | +-------------------------+ | | | | | Linux ext2 | | | | | | /usr | | | | | | (/dev/hda5) | | | | | | 3GB | | | | | | Logical | | | | | +-------------------------+ | | | | | | | | +-------------------------+ | | | | | Linux ext2 | | | | | | /var | | | | | | (/dev/hda6) | | | | | | 3.25GB | | | | | | Logical | | | | | +-------------------------+ | | | | | | | | +-------------------------+ | | | | | Linux ext2 | | | | | | /home | | | | | | (/dev/hda7) | | | | | | 1.75GB | | | | | | Logical | | | | | +-------------------------+ | | | | | | | | +-------------------------+ | | | | | Linux swap | | | | | | swap | | | | | | (/dev/hda8) | | | | | | 0.5GB | | | | | | Logical | | | | | +-------------------------+ | | | +-------------------------------+ | | | | +-------------------------------+ | | | FAT32 | | | | Win98 C: | | | | (/dev/hda3) | | | | 3GB | | | | Primary Bootable(Active) | | | +-------------------------------+ | | | | +-------------------------------+ | | | FAT32 | | | | Win98 D: | | | | (/dev/hda4) | | | | 残り全部GB | | | | Primary | | | +-------------------------------+ | +-------------------------------------+ |
のようにしようということにした。
4つしか作ることの許されていない基本領域を2つも窓に捧げるとは、窓に優遇しすぎである。
窓98のインストールを始める前にすること
ベタだが、「バックアップは取ろう」とかそんな話だろう。
筆者はもちろんとらなかったが.....。
筆者が思うに、バックアップに匹敵する程大事なことがある。
それはLinuxを起動させるための手段を用意しておくことである。
悪名高き「HDのMBRを窓起動専用に上書きされてしまうトラップ」に対抗するためである。
もし仮にWindowsのインストールに成功してしまえばハードディスクからはWindowsしか起動できなくなる。
このとき、Linuxの起動フロッピーがなければもう二度とLinuxを起動できなくなるかもしれないのである。
(ぇ?loadlin.exe使うって?それは失礼しました)
Linux起動用フロッピーをもう既に持っている人もあろうかと思う。
これは直接カーネルにアクセスするものである。
できればWin98も一緒に起動できるようなフロッピーができたら嬉しい。
これを叶えるには、LILOをフロッピーにインストールするのがよいと思う。
筆者の環境では、/etc/lilo.confがliloの設定となる。
rootで以下のようにファイルを書き換え、/sbin/lilo -vを実行した。
lba32 # boot=/dev/hda # MBRにLILOをインストールせよ、という意味 boot=/dev/fd0 # フロッピーにLILOをインストールせよ、という意味 root=/dev/hda1 install=/boot/boot.b map=/boot/map delay=20 vga=normal default=Linux image=/vmlinuz label=Linux read-only image=/vmlinuz.old label=LinuxOLD read-only optional other=/dev/hda3 label=win table=/dev/hda |
これにより、フロッピーディスクをドライブに入れたままPCを起動すると、LILOが上がるようになる。
2秒待つと勝手にlinuxが上がり、シフトを押してLILOのboot:プロンプトを出して"win"と打てばwindowsが起動するという次第である。
窓98のインストールを始めることにする。
窓98のインストールディスクはあるのだが、これを読むためのフロッピーディスクがないので作ることにする。
窓98のインストーラ起動のためのディスクを作る際のポイントはCD-ROMを扱えるようにすることのようである。
Win98起動用フロッピーディスクは通常2枚要るのだが、これは1枚で済むのがよい。
(ただ、要らないファイルを消すだけだが.....)
まず、だれかからWin98マシンを借り、「コントロールパネル」の「アプリケーションの追加と削除」からフロッピーディスクを起動専用でフォーマット。
(マイコンピュータ→Cドライブ→右クリック・フォーマットで「起動専用」フォーマットをしても失敗した)
フォーマット完了後にフロッピー内の要らないファイルを消し、必要なファイルをWin98マシンからコピーする。
とりあえず必要なファイルを記す。
ank16.fnt biling.sys config.sys format.com jfont.sys mscdex.exe ank19.fnt btcdrom.sys drvspace.bin himem.sys jkeyb.sys msdos.sys command.com edit.exe io.sys jkeybrd.sys oakcdrom.sys autoexec.bat fdisk.exe jdisp.sys kanji16.fnt |
ただし、autoexec.batとconfig.sysは自分で編集をしたもの、oakcdrom.sysはWin98マシンのCD-ROMドライブのドライバである。
お使いのCD-ROMドライブのドライバを使用することをすすめる。
ただ、CD-ROMドライブの仕様に各社大差がありそうもないので、案外他社のドライバでも動いたりしてしまう。
次に、実際に用いたautoexec.batとconfig.sysの中身を紹介。
autoexec.batの中身 @echo off LH MSCDEX.EXE /D:MSCD001 /L:Q config.sysの中身 FILES=60 BUFFERS=20 DOS=HIGH,UMB LASTDRIVE=Z SHELL=A:\COMMAND.COM DEVICE=HIMEM.SYS DEVICEHIGH=BILING.SYS DEVICEHIGH=JFONT.SYS /MSG=OFF DEVICEHIGH=JDISP.SYS /HS=LC DEVICEHIGH=JKEYB.SYS DEVICEHIGH=OAKCDROM.SYS /D:MSCD001 REM DEVICE=BTCDROM.SYS /D:CDROM001 |
autoexec.batでは、CD-ROMをQドライブとしてアクセスするように書いた。
config.sysでは、DEVICEHIGH=OAKCDROM.SYS /D:MSCD001のように書いてCD-ROMドライバを指定している。
なお、REMで始まる行はいわゆる「コメントアウトされる」のと同じ状態になる。
よって、最後の行はコメントアウトされているわけである。
最後に言うのも何だが、このファイルの文字コードはShift-jisにしよう。
起動フロッピーができたら、ドライブに挿してPCを起動する。 フロッピー内に必要ファイルがあり、上記2つのファイルが適切に書かれているようなら
Starting Windows 98 .... |
などと表示され、command.comが動き出す。
ただ言っておくが、ここでWindows 98が本当に起動したわけではない。
善良なユーザはこのメッセージにだまされないようにしたい。
ちなみに、ここでうまく"Windows 98"があがらず
PRESS A KEY TO REBOOT |
といわれてしまい止まってしまう場合は、今度からSHIFTキーを押しながらPCをブートするとうまくいく場合があるようである。
さて、うまくWindows 98が起動したら、以下のようなプロンプトが出ているに違いない。
autoexecを実行しているのは、こうしないとCD-ROMドライブを認識してくれないからである。
うまく認識しないとき(以下の例の場合ではQドライブへ移動できない場合など)はこのautoexecを実行してみるといいかもしれない。
A:\> fdisk A:\> format D: A:\> format C: A:\> autoexec A:\> Q: Q:\> setup |
fdiskでパーティションを整え、ドライブのフォーマットを行い、CD-ROM上のsetup.exeを実行するのが基本的なセットアップ方だろう。
窓98のfdiskは機能があまりよくなく、ドライブDを複数の論理ドライブとして切ることを許さなかった。
なお、setupにいろいろな引数を付けて実行することもできる。
どんな引数があるのか見るには普通にQ:\> setup /?でよい。
とりあえずこれで、Win98のインストールが開始する。
インストールが終わったら、窓起動専用に書き換えられてしまった哀れなMBRを救済しよう。
Linuxの起動ディスクや、LILOをインストールした起動ディスクなどを用いてLinuxを起動させる。
lilo.confを書き換え、LILOをMBRにインストールしてしまえば、MBRからLinuxもWindowsも起動できるようになる。
おまけ情報1
筆者の環境では、ドライブDが正常に扱えないという悲しい自体に陥った。
LBAの設定がダメなんだよゴルァ、とWindowsから言われてしまったので、
マザーボードにくっついてきた「PertitionMagic6.0」を使用してみた。
なんとかD:にアクセスできるようにはなったが、いまだ恐ろしくてドライブDはあまり使用していない。
Win98に3GBしか使っていないのはちょっと恥ずかしい。
おまけ情報2
なぜCドライブだけbootableのフラグが上がっているのだろう。
筆者もすこし再考してしまった。
Windowsの起動ディスクを用いてWindowsを起動したいときに、Windowsのインストールされたパーティションを発見させるためだったと思う。
DOS/V自体が窓のために作られたハードであったことの名残であろう。
Windowsのブートでは、最初に見つけた「bootフラグのついているパーティション(Active)」をWindowsのインストールされたパーティションだと頭ごなしに決めつけてしまう。
(だからwin9x同士の同居もしづらいんでしょうね、NTローダとかいうのはもうちょっと高機能らしいのだが....)
それからWindows9xのfdiskであるが、これは2つ以上の論理領域がつくれないとかいう噂を聞いた。
┐(´ー`)┌これだからげいつOSは.....、と思ったものの、Linuxのcfdiskでもできなかった.......。
linuxのfdiskはどうだろうか、今度試そうと思っている。