「Fdisk」の版間の差分
Kusanaginoturugi (トーク | 投稿記録) (→パーティションの確認: 記事を更新) |
(→パーティションテーブルとパーティションの作成: 誤字(とそれに伴うリンクの)修正 SSH -> SSD) |
||
69行目: | 69行目: | ||
最初に、パーティションテーブルとレイアウトを[[#パーティションテーブルのバックアップとリストア|バックアップ]]することを推奨します。 |
最初に、パーティションテーブルとレイアウトを[[#パーティションテーブルのバックアップとリストア|バックアップ]]することを推奨します。 |
||
− | ''fdisk'' は自動的に全てのパーティションを2048セクタ (1024 KiB、1セクタあたり 512 B) にアライメントします。なので、すべての [[Advanced Format]] HDD と、全てではないにしても大半の [[ |
+ | ''fdisk'' は自動的に全てのパーティションを2048セクタ (1024 KiB、1セクタあたり 512 B) にアライメントします。なので、すべての [[Advanced Format]] HDD と、全てではないにしても大半の [[SSD]] と互換性があるはずです。つまりデフォルト設定で正しいアライメントが行われます。 |
''fdisk'' を使うには、変更/編集したい[[ブロックデバイス]]の名前を指定してプログラムを実行してください。以下の例では {{ic|/dev/sda}} を使います: |
''fdisk'' を使うには、変更/編集したい[[ブロックデバイス]]の名前を指定してプログラムを実行してください。以下の例では {{ic|/dev/sda}} を使います: |
2024年9月10日 (火) 20:24時点における最新版
関連記事
util-linux fdisk はダイアログで操作するコマンドラインユーティリティで、ハードディスク上のパーティションテーブルやパーティションを作成・編集することができます。ハードディスクはパーティションに分割され、その分割情報はパーティションテーブルに記述されます。
この記事では fdisk(8) とその派生である sfdisk(8) ユーティリティについて解説します。
目次
インストール
fdisk とその派生ユーティリティは、util-linux パッケージにより提供されています。このパッケージは base メタパッケージの依存パッケージです。
パーティション一覧
ブロックデバイス上のパーティションテーブルとパーティションを一覧表示するには、以下を実行します (デバイスの名前 /dev/sda
、/dev/nvme0n1
、/dev/mmcblk0
は適当に置き換えてください):
# fdisk -l /dev/sda
パーティションテーブルのバックアップとリストア
ハードディスクに変更を加える前に、ドライブのパーティションテーブルとパーティションスキームをバックアップしておくと良いでしょう。また、バックアップを利用して、同じパーティションレイアウトを多数のドライブにコピーすることもできます。
GPT と MBR のどちらでも sfdisk の -d
/--dump
オプションを使ってデバイスのパーティションレイアウトをファイルに保存できます。/dev/sda
デバイスを保存するには以下のコマンドを実行:
# sfdisk -d /dev/sda > sda.dump
1 GiB の ext4 パーティションが存在する場合、ファイルは以下のようになります:
sda.dump
label: gpt label-id: AAAAAAAA-BBBB-CCCC-DDDD-EEEEEEEEEEEE device: /dev/sda unit: sectors first-lba: 34 last-lba: 1048576 sector-size: 512 /dev/sda1 : start=2048, size=1048576, type=0FC63DAF-8483-4772-8E79-3D69D8477DE4, uuid=BBF1CD36-9262-463E-A4FB-81E32C12BDE7
レイアウトを復元するには次を実行:
# sfdisk /dev/sda < sda.dump
パーティションテーブルとパーティションの作成
パーティショニングするときはまずパーティションテーブルを作成します。その後、望ましいパーティションスキームにあわせてパーティションを作成します。MBR と GPT のどちらを使用するかについてはパーティションテーブルを見てください。
最初に、パーティションテーブルとレイアウトをバックアップすることを推奨します。
fdisk は自動的に全てのパーティションを2048セクタ (1024 KiB、1セクタあたり 512 B) にアライメントします。なので、すべての Advanced Format HDD と、全てではないにしても大半の SSD と互換性があるはずです。つまりデフォルト設定で正しいアライメントが行われます。
fdisk を使うには、変更/編集したいブロックデバイスの名前を指定してプログラムを実行してください。以下の例では /dev/sda
を使います:
# fdisk /dev/sda
これで、fdisk の対話が開始され、コマンドを実行してパーティショニングを行うことができます。
新しいテーブルの作成
新しいパーティションテーブルを作成して既存のパーティションデータを全て消去するには、MBR パーティションを作成する場合はプロンプトに o
と、GUID パーティションテーブル(GPT)を作成する場合は g
入力します。既存のテーブルを使用する場合は、何もせず次に進んで下さい。
パーティションの作成
n
コマンドで新しいパーティションを作成します。MBR パーティションタイプ、パーティション番号、開始セクタ、終わりのセクタを入力します。
パーティションタイプ
MBR を使用している場合、fdisk は MBR パーティションタイプを尋ねてきます。プライマリパーティションを作成したい場合は p
と、拡張パーティションを作成したい場合は e
と入力してください。プライマリパーティションは4つまで作成できます。
fdisk はパーティションタイプ ID を尋ねずに、デフォルトで 'Linux filesystem' を使用します。#パーティションタイプの変更できます。
パーティション番号
パーティション番号とは、パーティションに割り当てられた番号であり、例えば、ディスク /dev/sda
上の番号 1
のパーティションは /dev/sda1
、/dev/nvme0n1
上では /dev/nvme0n1p1
、/dev/mmcblk0
上では /dev/mmcblk0p1
となります。命名規則の詳細についてはデバイスファイル#パーティションを参照してください。パーティション番号はディスク上のパーティションの順序と一致しない場合があり、その場合にはソートできます。
パーティション番号は、fdisk によって提案されたデフォルトの番号を使うことをおすすめします。
先頭と末尾のセクタ
パーティションの先頭のセクタは、セクタ番号を使って絶対値で指定しなければなりません。パーティションの末尾のセクタは、セクタ番号で絶対値で指定するか、あるいはキビバイト(K
)、メビバイト(M
)、ギビバイト(G
)、テビバイト(T
)、ペビバイト(P
)単位で指定することができます。
パーティションの末尾のセクタの位置の指定方法は以下の2通りあります:
- ディスクの先頭からの絶対値。例えば、先頭のセクタとして
40M
を指定すると、ディスクの先頭から 40 MiB の位置となります。 +size
や-size
のように、サイズの前に +/- を付けると相対値を指定できます。例えば、デフォルトの先頭セクタから 2 GiB の点を指定するには+2G
、利用可能な末尾のセクタから 200 MiB の点を指定するには-200M
。
何も入力しないで Enter
キーを押すと、先頭セクタの一番広いブロックから末尾セクタと同じブロックの終末までが指定されます。
必要なパーティションが揃うまで、この手順を繰り返してください。
パーティションタイプの変更
それぞれのパーティションには、1つのタイプが割り当てられます。MBR では、パーティション ID を使います。GPT では、パーティションタイプ GUID を使います。
パーティションのタイプを変更するには、t
を入力してください。デフォルトでは Linux filesystem
が使用され、ほとんどのユースケースで問題ないはずです。
パーティションを起動可能にする
a
を入力することで、MBR パーティションを起動可能にすることができます。
パーティションテーブルの変更を確認
p
コマンドで変更を表示します。q
コマンドで変更を中止します。w
コマンドで変更をディスクに書き込み、終了します。
パーティションの移動
パーティションを移動するには、パーティションを移動する場所に空き領域が必要です。必要に応じて、パーティションとその上のファイルシステムを縮小することでスペースを空けることができます。 Parted#パーティションの縮小 を参照してください。パーティションを再配置するには:
# echo '+sectors,' | sfdisk --move-data device -N number
ここで、sectors
はパーティションを移動するセクターの数です(+
はパーティションを前方に移動することを示します)、device
はパーティションを保持するデバイスであり、number
はパーティション番号です。ディスクの中央または先頭に新しいパーティションを追加する場合は、パーティションの番号を付け直す必要があることに注意してください。 #パーティションのソート または fdisk の "extrafunctionality" モードを参照してください。
ヒントとテクニック
パーティションのソート
パーティションの合間に新しいパーティションを作成したり、パーティションを削除した場合に、以下のコマンドでパーティションを並び替えられます。
# sfdisk -r /dev/sda
永続的なブロックデバイスの命名を使っていない場合、パーティションを並び替えたら /etc/fstab
や /etc/crypttab
ファイルを修正する必要があるかもしれません。