マルチOS環境 >  マルチ・ブートを実現する (Windows Xp → マルチOS環境)

080623
090411改

Windows パソコンは一般的にハード・ディスクの全域を占拠している。たまに購入時から二つの領域に区分されている場合があるかもしれない。
つい数年まえまでは、この区分を増やすのが大変なことであったそうだが、今は無料のソフトをつかって簡単にできるようになった。だが、分割作業のまえにやることがある。ハードディスク(以下HD) の中身のデータなどをHDの前方部分に集結させなければならない。その上で分割作業にはいるわけだ。

◎主な作業の流れ

 1)仮想メモリを切る。目的は仮想メモリ用に使われているHD上の当該部分を一時的に無効にして、2)のデフラグメント作業の効率をあげること。

 2)JkDefrag というデータ移動・集結ソフトをダウンロードしてきて、集結作業をおこなう。どこにソフトがあるかはgoogle で簡単にわかる。ダウンロードは簡単、説明のファイルが添付されているので作業も簡単にできる。この作業をおこなうとHDの後ろ部分は何もはいっていないスカスカ状態になる。

 3)ここで領域分割ソフト Gparted をつかわなくてはならないが、Gparted は Windows で動くソフトではない。筆者の場合、1CDリナックスの一種の Puppy Linux に内蔵されている Gparted を利用した。ということは、Puppy Linux の入った CD をつくる必要がある。
   Puppy Linux の入ったCDをつくるには、Puppy のサイトからそのイメージ・ファイル(拡張子.iso)をダウンロードしてきて、それをCDに焼き付ける。isoファイルを焼くための専用ソフトは筆者のばあい burncdcc をつかった。これで 1CDリナックスの一つが手に入ったわけだが、これがどんなに儲けものであったかは後にわかる。

 4) Gparted をつかって Windows 領域をぐぐっと前の方へ圧縮して未割り当て領域をつくる。

 5)つぎに、その未割り当て領域に、ファイル・システムを指定した新しい区画を設定する。とりあえずデータ用に1区画、Windows とは別のOS用に2区画を新設する。Windows の区画をあわせると4区画、たしか上限一杯のはずだ。こまかい話だが、そのうち1区画を拡張領域に指定すると、さらに何区分かが可能になり、そこにスワップ領域ともう一つOSのための領域をつくることも可能だ。

 6)そして、いよいよ新OS をインストールすることになる。だがこれで終わりではない。

 7)マルチ・ブートなんだから、どのOSを起動するかの選択の必要がある。普通は最後にインストールしたOSに付随するブート・ローダがすべてのOSの所在をまとめたリストを作ってくれるはずなのだが、これが意外に頼りない。対策が必要となる。


大きな流れはざっと以上のとおりだ。それでは具体的作業にはいる。

   ◆
1.仮想メモリを切る

  JkDefrag を使うまえにやることがある。それは仮想メモリ用に使われているHD上の部分を一時的に無効にして効率をあげようというのだ。Windows 内蔵のデフラグを使うとHDの一部分が緑色になっているのが見える。これらは一般にページング・ファイルと呼ぶらしいが要するに仮想メモリ上の残骸だ。ところがこの残骸がしぶとくデフラグに抵抗して移動を拒否する。JkDefrag に対しても拒絶を続けるかどうかは知らないが、念のため無抵抗状態にする。
  方法: スタート/ マイコンピュータ右クリック/ プロパティ/ 詳細設定タブ/ パフォーマンス設定ボタン/ 詳細設定タブ/ 仮想メモリサイズ変更ボタン/ ページングファイルなしチェック/ 右設定ボタン/ 以下OKボタンを3回押し下げる

※筆者はふだん内臓デフラグを多用しているが、その場合でも仮想メモリはゼロにして作業し、あとで復旧させている。

   ◆
2.JkDefragを使って HDの中身(ソフト、データ)を前方に集結させる。

JkDefrag のサイトはすぐわかる。以前筆者がダウンロードし今も使っているのは JkDefrag-3.10.zip。もっと新しいのが置いてあるかもしれない。ただちにダウンロード。その場で解凍。docフォルダの中に解説の htmlファイルがある。使用例が参考になる。exeファアイルがいくつか見えるが、けしてクリックしないこと。コマンドプロンプトから使うのが正しい使用法だ。

いろいろなオプションがつけられるが、今回の目的はデフラグメントそれ自体というよりは、前方圧縮にあるので、それ用にオプションを選択する。

方法:
1)スタート/ すべてのプログラム/ アクセサリ/ コマンドプロンプト/ でプロンプトが点滅。
2)C:\xxxx\xxxx\xxx>cd  と2字をうつ (けしてEnterしないこと)
3)エクスプローラで JkDefrag.exe の入っているフォルダのアドレス欄をマウスでコピーし、
4)コマンドプロンプトの黒画面の任意の場所に貼り付け、Enter 押し下げ 
5)C:\xxxxxx\xxxxxx\xxxxx\xx>jkdefrag.exe -a 5 C: としてEnter 押し下げ(※)
6)ザッと目の前にHD内部の分布を示すきれいな画面が広がり、すこしずつ形が変わっていくのが見える。あとはHDのサイズにもよるが、30分~1時間は覚悟してお茶にする。

