パーティションの編集は、ストレージの境界を定める配置情報を変更する操作です。デバイス、開始位置、終了位置を誤ると、既存データにアクセスできなくなったり、重要なメタデータを上書きしたりします。練習には使い捨ての仮想ディスクだけを使い、価値のあるストレージを変更する前には、別の場所に保存して復元テストを済ませたバックアップを用意してください。
ファイルシステム · レッスン 4
ディスクパーティショニング
`parted` を使い、確認を優先してパーティション境界を調査、作成、サイズ変更する手順を学びます。
ツールを選ぶ
一般的なツールには次のものがあります。
fdisk:util-linux に含まれる端末用パーティションエディターで、MBR と GPT に対応するparted:GPT、MBR、そのほかのテーブル形式に対応する、端末用およびスクリプト利用可能なエディターgdisk:GPT に特化した対話型エディター- GParted:パーティションとファイルシステムを扱うグラフィカルなフロントエンド
ツールの対応状況は変化するため、ローカルのマニュアルとディストリビューションの文書を確認してください。グラフィカルな画面でも、破壊的な操作が安全になるわけではありません。変更されるディスクメタデータは同じです。
現在の Linux fdisk について正しい説明はどれですか?
対象を特定して停止状態にする
まず、読み取り専用の一覧を確認します。
$ lsblk -o NAME,PATH,TYPE,SIZE,MODEL,SERIAL,TRAN,PTTYPE,FSTYPE,MOUNTPOINTS
$ findmnt --real
$ sudo parted --list
デバイス全体を、永続的な識別情報、モデル、シリアル番号、サイズ、接続方式、トポロジーで確認してください。/dev/sdX だけを頼りにしてはいけません。続いて、マウント済みファイルシステム、スワップ、LVM、RAID、暗号化、コンテナ、仮想マシン、データベース、開いているファイル記述子など、すべての利用者を特定します。
関連する層は、それぞれの文書化された手順でアンマウントまたは無効化します。ツールを正常に開けるという理由だけで、稼働中のシステムディスクのパーティションテーブルを編集してはいけません。既存のテーブルを復元可能な形式で記録し、バックアップが別の障害領域に保存されていることを確認します。
/dev/sdb のようなデバイス名だけでは、対象確認として不十分なのはなぜですか?
`parted` で 1 台のデバイスを調べる
明示的に確認したデバイス全体を開きます。
$ sudo parted /dev/VERIFIED-DISK
次に表示単位を統一し、テーブルを出力します。
(parted) unit MiB
(parted) print free
print free は、現在のエントリと未割り当て領域を表示します。parted のコマンドは、最後に「保存」する操作を待たず、その場でディスクメタデータを更新することがあります。対話プロンプトは、書き込み可能な状態だと考えて扱ってください。
parted の print free は、何を表示するのに役立ちますか?
パーティションエントリを作成する
mkpart の正確な構文は、テーブル形式によって異なります。MiB 単位の GPT なら、次のようになります。
(parted) mkpart data ext4 1MiB 5000MiB
これは、名前、想定する内容の種類、開始位置、終了位置を持つパーティションエントリを作成します。ext4 ファイルシステムは作成しません。フォーマットは独立した破壊的操作です。カーネルが目的の新しいパーティションを認識し、その識別情報を確認した後にだけ実行します。
ツールが推奨するアラインメントを使用し、終了位置を含むかどうか、どのように丸められるかを理解してください。print と lsblk で結果を確認し、指定した十進数の境界がそのまま記録されたと思い込まないようにします。
parted の mkpart が作成するものは何ですか?
境界と内容のサイズを変更する
resizepart NUMBER END が移動するのは、パーティションの終了境界だけです。内部に格納されたファイルシステムやほかの構造のサイズは変更しません。
操作の順序が重要です。
- 拡大する場合は、まず格納側のパーティションまたは論理デバイスを広げ、その後で専用ツールを使ってファイルシステムを拡大する
- 縮小する場合は、ファイルシステムが縮小に対応することを確認し、オフラインまたはオンラインでの要件に従って先に縮小してから、新しい終端を越えないように格納側の境界を縮める
縮小できないファイルシステムもあります。暗号化、LVM、RAID、入れ子になった構成では、順序を守るべき層がさらに増えます。また、デバイスの使用中はカーネルが変更後のテーブルの再読み込みを拒否し、新しい配置を利用する前に計画的な再起動が必要になる場合もあります。
ファイルシステムが縮小に対応している場合、使用中のデータを切り落とさないための順序はどれですか?
Linux パーティションとファイルシステムの管理 は、指定されたセカンダリ仮想ディスクで利用してください。ホストのディスクを代わりに使ってはいけません。
レッスン完了
ディスクパーティショニング を完了しました
これで、パーティション編集を、複数の層に関わる破壊的なストレージ操作として説明できるようになりました。
実際のテーブルと作業手順に対応するツールを選ぶ。
ディスクの永続的な識別情報を確認し、すべての利用者を無効化する。
書き込み前に、単位、エントリ、空き領域を確認する。
mkpartはファイルシステムを作成しないことを覚えておく。内側の内容と外側の境界を、安全な順序でサイズ変更する。