Linux
 Computer >> コンピューター >  >> システム >> Linux

Partedコマンド徹底解説:Linuxでのディスクパーティション作成・管理の基本操作

Partedは、Linux環境でディスクパーティションの作成、フォーマット、削除、縮小、拡張を行うための「PARTition EDitor」です。操作がシンプルで、ほぼすべてのUnix/Linuxディストリビューションに標準で用意されています。GUI版のGPartedも存在します。本記事では、CentOS Linuxを例にpartedを使ったディスクパーティションの管理方法を解説します(他のディストリビューションでも同様の手順で利用できます)。Partedは、Windowsのdiskpartツールに相当するLinux版ユーティリティです。

LinuxへのPartedのインストール方法

まずLinuxホスト上のソフトウェアを最新化し、各ディストリビューションのパッケージマネージャーを使ってpartedパッケージをインストールします。yumの後継であるdnfを採用しているCentOS 8では、基本リポジトリから以下のコマンドでインストールできます。

# dnf update -y
# dnf install parted -y

Debian/Ubuntuの場合は次のコマンドを使用します。

# apt-get install parted

インストールされたバージョンを確認するには、以下のコマンドを実行します。

# parted –v

parted (GNU parted) 3.2

partedを起動するには、次のように入力します。

# parted

GNU Parted 3.2
Using /dev/vdb
Welcome to GNU Parted! Type 'help' to view a list of commands.

Partedによるパーティションテーブルの管理

利用可能なディスクの一覧を表示するには、partedシェル内で以下のコマンドを実行します。

# print

または、シェルから直接次のコマンドでも確認できます。

$ sudo parted -l

ここでは、ラベルが未割り当ての21GBディスク/dev/vdbが存在し、「error /dev/vdb: unrecognized disk label」というエラーが表示される状態とします。

このディスクにmsdos形式のパーティションテーブル(MBR)を作成するには、次のコマンドを実行します。

# mklabel msdos

GPT形式(GUIDパーティションテーブル)を作成する場合はこちらです。GPTは2TBを超えるパーティションサイズに対応しています。

# mklabel gpt

注意: fdiskとは異なり、partedには変更内容を書き込むための専用コマンドがありません。すべての変更は即座に適用されるため、操作には十分注意してください。

その後、partedでディスク上のパーティションテーブルの種類(レイアウト)を確認できます。

(parted) print
Model: Virtio Block Device (virtblk)
Disk /dev/vdb: 21.0GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags

このようにMBRパーティションテーブルは作成されていますが、まだパーティション自体は作成されていません。
サーバーに複数のディスクが接続されている場合は、次のコマンドで対象ディスクを切り替えられます。

# select /dev/diskname

Partedで新しいパーティションを作成する方法

partedで新しいパーティションを作成するにはmkpartコマンドを使用します。対話モードでこのコマンドを実行すると、新しいパーティションのパラメータに関する質問が順番に表示されます。

  • パーティションタイプ — primary(基本パーティション)またはextended(拡張パーティション)を指定します。
  • ファイルシステムタイプ — ファイルシステムを指定します。デフォルトではext2が提示されます(後から変更可能)。
  • Start(開始位置) — パーティションの先頭セクタを指定します。
  • End(終了位置) — パーティションの最終セクタをメガバイト単位で指定します。例として5000を入力した場合、約5GBのパーティションが作成されます。

ディスク上の残り空き容量を表示するには、次のコマンドを使用します。

(parted) print free

ディスク全体を占有するパーティションを作成することもできます。

# (parted) mkpart primary 0 0

任意のサイズを指定して作成する場合は次のように入力します。

# (parted) mkpart primary 0 1GB

パーティションサイズをパーセントで指定したり、ラベルを付与することも可能です。

# (parted) mkpart "home part" ext4 2.5GiB 100%

partedを終了するには、次のコマンドを実行します。

# quit

続いて、作成したパーティションをext4ファイルシステムでフォーマットします。

# mkfs.ext4 /dev/vdb1

mke2fs 1.44.6 (5-Mar-2019)
Creating filesystem with 1220352 4k blocks and 305216 inodes
Filesystem UUID: 5c9daa97-c0f4-44bc-9cfa-f466ebd8895e
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736
Allocating group tables: done
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done

printコマンドでパーティションの一覧(番号、種類、サイズ、ファイルシステム)を表示し、フォーマットが正しく反映されたことを確認しましょう。