JkDefrag を開始して、ものの10分もすると目の前のカオスが大分下に沈みはじめる。下がHDの若い番地のようだ。空虚になった部分にほんの小さな点がいくつも残っているのが見えるが、別に移動もれではなく、画面上の残像のようだ。やがて、カオスが収まり底に分厚い堆積物ができあがる。HDの後ろがスカスカになったということ。

 (※)上の5)の -a 5 というのがオプションだ。意味はHTMLファイルに詳しい。また、C; とあるのは、圧縮したいドライブが Cドライブの場合である。

   ◆
3.Puppy Linux のCDを焼く

本来なら、ここで分割ソフト GParted の作業にはいるのだが、筆者にはそれが無かった。あれこれ検索すると、GParted だけのCDをつくる方法もあるようであったが、それよりGPartedを内蔵する Puppy Linux のCDを1枚つくるほうが面白そうだった。1CDを何と呼ぶのだろうか。筆者は勝手にワンシーディーとよぶ。別名ライブCD。インストールCDとは違うということらしい。

1)Puppy Linux のサイトはすぐわかるから、ただちに puppy-301-JP.iso をダウンロードした。後継バージョンがあるがどちらがよいかはIt's up to YOU だ。

2)拡張子 .iso のイメージファイルをCDに焼くのは普通のやり方とは違う。特別のコピーソフトが
必要だ。筆者は burncdcc をつかった。これもこの時はじめてダウンロードした。

3) burncdcc の起動はわかり易い。Browseボタンで isoファイルの場所を特定し、ReadVerify と Finalize にチェックをいれて下のStartボタンをおすと、CD-Rを入れろと指示がでる。真更なCD-R か CD-R/W をいれてボタンをおす。焼くときの倍速にご注意を。

4)こうして出来上がった Puppy Linux のCDをトレイにいれて、PCを再起動すると、別世界かと思いきや、何か Windows で見慣れた雰囲気のただようトップ画面が広がる。

   ◆
4.Gparted で未割り当て領域をつくる

Puppy Linux については別の機会に書くとする。いまは領域分割ソフトの操作だ。分割ソフトといってもいろいろあるそうだが、有名なところでは QTParted と GParted だろう。今回は筆者のような初心者にやさしい GParted をつかう。

1)トップ画面左下メニュー/ システム/ GPartedパーティションマネジャーをクリック/ で開くと、うす暗い窓の下、スケーラが忙しく働いている。
2)待つこと数秒、画面がはっきりすると、Windows でも見慣れた HDの内部のグラフが現れ、その中に /dev/hda1 の文字が、また下に説明が見える。この dev とはdevice、hdaとはHDの第一番 のこと。

3)ためしにグラフ(横長長方形)の文字のあたりをクリックすると、長方形の周囲が破線にかわり、
グラフのすぐ上の欄に、今やれる操作がならんでいる。ボヤッとしている操作は選択できない。

4)ためしにその中の リサイズ/移動アイコン をクリックで、もう一つ小窓がひらく。これが領域縮小のための作業台だ。棒グラフの左半分ぐらいが黄色表示のはず。そこにデータなどが詰まっている。

5)右端の三角印をクリックしたまま、左へ移動すると hda1 の面積が縮小する。適当な所でクリックを離し、枠下の リサイズ・ボタンをおすと操作を予約したことになる。

6)そして、編集メニューから Apply All Operations をクリックで自動作業開始となる。

7)縮小作業のあとは、未割り当て領域に新規パーティションを設定する作業となる。今度は New アイコンからはじまって、いろいろの操作がつづく。

とまあ、読んでいてもわかりにくいから、とにかくご自分で試していただこう。と、その前に検索で操作法を調べてください。

余談だが、昨年QTParted をつかってデータ用の領域をつくろうとして、相次ぐWarning Messageにおどされ、あきらめたことがあった。きっと今なら使いこなせたとは思う。

   ◆
5.Gparted で新規パーティションを作成する

GParted での作成作業は簡単だ。途中でパーティション(領域)の種類とファイルタイプをきめなくてはならないが、以下の説明を読んでいただければおわかりになるはず。

まず、未割り当ての領域を幾つのパーティションに分割するかだ。GParted さえあれば、のちのちいくらでも変更がきくから心配することでもないが、プログラムやデータで詰まった区画を変更するのは結構手間ひまかかり、危険も大きいから、まえもって大まかな構想をたてるのがよいと思う。

当面は新OS用とデータ用、それにSwap領域用もある。将来を考えて基本領域2つ、拡張領域1つというのはどうであろうか。といってもHDの容量次第の問題ではあるが、。一般に ubuntu クラスの中規模OSでは7GB以上、Puppy Linux、Damn Small Linuxなどの軽量OSでも3GB以上は欲しいところだから、それを目安に区画の数を決める。

