プレインストールされたノートPCは多くの場合、一つのパーティションに
Windowsなどが導入されています。このような場合に、FreeBSDなどを導入しようとすると、通常ではハードディスク全体のバックアップを取って
から、FDDなどで立ち上げてパーティションを分割し、先に取ったバックアップをレストアしなければなりません(まあ、安全のためにバックアップは取った
方が良いのですが)。更に、この場合には、当然元のパーティションを分割しているのですから、レストア先のパーティションは元のパーティションに比べて小
さくなっています。このような場合に対しても、バックアップツールが対応していないといけません。そうは言っても、レストアするのは結構面倒ですので、
Windows を生かしたまま、パーティションサイズを縮小することが出来れば非常に楽です。
バックアップツールのお勧め
筆者のお勧めバックアップツールは Acronis
True Image です。製品ですが、ベクターからダウンロードバージョンで購入すると5460円です。このツールの良いところは、レストア
の際に、DOSではなく、Linuxを使ってブートする点にあります。そのために、Linuxで認識できるデバイスなら何でもレストアのメディアに使うこ
とが出来、バックアップも差分バックアップがWindows上から取れるので非常に快適に操作できます。
NTFSをリサイズするツールは ntfsresize と言い、多くの Linux
に含まれています。また、NetBSDなどにも移植されているようです。ここでは、FreeBSDをインストールすることを考えますが、すると
FreeBSD をインストールするために Linux をインストールしなければならないかのように思われるかも知れません。しかし、Linux
をインストールしなくとも ntfsresize を利用することは可能です。それは、例えば Linux のインストールCDを立ち上げれば、そこに
ntfsresize あるいは、そのフロントエンドが用意されているからです。しかし、更にここには
落とし穴があります。それは、ノートPCがCD-ROMを内蔵している場合に
は、Linux CD-ROMを立ち上げれば良いのですが、
ノートPCにCD-
ROMがなく、しかも純正CD-ROMのようなATAPI CD-ROMに見えるCD-ROM装置も持っておらず、
USB接続のCD-ROMのみがある場合です。このような場合、不幸なことに多
くのLinuxのインストールCDではUSBをうまく使えないか、あるいは面倒なことになるかのどちらかなようです(しかも、ntfsresizeが装備
されているインストーラという制限があるのですから)。という訳で、
こ
こではFDを用いて、パーティションを切ることを考えます。幸いFDならば、USB
FDでも最近のBIOSは通常のFDとしてシュミレート出来るので、必ず使える手段と思われます。
上記のツールはフロッピーディスクから小さなLinuxシステムを立ち上げるものです。従って、ダウンロードしたイメージをフロッピーに焼かないといけま
せんが、単なるコピーでは作成できない点に注意してください。(バイナリーイメージをそのままファイルにしています。つまり、CD-ROMのISOイメー
ジのFDD版だと思えば良いでしょう。)これをFDDに焼くには、
rawrite
または
fdimage
を利用します。どちらもDOSのツールですので、commandツールから起動してください。
ここでは、fdimage が c:\bin にあり、イメージファイルがカレントディレクトリにあるとして、
> copy partboot-1.6.21-usb.img
partboot.img (
長い名前が通らないため )
> c:\bin\fdimage
partboot.img a:
として、FDに書き込みます。(但し、オリジナルのファイル名 partboot-1.6.21-usb.img を partboot.img
に変更しないと、fdimage.exe は読み込めないので注意してください)
次に、同様にして、2枚目のFDに、
>
c:\bin\fdimage supp.img a:
として書き込みます。
%--------------
PartBoot 1.6.21
などでは補助ディスクに既にありますので、この作業は不必要です-----------------
最後に、NTFSパーティションを
リ
サイズするツール ntfsresize をダウンロードし、解凍したファイルをフォーマットした3枚目のFDにコピーしておきます。
%-----------------------------------------------------------------------------------------
-----------------
これで準備は終わりで、いよいよパーティションの縮小作業をしましょう。
パーティションの縮小
先程作ったFDの1枚目からブートさせます。
ブートしたら、FDを2枚目のものに入れ替えてから、以下のようにコマンドに打ち込みます。
#
mount /dev/sda /mnt/floppy
これで、2枚目のFDが Linux (ブートしたOS)から見えるようになるので、以下のようにインストーラを実行します。
#
/mnt/floppy/install
この作業は、2枚目のディスクの中身をメモリ上に展開・コピーして、利用可能にします。
これで、2
枚目のディスクは不要ですので、以下のコマンドを実行します。
#
umount /dev/sda
FD を抜きます。
%--------------
PartBoot 1.6.21
などでは補助ディスクに既にありますので、この作業は不必要です-----------------
#
mount -t vfat /dev/sda /mnt/floppy
ntfsresize
は静的にリンクされた実行ファイルですので、単独で実行できますが、いちいちフロッピーにアクセスすると面倒なので、コピーをしておきましょう。
# cp
/mnt/floppy/ntfsresize /bin
これで、3枚目のFDも不要ですので、以下のコマンドを実行して、FDを抜きます。
#
umount /dev/sda
%--------------- 1.6.21 で不要な作業はここまで ----------------------
さて、いよいよ ntfsresize
を動かしますが、いきなりNTFSをいじるのは危険ですので、まず、現在のHDDのディスク情報を表示し、どれだけリサイズできるかを調査します
(ntfsresize は /usr/local/sbin に導入されています)。
#
ntfsresize -i /dev/hda1
これを実行すると、色々と表示されますが、(freeing xxxxMB)
という表示が最後に表示され、これが現在のパーティションを縮小して、どれだけ削ることが出来るかを表しています。
次に、本当にリサイズが実行できるかどうかを、以下のようにしてテストします。ここではディスクが40Gあって、一つのパーティションに取られているとし
て、5Gをそこから減らして、40G を 35G に削減することが可能か否かをテストしてみます。
#
ntfsresize -n -s 35000M /dev/hda1
うまく減らせるようだと、
run
ended successfully. と最後に表示されます。 もし、デフラグを忘れていたら、デフラグをしろと言われます。
いよいよ実際に NTFS を削減してみましょう。
#
ntfsresize -s 35000M /dev/hda1
うまく実行出来たら、fdisk を使えと言われ、その際の注意点が英語で表示されます。
ここで理解しておくべきことは、ntfsresize はあくまでもNTFSに関する
リ
サイズ問題のみを解消するツールであって、パーティションテーブルなどは
操作してくれない点です。つまり、パーティションテーブルは上記のNTFSリサ
イズの結果と
矛盾がないように、自分で操作しなければならないので
す。そのために、fdisk を用いて hda1
に相当する最初のパーティションを一旦削除し、リサイズしたサイズに一致するサイズのパーティションとして、再度割り当て直すという中々の力技を行う必要
があるのです。もし、これに失敗したら、素直にディスクをパーティションに切ってから、Windowsをレストアし、FreeBSDをインストールすると
いう基本的手法に戻るしかありません。
では、実際の作業を行いましょう。これらの作業は全て先程ブートしたLinuxから行うことが出来ます。
#
fdisk /dev/hda
...
Command (m for help):p
上記のように、fdisk を動かして、: の後ろにコマンド
p
を入力します。このコマンドは現在のパーティションテーブルを表示します(パーティションテーブルですから、まだパーティションは一つで、大きさは40G
のままです!)。
Command (m for help):d
パーティションを削除します(まだ実際には削除されないので大丈夫です)。
Partition number (1): 1
ここでは、パーティションは一つしかないものとします
Command (m for help): n
次に、パーティションを作り直します(コマンド
n )。
Command action
l logical (5 or over)
p primary partition (1-4)
p
プライマリパーティション(コマンド
p)を作成します。
Partition number (1): 1
パーティション1を作成します。
First cylinder (1...):
パーティションは一つもないのでスタートシリンダは1です。何も入力せずに、リターンキーを叩いて構いません。
Last cylinder p or +size or +sizeM
+sizeK ([882]-1023): +35000M
ここが重要で、先にリサイズしたサイズと合っていないといけません。
ここでは35000M にリサイズしたので、
+35000M
を入力しています。
Command (m for help): t
次に、作成したパーティションのタイプを設定します(コマンド
t )。
Partition number (1): 1
パーティションの1に対して、
hex code(type L): 7
パーティションタイプをNTFS の
7番に設定します。
最後に、パーティション1からブート可能になるように active に設定します。
Command (m for help): a
partition number(1-4): 1
これで、設定は終わりですが、設定が正しいかどうかを見るために、現在編集中のパーティションテーブル情報を見てみます。
Command (m for help): p
これまでの設定が正しいかじっくりと確認してください。問題がなければ、ここで初めてディスクに書き込みます。
Command (m for help): w
これで、作業は終わりですが、一旦リブートして、Windows からブートするかどうか確かめてください。リブートすると、chkdsk
がかかり、正常に
chkdsk
が通ればOKです。但し、起動後Windowsがデバイス状態の変化を検知して再度のリブートを要求することがあります(私の場合はそうでした)。
さて、これでノートにインストールされているWindowsのパーティションを縮小して、FreeBSDをいれるための余地が出来たので、実際に
FreeBSDのインストールに移ります。(2つめのパーティションはFreeBSDのインストーラから設定すれば良いでしょう。)
参考
http://sky-mue.jp/linux/plamo/4.x/4.0_diff.html#ntfsresize
http://www003.upp.so-net.ne.jp/tshiono/partboot-usb/index-jp.html