NTFSをリサイズしてLinux用領域を作成

Linux活用日記

最終更新日: 2003年7月29日

この文書では, NTFS でフォーマットされたパーテーションしか存在しないパソコンに, 既存のデータを壊さず Linux のパーテーションを作成しインストールする方法についてご紹介します. この方法は linux.co.jp 掲示板に書き込みされた方からご紹介を頂き, 私が手元のパソコンで検証したものです. 良いソフトウェアをご紹介いただきありがとうございました.

[確認事項]:
この文書でご紹介する内容は大きな危険を伴いますので, 実際にこの手順を行う場合は必ず事前に必要なデータのバックアップを取るようにしておいて下さい. また, すべてコマンド操作で行っていきますので, コマンド操作に不慣れな方にはお勧めできません. 失敗すると最悪の場合, 既存の OS (Windows) の再セットアップを行なうハメになることをご了解下さい.

尚, CDROM から起動する Linux ディストリビューション「KNOPPIX」には, ここでご紹介する "ntfsresize" のフロントエンドである "QTParted" が含まれているそうです. こちらだと比較的簡単な操作で Windows XP など NTFS パーテーションのサイズ変更が出来るようですので, 事前にこの「KNOPPIX」でサイズ変更してからインストールしたいディストリビューションのセットアップを行なってもいいかも知れません.

関連リンク:
ntfsresize
KNOPPIX
QTParted の操作事例 (PDF)


NTFS をリサイズして Linux 用領域を作成する方法


すべてのパーテーションが NTFS でフォーマットされていて(Windows 2000/XP など), それぞれに Windows のデータが入っていると Linux インストール用の領域を確保できません. こういった状況では市販のユーティリティ(パーテーションマジック® など)を使って既存の NTFS パーテーションをリサイズ出来ますが, これらのユーティリティはなかなか高価ですし, 出来れば無償のツールでやってみたいものです. 私自身は普段, 「パーテーションマジック® 」を使っているのですが, 先日, 無償のツールを使って NTFS をリサイズして Linux 用の領域を作成する方法があるという情報を頂きました.

この方法をご紹介いただいたのは linux.co..jp の掲示板に書き込みをされた方なのですが大変わかりやすく詳しく書かれていました. 詳細は下記の同掲示板スレッドをご覧いただければ良いかと思います. この文書では私が検証してみた内容についてご紹介したいと思います.

linux.co.jp 掲示板過去ログ

私が検証した環境は次のとおりです.

既存の OS: Windows 2000
新たにインストールする OS: Red Hat Linux 8.0

Windows 2000 で使用している Dドライブ(5GB) のうち, 3GB をこれからご紹介する方法で Linux 用パーテーションとして切り出します.

まず, NTFS でフォーマットされたパーテーションを縮小し, 空き領域を開放しなければなりません. そのために NTFS パーテーションをリサイズできるソフトウェア "ntfsrrsize" を次の Web サイトを参照の上, ダウンロードします. このサイトにはダウンロード元と利用方法が詳しく書かれています.

http://mlf.linux.rulez.org/mlf/ezaz/ntfsresize.html

ntfsresize-static-1.7.1.tar.gz をダウンロードし, Windows 上で展開します. 私の場合は Lhaplus という無償の圧縮解凍ツールを使用しました. 次に DOS フォーマット済みのフロッピーディスクを一枚用意します. そして解凍した ntfsresize-static-1.7.1.tar.gz の中から ntfsresize という名前のファイルをフロッピーディスクにコピーします.

次にデフラグを実行しておきます. これをやっておかないと ntfsresize が動作しないことがあります. デフラグが終わったら一旦, パソコンの電源を落とします. そして Red Hat Linux 8.0 のセットアップ ディスク を 挿入し, 電源を入れます.

Red Hat Linux のインストーラが起動したら適当なところで Ctrl+Alt+F2 キーを押してコンソールモードに切り替えます. そしてさきほど ntfsresize をコピーしたフロッピーディスクを FD ドライブに挿入します.

次にフロッピーディスクをマウントするために次のコマンドを実行します.

# mkdir /floppy
# mount -t vfat /dev/fd0 /floppy
# cd floppy

これでフロッピーディスクに入っている ntfsresize を利用できるようになります. その前にまず fdisk コマンドでパーテーションの状況を見てみましょう. 私の環境では Windows の Dドライブは /dev/hda2 になりますので次のように入力します.

# fdisk -l /dev/hda

パーテーションをどれぐらい縮小できるかを確認するには次のコマンドを実行します. これで5GBから2GBに縮小出来るかが確認できます.

# ./ntfsresize -i /dev/hda2

次に ntfsresize で NTFS パーテーションを正常にリサイズできるかどうかテストしてみましょう. テストを行うには次のコマンドを実行します.

# ./ntfsresize -n -s2000M /dev/hda2

このテストで問題なければ次のようなメッセージが表示されます.

The read-only test run ended successfully.

もしも事前にデフラグを行っておらずフラグメントが進んでいるのであれば, まずデフラグを行うよう促すエラーメッセージが表示されます.

問題なければ実際にリサイズをしてみましょう. 5GBから2GBにリサイズを行うには次のコマンドを実行します.

# ./ntfsresize -s2000M /dev/hda2

正常に終了したら次に fdisk でパーテーション操作を行います. fdisk は次のコマンドで起動します.

# fdisk /dev/hda

fdisk が起動したら次のようなプロンプトが表示されているはずです.

Command (m for help):