なお、拡張領域というのは、さらに中をいくつかの論理領域に区分して、データ用、OS用、Swap用などに使用できる(筆者の拡張領域は今のところ3つにわかれている)。また、ファイルタイプは Windows で見慣れた FAT32、NTFSのほかに、Linux用に ext2、ext3 など沢山あるらしいが、一応 Windows、Linux 共用のデータ領域にする前提で FAT32 あたりでいかがか。(一般に、OSをインストールするときには領域の再設定をするので適当でよい。)

また余談だが、Windows に ext2fsd というプログラム(一種のドライバだそうだ) をインストールすると、ファイルタイプが ext2、 ext3 の領域も Windows から読み書きできるらしいから、共用のデータ領域を FAT32 にする必要性は下がっているかもしれない。

   ◆
(6)パーティションが確定したら、いよいよ目的のパーティションを指定して、新OSをインストールする段になるが、これについては情報が山ほどもあるので、そちらに譲る。 ここではいくつかのOSが無事インストールされたとして、それに続くブートのことを書く。

   ◆
7.ブートプログラムはマルチ・ブートの肝

1)パソコンの電源を投入すると、 BIOSに続いてブートプログラムが動き出し、HDから起動するOSが決定される。複数のOSがHDにインストールされているときはその選択の問題が生じる。

2)ubuntuなどに採用されているブートプログラム Grub の場合、まずHDの一番先頭の部分MBR領域に書き込まれたブートプログラム( stage1)が特定パーティション(※)を指定し、そのパーティションのブートセクタにあるブートプログラム(stage2)が HD 内のすべてのOSの一覧表を画面に出力する。ユーザーがその一つを選択すると、選択されたOSが起動する。

  ※ stage1 が指定するパーティションは最後にインストールされた OS のものが上書き指定されている。くわしくはご自分でしらべられたい。

3)まあ、よくしりもしないことはこのくらいにして、普通であれば最後にインストールしたOSが何もかも上手に塩梅してくれるはずなのだが、OSによっては必ずしもそうでない。それに stage2 の収まっているブートセクタは /boot/grub/ という普通のディレクトリにすぎないから、ユーザが手を加えるのも簡単、それが原因でPC全体が起動不可になる危険性もある。

4)そこで本題の対策である。ひとことでいえば、OS インストール時に HD まかせにしないで、ブートプログラム関係一式を FD に取り込んでしまう、あるいは、いったん FDに取り込んであらためて MBR などにコピーするというのだ。これを保険をかけると表現する人もいらっしゃる。

5)だが、FD にコピーする場面に気づかずインストールが終わっていまい手元になにもない、あるいは気づいたが、そもそも FD環境がなかった人もおられよう。そのうちの前者のケースには、次のような救済策がある

(ubuntuの場合)。
   ****開始**
まず、Windowsで format した FD をFDDに挿入後、LInux のターミナルから以下を入力する
$ sudo mkdir /mnt/floppy
$ sudo mount -t vfat /dev/fd0 /mnt/floppy
$ sudo grub-install --root-directory=/mnt/floppy/ '(fd0)'

$ sudo /usr/sbin/grub
grub> root (fd0)
grub> setup (fd0)
grub> quit
最後に、ファイルマネジャー起動、/boot/grub/menu.lst を /mnt/floppy/boot/grub/ にコピーする
   ****終了**


ここで、umount のあとPC再起動で、FDは首尾よく機能した。
(なお、上記は こちら を参考にさせていただいた。)

6)また、FDD環境にない方でも、 1CD のPuppy Linux を使って、最後にインストールしたOSの/boot/grub/menu.lst を操作することはできる。


   ◆
-----最後に Puppy Linux のこと ------

どうやら表題について書きたい事はほぼメモした。

ところで、いまのところ Puppy をHDにきちんとインストールして大いに重宝している。春以来、Knoppix、Vine Linux、EcoLinux、DSLなどを直にインストールしたり、はやりのエミュレータVMplayerの上で楽しんできたが、結局 ubuntuと Puppy Linuxがのこった。

Puppy の長所をいうとき、その軽量(100MB)・軽快さと内容の充実ぶりをあげるのが普通であろう。勿論賛成だが、一番筆者が心ひかれるのは、常に root権限 で操作できることだ。ファイルマネジャをつかって自分のいるパーティションはおろかマウント済みの他のパーティションのディレクトリにズケズケと入り込み、ファイルをエディタで開いて、ちょいちょいと訂正して保存する、あるいはそれを断りもなく自分のパーティションにコピーしてしまう。まったく傍若無人のふるまいができる。

Unix/Linux の先達方はきっとこの所有権限・アクセス権限のけじめの無さを評価しないだろうし、パッケージ管理の面では弱いから、これ一つというわけにはいかないが、マルチ・ブートの環境では相当便利だと思う。

これからマルチ・ブートに乗り出すご同輩の参考になるかと考えあえて付け加える次第。

inserted by FC2 system