fdisk ディスクのパーティションテーブルを表示、編集する
fdisk [オプション] デバイス試してみる
/sbin/fdisk -l disk.imgパーティションの一覧を表示します。ディスクに見立てたファイルなので、まだ何もありません。
printf 'o\nn\np\n1\n\n+10M\nw\n' | /sbin/fdisk disk.img | tail -4対話の操作を printf で渡します。新しい空のテーブル(o)に、10MiBの基本パーティション(n、p、1)を作り、書き込みます(w)。
printf 'n\np\n2\n\n+5M\nt\n2\n82\nw\n' | /sbin/fdisk disk.img | tail -32つ目のパーティションを作り、種類(t)を 82(Linux swap)に変えて、書き込みます。
/sbin/fdisk -l disk.img2つのパーティションができたことを確認します。
printf 'd\n1\nw\n' | /sbin/fdisk disk.img | tail -21つ目のパーティションを削除(d)します。
/sbin/fdisk -l disk.img | tail -32つ目だけが残ったことを確認します。
主なオプション
-l | パーティションテーブルを表示して終了する |
|---|---|
対話: p | 現在のパーティションテーブルを表示する |
対話: n | 新しいパーティションを作る |
対話: d | パーティションを削除する |
対話: t | パーティションの種類(タイプ)を変える |
対話: w | 変更を書き込んで終了する |
対話: q | 書き込まずに終了する |
解説
対話で編集する
fdisk デバイス を実行すると、1文字のコマンドを入力する対話の画面になります。実機では、/dev/sda のようなディスクを指定します(root の権限が必要)。このページでは、ディスクの代わりに disk.img というファイルを使っています。
編集した内容は、w で書き込むまでは反映されません。やめるときは q です。作る操作は、n、基本か拡張か(p、e)、番号、開始位置、サイズの順に聞かれます。サイズは +10M のように指定します。
パーティションの種類
| タイプ | 意味 |
|---|---|
| 83 | Linux |
| 82 | Linux swap |
| 8e | Linux LVM |
| 5 | 拡張パーティション |
MBR と GPT
MBR(DOS形式)では、基本パーティションが4つまでです。それ以上必要なときは、4つのうちの1つを拡張パーティションにして、その中に論理パーティションを作ります。GPT 形式では、この制限はありません。fdisk は、現在は MBR と GPT の両方を扱えます。GPT を使うなら gdisk や parted も使えます。
作ったあとは
パーティションは作っただけでは使えません。mkfs でファイルシステムを作り、mount でマウントします。このページのターミナルでは、パーティションのデバイスファイルは作られないので、そこまでは試せません。
注意
fdisk は、/sbin にあります。一般ユーザーの PATH にないので、フルパスで書くか、sudo を付けます。