ここで p と入力します. すると次のように表示されるはずです.

Device Boot Start End Blocks Id System
/dev/hda1 * 1 881 6660328+ 7 NTFS/HPFS
/dev/hda2 : 882 1567 5186160 7 NTFS/HPFS

今回は Windows の D ドライブに当たるのが /dev/hda2 になっています. そしてさきほど ntfsresize でこの /dev/hda2 のサイズを 5GB から 2GB に変更して残り 3GB を Linux 用に空けるようにしましたので次のように作業します. d と入力して下さい.

Command (m for help): d

この d はパーテーションを削除するコマンドです. パーテーションを削除するというと恐い気がしますが, Linux の fdisk は Windows の fdisk と違って最後に保存しなければ行った操作内容は反映されませんのでいきなり削除されることはありません.

d と入力すると次のように表示されます. ここで /dev/hda2 を一旦削除するので 2 と入力します.

Partition number (1-2): 2

次に改めて Windows 用に 2GB, Linux 用に 3GB のパーテーションを作成するので n と入力します.

Command (m for help): n

まず Windows 用に割り当て直します. 元々基本領域だったので今回 p と入力します. ただし拡張領域だった場合は l (エル) と入力した後にパーテーションナンバー(ほとんどの場合 5 でいいでしょう) を入力する必要があります.

Command action
l logical (5 or over)
p primary partition (1-4)
p

次にパーテーションナンバー 2 を入力します.

Partition number (1-2): 2

次にシリンダ値を入力します.

First cylinder (882-1576): 882

次にパーテーションサイズを 2GB と入力します.

Last cylinder p or +size or +sizeM +sizeK ([882]-1023): +2000M

このあと, p と入力してパーテーション一覧を表示させてみます.

Command (m for help): p

すると次のように表示されるはずです.

Device Boot Start End Blocks Id System
/dev/hda1 * 1 881 6660328+ 7 NTFS/HPFS
/dev/hda2 : 882 1288 5186160 83 Linux

Linux の fdisk を使った場合, パーテーション ID は初期値が 83(Linux) になりますので, これを本来の 7(NTFS) に直しますので次のように入力します.

Command (m for help): t
Partition number (1-2): 2

このあと 7 と入力します. そのあと再度パーテーション一覧を表示すると次のように NTFS に変わっているはずです.

Device Boot Start End Blocks Id System
/dev/hda1 * 1 881 6660328+ 7 NTFS/HPFS
/dev/hda2 : 882 1288 5186160 7 NTFS/HPFS

次に Linux 用の 3GB のパーテーションを作成します. 基本領域の場合は p, 拡張領域内の論理パーテーションであれば, さきほど 5 でしたので今度は l (エル) のあと 6 と入力します.

Command action
l logical (5 or over)
p primary partition (1-4)
p

次にパーテーションナンバー 2 を入力します.

Partition number (1-2): 3

次にシリンダ値を入力します.

First cylinder (1289-1576): 1289

次にパーテーションサイズを 3GB と入力します.

Last cylinder p or +size or +sizeM +sizeK ([1289]-1576): +3000M

このあと, p と入力してパーテーション一覧を表示させてみます.

Command (m for help): p

すると次のように表示されるはずです.

Device Boot Start End Blocks Id System
/dev/hda1 * 1 881 6660328+ 7 NTFS/HPFS
/dev/hda2 : 882 1288 2076160 83 Linux
/dev/hda3 : 1289 1576 3115150 83 Linux

以上の操作で問題がなければ次のコマンドで保存して, ここまでの変更内容を反映させます.

Command (m for help): w

もしも変更内容を保存せずに終了したい場合は q と入力します.

以上で完了です. このあと

Windows を起動すると D ドライブが 5GB から 2GB に縮小されているはずです. そして Linux をインストールする時にも 3GB が Linux のパーテーションとして認識されているでしょう.

ノートパソコンで FDD と CD-ROM ドライブを同時使用できない場合


ここまでの手順は, Linux のセットアップ中にフロッピーディスクを使用して行なうものでした. しかしノートパソコンで, フロッピーディスクドライブと CD-ROM ドライブを同時使用できない場合はこの手順で行うことが出来ません. このような場合は, Linux のインストール CD ではなくフロッピーディスクだけで起動する FDLinux を利用する方法があります.

FDLinux にもいろいろと種類がありますが, ここでは上記掲示板から情報を下さった方からご紹介いただいた HAL91 を使ってみたいと思います.

HAL91 は次のサイトから入手できます.

http://www.itm.tu-clausthal.de/~perle/hal91/

HAL91 のフロッピーディスクを作成するには次の手順で行います. ここでは Windows 上で作成する手順をご説明します.

まず, このサイトから hal91.img と rawrite2.exe を入手します. そのあとフロッピーディスクドライブにフォーマット済みのフロッピーディスクを挿入し, コマンドプロンプトを起動して, コマンドラインから次のコマンドを実行します.

C:\ > rawrite2 -f hal91.img -d a:

これでフロッピーディスクに書き込まれます. そのあとパソコンの電源を落として, このフロッピーディスクをフロッピーディスクドライブに挿入してから電源を入れると HAL91 が起動します. 起動したあとは HAL91 はメモリ上に読み込まれていますのでフロッピーディスクを抜いても問題ありませんので抜き出します. 代わりに上記のntfsresize を入れたフロッピーディスクを挿入して下さい. このあとは上記と同じ手順で ntfsresize と fdisk を使ってパーテーション操作を行えます.



HOME