第12章 ディスクストレージの管理
さまざまなメソッドの概要...
12.1. partedで標準パーティション
多くのユーザーは、既存のパーティションテーブルの表示、パーティションのサイズの変更、パーティションの削除、空き領域からのパーティションの追加、またはハードドライブの追加が必要になります。ユーティリティー parted を使用すると、ユーザーはこれらのタスクを実行することができます。本章では、parted を使用してファイルシステムタスクを実行する方法を説明します。
システムのディスク領域の使用状況を表示したり、ディスク領域の使用量を監視する場合は、「ファイルシステム」 を参照してください。
parted ユーティリティーを使用するには、
parted
パッケージがインストールされている。parted を起動するには、root としてシェルプロンプトで parted /dev/sda コマンドを入力します。/dev/sda は、設定するドライブのデバイス名です。(parted)
プロンプトが表示されます。利用可能なコマンドの一覧を表示するには、help と入力します。
パーティションを作成、削除、またはサイズ変更する場合は、デバイスを使用できなくなります(パーティションをマウントできず、swap 領域を有効化できません)。カーネルが変更を適切に認識しないため、パーティションテーブルは使用中の間変更しないでください。データは、パーティションテーブルとマウントされたパーティションが一致しないため、誤ったパーティションに書き込むことで上書きされる可能性があります。最も簡単にこれを実現する方法は、システムをレスキューモードで起動することです。レスキューモードで起動する方法は、5章基本的なシステムの復元 を参照してください。ファイルシステムをマウントするように指示されたら、 を選択します。
または、ドライブに使用中のパーティション (ファイルシステムがアンマウントされないように使用またはロックしているシステムプロセス) がない場合、umount コマンドでパーティションをアンマウントし、swapoff コマンドで、ハードドライブのすべてのスワップ領域を無効にできます。
表12.1「parted コマンド」 一般的に使用される parted コマンドの一覧が含まれています。以下のセクションでは、その一部について詳細に説明します。
コマンド | 説明 |
---|---|
check minor-num | ファイルシステムの簡単なチェックを実行します。 |
cp fromto | ファイルシステムをあるパーティションから別のパーティションにコピーします。from と to はパーティションのマイナー番号です。 |
help | 利用可能なコマンドの一覧を表示します。 |
mklabel label | パーティションテーブル用のディスクラベルを作成します。 |
mkfs minor-numfile-system-type | タイプ file-system-type のファイルシステムを作成します。 |
mkpart part-typefs-typestart-mbend-mb | 新しいファイルシステムを作成せずに、パーティションを作成します。 |
mkpartfs part-typefs-typestart-mbend-mb | パーティションを作成し、指定されたファイルシステムを作成します。 |
move minor-numstart-mbend-mb | パーティションを移動します。 |
name minor-numname | Mac と PC98 のディスクラベル用のみのパーティションに名前を付けます。 |
パーティションテーブルを表示します。 | |
quit | parted を終了します。 |
rescuestart-mbend-mb | start-mb から end-mb へ、消失したパーティションを復旧します。 |
resize minor-numstart-mbend-mb | パーティションのサイズを start-mb から end-mb に変更します。 |
rm minor-num | パーティションを削除します。 |
select device | 設定する別のデバイスを選択します。 |
set minor-numflagstate | パーティションにフラグを設定します。state はオンまたはオフのいずれかになります。 |
12.1.1. パーティションテーブルの表示
parted を起動したら、以下のコマンドを入力してパーティションテーブルを表示します。
print
以下のようなテーブルが表示されます。
Disk geometry for /dev/sda: 0.000-8678.789 megabytes Disk label type: msdos Minor Start End Type Filesystem Flags 1 0.031 101.975 primary ext3 boot 2 101.975 5098.754 primary ext3 3 5098.755 6361.677 primary linux-swap 4 6361.677 8675.727 extended 5 6361.708 7357.895 logical ext3 Disk geometry for /dev/hda: 0.000-9765.492 megabytes Disk label type: msdos Minor Start End Type Filesystem Flags 1 0.031 101.975 primary ext3 boot 2 101.975 611.850 primary linux-swap 3 611.851 760.891 primary ext3 4 760.891 9758.232 extended lba 5 760.922 9758.232 logical ext3
Disk geometry for /dev/sda: 0.000-8678.789 megabytes
Disk label type: msdos
Minor Start End Type Filesystem Flags
1 0.031 101.975 primary ext3 boot
2 101.975 5098.754 primary ext3
3 5098.755 6361.677 primary linux-swap
4 6361.677 8675.727 extended
5 6361.708 7357.895 logical ext3
Disk geometry for /dev/hda: 0.000-9765.492 megabytes
Disk label type: msdos
Minor Start End Type Filesystem Flags
1 0.031 101.975 primary ext3 boot
2 101.975 611.850 primary linux-swap
3 611.851 760.891 primary ext3
4 760.891 9758.232 extended lba
5 760.922 9758.232 logical ext3
最初の行はディスクのサイズを表示し、2 番目の行にはディスクラベルのタイプが表示され、残りの出力にはパーティションテーブルが表示されます。
パーティションテーブルでは、最小番号 が パーティション番号になります。たとえば、マイナー番号 1 のパーティションは、
/dev/sda1
に対応します。Start および End の値はメガバイト単位です。Type は primary、extended、または logical のいずれかです。Filesystem はファイルシステムタイプで、ext2、ext3、fat16、fat32、hfs、jfs、linux-swap、ntfs、reiserfs、hp-ufs、sun-ufs、または xfs のいずれかです。Flags は、パーティションに設定したフラグを一覧表示しています。利用可能なフラグは、boot、root、swap、hidden、raid、lvm、または lba です。
この例では、マイナー番号 1 は
/boot/
ファイルシステムを指し、マイナー番号 2 は root ファイルシステム(/
)を指し、マイナー番号 3 はスワップを参照し、マイナー番号 5 は /home/
ファイルシステムを指します。
ヒント
12.1.2. パーティションの作成
警告
使用中のデバイスに、パーティションを作成しないようにしてください。
パーティションを作成する前に、レスキューモードで起動します (または、デバイス上のパーティションをアンマウントして、デバイス上の swap 領域をすべてオフにします)。
parted を起動します。/dev/sda は、パーティションを作成するデバイスです。
parted /dev/sda
parted /dev/sda
現在のパーティションテーブルを表示し、十分な空き領域があるかどうかを確認します。
print
十分な空き容量がない場合は、既存のパーティションのサイズを変更できます。詳細は、「パーティションのサイズ変更」 を参照してください。
12.1.2.1. パーティションの作成
パーティションテーブルから、新しいパーティションの開始点と終了点、およびパーティションのタイプを決定します。プライマリーパーティションは、1 つのデバイス上に 4 つまで保有できます (この場合は拡張パーティションは含みません)。パーティションが 5 つ以上必要な場合は、プライマリーパーティションを 3 つ、拡張パーティションを 1 つにし、その拡張パーティションの中に複数の論理パーティションを追加します。ディスクパーティションの概要 『は、『『インストールガイド』』 の付録「ディスクパーティションの概要」を』 参照してください。
たとえば、ハードドライブの 1024 メガバイトから 2048 メガバイトに ext3 ファイルシステムのプライマリーパーティションを作成するには、以下のコマンドを入力します。
mkpart primary ext3 1024 2048
mkpart primary ext3 1024 2048
ヒント
代わりに mkpartfs コマンドを使用すると、パーティションが作成されてからファイルシステムが作成されます。ただし、parted では、ext3 ファイルシステムの作成に対応していません。そのため、ext3 ファイルシステムを作成する場合は、mkpart を使用して、後述のように mkfs コマンドを実行してファイルシステムを作成します。mkpartfs は、ファイルシステムタイプ linux-swap で動作します。
Enter を押すと変更が反映されるため、押す前に再度確認してください。
パーティションを作成したら、print コマンドを使用して、パーティションが正しいパーティションタイプ、ファイルシステムタイプ、およびサイズでパーティションテーブルにあることを確認します。また、ラベル付けできるように、新しいパーティションのマイナー番号も覚えておいてください。以下の出力も表示されるはずです。
cat /proc/partitions
cat /proc/partitions
カーネルが新しいパーティションを認識していることを確認します。
12.1.2.2. パーティションのフォーマット
パーティションにはまだファイルシステムがありません。ファイルシステムを作成します。
/sbin/mkfs -t ext3 /dev/sda6
/sbin/mkfs -t ext3 /dev/sda6
Warning
パーティションをフォーマットすると、そのパーティションに現存するすべてのデータが永久に抹消されます。
12.1.2.3. パーティションのラベル付け
次に、パーティションにラベルを指定します。たとえば、新しいパーティションが
/dev/sda6
で、/work
にラベルを付ける場合は、次のコマンドを実行します。
e2label /dev/sda6 /work
e2label /dev/sda6 /work
デフォルトでは、インストールプログラムはパーティションのマウントポイントをラベルとして使用して、ラベルが固有なものとなるようにします。ユーザーは使用するラベルを選択できます。
12.1.2.4. マウントポイントの作成
root でマウントポイントを作成します。
mkdir /work
mkdir /work
12.1.2.5. /etc/fstab
への追加
root で
/etc/fstab
ファイルを編集して、新しいパーティションを追加します。新しい行は以下のようになります。
LABEL=/work /work ext3 defaults 1 2
LABEL=/work /work ext3 defaults 1 2
最初の列には、
LABEL=
の後にパーティションを付けたラベルが含まれるはずです。2 番目の列には、新しいパーティションのマウントポイントが含まれている必要があり、その次の列はファイルシステムタイプ (たとえば、ext3 または swap) である必要があります。フォーマットの詳細が必要な場合は、コマンド man fstab を使用して man ページを参照してください。
4 列目がデフォルトである場合
、
パーティションは起動時にマウントされます。再起動せずにパーティションをマウントするには、root で次のコマンドを入力します。
mount /work
mount /work
12.1.3. パーティションの削除
警告
パーティションが設定されているデバイスが使用中の場合は、削除しないでください。
パーティションを削除する前に、レスキューモードで起動します (または、デバイス上のパーティションをアンマウントして、デバイス上の swap 領域をすべてオフにします)。
parted を起動します。/dev/sda は、パーティションを削除するデバイスです。
parted /dev/sda
parted /dev/sda
現在のパーティションテーブルを表示して、削除するパーティションのマイナー番号を確認します。
print
rm コマンドでパーティションを削除します。例えば、マイナー番号 3 のパーティションを削除するのは以下のコマンドです。
rm 3
rm 3
変更は Enter を押すと変更が反映されるため、押す前にコマンドを再度確認してください。
パーティションを削除したら、print コマンドを使用して、パーティションテーブルから削除されていることを確認します。以下の出力も表示されるはずです。
cat /proc/partitions
cat /proc/partitions
カーネルがパーティションが削除されていることを確認します。
最後の手順は、
/etc/fstab
ファイルからそれを削除することです。削除したパーティションを宣言している行を見つけ、ファイルから削除します。
12.1.4. パーティションのサイズ変更
警告
パーティションが設定されているデバイスが使用中の場合は、サイズを変更しないでください。
パーティションのサイズを変更する前に、レスキューモードで起動します (または、デバイス上のパーティションをアンマウントして、デバイス上の swap 領域をすべてオフにします)。
parted を起動します。/dev/sda は、パーティションのサイズを変更するデバイスです。
parted /dev/sda
parted /dev/sda
現在のパーティションテーブルを表示して、サイズを変更するパーティションのマイナー番号と、パーティションの開始点と終了点を決定します。
print
Warning
サイズを変更するパーティションに使用される領域は、新しいサイズよりも大きくすることはできません。
パーティションのサイズを変更するには、resize コマンドの後に、パーティションのマイナー番号、、開始位置 (メガバイト単位)、終了位置 (メガバイト単位) を使用します。以下に例を示します。
resize 3 1024 2048
resize 3 1024 2048
パーティションのサイズを変更した後、print コマンドを使用して、パーティションのサイズが正しく変更され、正しいパーティションタイプであり、正しいファイルシステムタイプであることを確認します。
システムを通常モードに再起動した後、df コマンドを使用して、パーティションがマウントされ、新しいサイズで認識されていることを確認します。