partedシェルに入らずに、ワンライナーでパーティションの作成とフォーマットを一括実行することもできます。

# parted -a opt /dev/vdb mkpart primary ext4 0% 100% && mkfs.ext4 /dev/vdb1

このコマンドでは、vdbディスク上にパーティションを作成し、空き領域全体を割り当てています。このようなコマンドをbashスクリプトやkickstartファイルに組み込めば、作業を大幅に効率化できます。

Partedでパーティションサイズを変更(拡張・縮小)する方法

パーティションの拡張や縮小には、partedのresizepartサブコマンドを使用します。対話形式でパーティションサイズを変更できます。parted内で次のコマンドを実行してください。

# resizepart

重要: ext2/3/4ファイルシステムのパーティションをリサイズする前に、必ずアンマウントしておいてください。

ツールがパーティション番号(printの出力から確認できます)とパーティションの最終サイズの入力を求めてきます。この例では、パーティションサイズを5GBから10GBへ拡張します。

(parted) resizepart
Partition number? 1
End? [5000MB]? 10000

パーティション拡張時は、まずパーティションを拡張してから、その上のファイルシステムを拡張します。逆に縮小する場合は、先にファイルシステムを縮小してからパーティションを縮小してください。順序を間違えるとデータ損失の恐れがあります。

ファイルシステムのサイズを縮小するには、以下のコマンドを使用します。ext2/3/4ファイルシステムの場合:

resize2fs /dev/sdab size

Btrfsの場合:

btrfs filesystem resize /dev/sdab size

また、partedではパーティションのフラグを変更することもできます。設定可能な主なフラグは以下の通りです。

  • boot
  • root
  • swap
  • hidden
  • raid
  • lvm
  • lba
  • legacy_boot
  • irst
  • esp
  • palo

例えば、パーティション1を起動可能(ブータブル)としてマークするには、次のコマンドを実行します。

# set 1 boot on

Partedでパーティションを削除する方法

ディスク上のパーティションを削除したい場合は、partedのrmコマンドを使用します。

# rm 1

このコマンドは番号1のパーティションを削除します。

(parted) print
Model: Virtio Block Device (virtblk)
Disk /dev/vdb: 21.0GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

rmコマンドは削除確認を求めないため、実行時には細心の注意を払ってください。

Rescueコマンドで誤って削除したパーティションを復旧する方法

誤って削除したパーティションは、partedに搭載されているrescue機能を使って復元できる場合があります。

# rescue

コマンドを実行すると、パーティションの開始位置と終了位置の入力を求められます。これらの位置にパーティションに関する情報が残っている場合、削除されたパーティションの復元が試みられます。

このように、partedは直感的に操作でき、ディスクパーティションの作成や変更に非常に便利なツールです。日常的なサーバー管理やストレージ運用において、ぜひ活用してみてください。

  1. 【保存版】USBドライブを複数のパーティションに分割する方法!Windows 10対応の完全ガイド

    外付けハードディスクがあれば、重要なデータのバックアップ、PC間でのデータ移動、さらには大規模なデータ損失からの保護まで実現できます。USBハードドライブを購入すると、初期状態では単一のパーティションとしてフォーマットされています。しかし、ファイルやフォルダーをより効率的に整理したいユーザーの多くは、ドライブに新たなパーティションを追加しています。パーティション分割を行えば、ドライブの容量を個別のセグメントに分けられ、それぞれを異なる用途に専用化できるのです。 近年は数テラバイト級の大容量外付けドライブが主流になりつつあります。そんな大容量ドライブこそ、パーティション分割によって「1台で複数ド

  2. Linuxでディスク容量を確認・管理する方法|df・duコマンドの使い方を徹底解説

    ディスク容量の管理は、使用するプラットフォームに関わらず、すべてのコンピューターユーザーにとって重要な課題です。特にシステム管理者の方は、オンライン・オフライン問わずシステムの健全性を常に監視する必要があります。Linuxではディスク容量が不足するとアップデートが妨げられ、深刻なエラーにつながる可能性もあるからです。 そこで、ディスク全体の空き容量や特定のファイルが使用している容量を把握するためには、「df」コマンドと「du」コマンドを使いこなせるようになることが不可欠です。 本記事では、dfコマンドとduコマンドを使ってLinux上のディスク容量を確認・管理する方法を詳しく解説します。 df