第8章 ディスクストレージの管理
8.1. partedを使用した標準パーティション
ユーティリティーの parted により、ユーザーは次のことができます。
- 既存パーティションテーブルの表示
- 既存パーティションのサイズ変更
- 空き領域または他のハードドライブからの、パーティションの追加
システムのディスク領域の使用量を表示するか、ディスク領域の使用量を監視する場合は、「ファイルシステム」 を参照してください。
デフォルトでは、Red Hat Enterprise Linux のインストール時に
parted
パッケージが含まれています。parted を開始するには、root としてログインし、シェルプロンプトで parted /dev/sda コマンドを入力します (/dev/sda は、設定するドライブのデバイス名です)。
パーティションの削除またはサイズ変更を行う場合は、パーティションが存在するデバイスが使用中でない必要があります。使用中のデバイスに新しいパーティションを作成することは可能ですが、推奨されません。
デバイスを使用しない場合は、そのデバイスのパーティションはどれもマウントできず、そのデバイスのスワップ領域も有効にできません。
また、カーネルが変更を正しく認識しない可能性があるため、使用中はパーティションテーブルを変更しないでください。パーティションテーブルがマウントされたパーティションの実際の状態と一致しない場合、情報が間違ったパーティションに書き込まれ、データが失われたり上書きされたりする可能性があります。
これを実現する最も簡単な方法は、システムをレスキューモードで起動することです。ファイルシステムをマウントするように指示されたら、
を選択します。
または、ドライブに使用中のパーティション (ファイルシステムがアンマウントされないように使用またはロックしているシステムプロセス) がない場合、umount コマンドでパーティションをアンマウントし、swapoff コマンドで、ハードドライブのすべてのスワップ領域を無効にできます。
表8.1「parted コマンド」 には、一般的に使用される parted コマンドのリストが含まれています。以下のセクションでは、これらのコマンドと引数の一部について詳しく説明します。
コマンド | 説明 |
---|---|
check minor-num | ファイルシステムの簡単なチェックを実行します。 |
cp from to | ファイルシステムをあるパーティションから別のパーティションにコピーします。from と to はパーティションのマイナー番号です。 |
help | 利用可能なコマンドの一覧を表示します。 |
mklabel label | パーティションテーブル用のディスクラベルを作成します。 |
mkfs minor-num file-system-type | タイプ file-system-type のファイルシステムを作成します。 |
mkpart part-type fs-type start-mb end-mb | 新しいファイルシステムを作成せずに、パーティションを作成します。 |
mkpartfs part-type fs-type start-mb end-mb | パーティションを作成し、指定されたファイルシステムを作成します。 |
move minor-num start-mb end-mb | パーティションを移動します。 |
name minor-num name | Mac と PC98 のディスクラベル用のみのパーティションに名前を付けます。 |
パーティションテーブルを表示します。 | |
quit | parted を終了します。 |
rescue start-mb end-mb | start-mb から end-mb へ、消失したパーティションを復旧します。 |
resize minor-num start-mb end-mb | パーティションのサイズを start-mb から end-mb に変更します。 |
rm minor-num | パーティションを削除します。 |
select device | 設定する別のデバイスを選択します。 |
set minor-num flag state | パーティションにフラグを設定します。state はオンまたはオフのいずれかになります。 |
toggle [NUMBER [FLAG] | パーティション NUMBER 上の FLAG の状態を切り替えます。 |
unit UNIT | デフォルトのユニットを UNIT に設定します。 |
8.1.1. パーティションテーブルの表示
parted を開始した後、コマンド print を使用してパーティションテーブルを表示します。以下のようなテーブルが表示されます。
Model: ATA ST3160812AS (scsi) Disk /dev/sda: 160GB Sector size (logical/physical): 512B/512B Partition Table: msdos Number Start End Size Type File system Flags 1 32.3kB 107MB 107MB primary ext3 boot 2 107MB 105GB 105GB primary ext3 3 105GB 107GB 2147MB primary linux-swap 4 107GB 160GB 52.9GB extended root 5 107GB 133GB 26.2GB logical ext3 6 133GB 133GB 107MB logical ext3 7 133GB 160GB 26.6GB logical lvm
1 行目にはディスクのタイプ、製造元、モデル番号、インターフェイスが含まれ、2 行目にはディスクラベルのタイプが表示されます。4 行目より下の残りの出力は、パーティションテーブルを示しています。
パーティションテーブルでは、マイナー 番号はパーティション
番号
です。たとえば、マイナー番号 1 のパーティションは、/dev/sda1
に対応します。Start
および End
の値はメガバイト単位です。有効な タイプ
は、metadata、free、primary、extended、または logical です。Filesystem
はファイルシステムタイプで、次のいずれかになります。
- ext2
- ext3
- fat16
- fat32
- hfs
- jfs
- linux-swap
- ntfs
- reiserfs
- hp-ufs
- sun-ufs
- xfs
デバイスの
Filesystem
の値が表示されない場合は、ファイルシステムのタイプが不明であることを意味します。
Flags は、パーティションに設定したフラグを一覧表示しています。利用可能なフラグは、boot、root、swap、hidden、raid、lvm、または lba です。
ヒント
8.1.2. パーティションの作成
警告
使用中のデバイスに、パーティションを作成しないようにしてください。
パーティションを作成する前に、レスキューモードで起動します (または、デバイス上のパーティションをアンマウントして、デバイス上の swap 領域をすべてオフにします)。
parted を起動します。ここで、/dev/sda は、パーティションを作成するデバイスです。
parted /dev/sda
現在のパーティションテーブルを表示し、十分な空き領域があるかどうかを確認します。
print
十分な空き容量がない場合は、既存のパーティションのサイズを変更できます。詳細は、「パーティションのサイズ変更」 を参照してください。
8.1.2.1. パーティションの作成
パーティションテーブルから、新しいパーティションの開始点と終了点、およびパーティションのタイプを決定します。プライマリーパーティションは、1 つのデバイス上に 4 つまで保有できます (この場合は拡張パーティションは含みません)。パーティションが 5 つ以上必要な場合は、プライマリーパーティションを 3 つ、拡張パーティションを 1 つにし、その拡張パーティションの中に複数の論理パーティションを追加します。ディスクパーティションの概要について 『は、『Red Hat Enterprise Linux インストールガイド』 の付録 ディスクパーティションの概要』 を参照してください。
たとえば、ハードドライブの 1024 メガバイトから 2048 メガバイトに ext3 ファイルシステムのプライマリーパーティションを作成するには、以下のコマンドを入力します。
mkpart primary ext3 1024 2048
ヒント
代わりに mkpartfs コマンドを使用すると、パーティションが作成されてからファイルシステムが作成されます。ただし、parted では、ext3 ファイルシステムの作成に対応していません。そのため、ext3 ファイルシステムを作成する場合は、mkpart を使用して、後述のように mkfs コマンドを実行してファイルシステムを作成します。
Enter を押すと変更が反映されるため、押す前に再度確認してください。
パーティションを作成したら、print コマンドを使用して、パーティションが正しいパーティションタイプ、ファイルシステムタイプ、およびサイズでパーティションテーブルにあることを確認します。また、ラベルを付けられるように、新しいパーティションのマイナー番号も覚えておいてください。また、の出力も表示されるはずです。
cat /proc/partitions
カーネルが新しいパーティションを認識するようにします。
8.1.2.2. パーティションのフォーマット
パーティションにはまだファイルシステムがありません。ファイルシステムを作成します。
mkfs -t ext3 /dev/sda6
Warning
パーティションをフォーマットすると、そのパーティションに現存するすべてのデータが永久に抹消されます。
8.1.2.3. パーティションのラベル付け
次に、パーティションに ラベルを付けます。たとえば、新しいパーティションが
/dev/sda6
で、/work
のラベルを付けたいとします。
e2label /dev/sda6 /work
デフォルトでは、インストールプログラムはパーティションのマウントポイントをラベルとして使用して、ラベルが固有なものとなるようにします。ユーザーは使用するラベルを選択できます。
8.1.2.4. マウントポイントの作成
root として、マウントポイントを作成します。
mkdir /work
8.1.2.5. /etc/fstab
への追加
root で、
/etc/fstab
ファイルを編集して新しいパーティションを含めます。新しい行は、以下のようになります。
LABEL=/work /work ext3 defaults 1 2
最初の列には
LABEL=
の後にパーティションを付けたラベルが含まれている必要があります。2 番目の列には、新しいパーティションのマウントポイントが含まれている必要があり、その次の列はファイルシステムタイプ (たとえば、ext3 または swap) である必要があります。フォーマットの詳細が必要な場合は、コマンド man fstab を使用して man ページを参照してください。
4 列目が
defaults
という単語の場合、パーティションは起動時にマウントされます。再起動せずにパーティションをマウントするには、root で次のコマンドを入力します。
mount /work
8.1.3. パーティションの削除
警告
パーティションが設定されているデバイスが使用中の場合は、削除しないでください。
パーティションを削除する前に、レスキューモードで起動します (または、デバイス上のパーティションをアンマウントして、デバイス上の swap 領域をすべてオフにします)。
parted を起動します。ここで、/dev/sda は、パーティションを削除するデバイスです。
parted /dev/sda
現在のパーティションテーブルを表示して、削除するパーティションのマイナー番号を確認します。
print
rm コマンドでパーティションを削除します。例えば、マイナー番号 3 のパーティションを削除するのは以下のコマンドです。
rm 3
変更は Enter を押すと変更が反映されるため、押す前にコマンドを再度確認してください。
パーティションを削除したら、print コマンドを使用して、パーティションテーブルから削除されていることを確認します。また、の出力も表示されるはずです。
cat /proc/partitions
カーネルがパーティションが削除されていることを知っていることを確認します。
最後の手順は、
/etc/fstab
ファイルからそれを削除することです。削除したパーティションを宣言している行を見つけ、ファイルから削除します。
8.1.4. パーティションのサイズ変更
警告
パーティションが設定されているデバイスが使用中の場合は、サイズを変更しないでください。
パーティションのサイズを変更する前に、レスキューモードで起動します (または、デバイス上のパーティションをアンマウントして、デバイス上の swap 領域をすべてオフにします)。
parted を起動します。ここで、/dev/sda は、パーティションのサイズを変更するデバイスです。
parted /dev/sda
現在のパーティションテーブルを表示して、サイズを変更するパーティションのマイナー番号と、パーティションの開始点と終了点を決定します。
print
パーティションのサイズを変更するには、resize コマンドの後に、パーティションのマイナー番号、、開始位置 (メガバイト単位)、終了位置 (メガバイト単位) を使用します。以下に例を示します。
resize 3 1024 2048
Warning
デバイスの空き容量より大きなパーティションは作れません。
パーティションのサイズを変更した後、print コマンドを使用して、パーティションのサイズが正しく変更され、正しいパーティションタイプであり、正しいファイルシステムタイプであることを確認します。
システムを通常モードに再起動した後、df コマンドを使用して、パーティションがマウントされ、新しいサイズで認識されていることを確認します。