「Fdisk」の版間の差分
Kusanaginoturugi (トーク | 投稿記録) (→パーティションの確認: 更新) |
(→パーティションテーブルとパーティションの作成: 誤字(とそれに伴うリンクの)修正 SSH -> SSD) |
||
(他の1人の利用者による、間の10版が非表示) | |||
29行目: | 29行目: | ||
''fdisk'' とその派生ユーティリティは、{{Pkg|util-linux}} パッケージにより提供されています。このパッケージは {{Pkg|base}} [[メタパッケージ]]の依存パッケージです。 |
''fdisk'' とその派生ユーティリティは、{{Pkg|util-linux}} パッケージにより提供されています。このパッケージは {{Pkg|base}} [[メタパッケージ]]の依存パッケージです。 |
||
− | == パーティション |
+ | == パーティション一覧 == |
− | [[ブロックデバイス]]上のパーティションテーブルとパーティションを |
+ | [[ブロックデバイス]]上のパーティションテーブルとパーティションを一覧表示するには、以下を実行します (デバイスの名前 {{ic|/dev/sda}}、{{ic|/dev/nvme0n1}}、{{ic|/dev/mmcblk0}} は適当に置き換えてください): |
# fdisk -l /dev/sda |
# fdisk -l /dev/sda |
||
54行目: | 54行目: | ||
first-lba: 34 |
first-lba: 34 |
||
last-lba: 1048576 |
last-lba: 1048576 |
||
+ | sector-size: 512 |
||
/dev/sda1 : start=2048, size=1048576, type=0FC63DAF-8483-4772-8E79-3D69D8477DE4, uuid=BBF1CD36-9262-463E-A4FB-81E32C12BDE7 |
/dev/sda1 : start=2048, size=1048576, type=0FC63DAF-8483-4772-8E79-3D69D8477DE4, uuid=BBF1CD36-9262-463E-A4FB-81E32C12BDE7 |
||
68行目: | 69行目: | ||
最初に、パーティションテーブルとレイアウトを[[#パーティションテーブルのバックアップとリストア|バックアップ]]することを推奨します。 |
最初に、パーティションテーブルとレイアウトを[[#パーティションテーブルのバックアップとリストア|バックアップ]]することを推奨します。 |
||
− | + | ''fdisk'' は自動的に全てのパーティションを2048セクタ (1024 KiB、1セクタあたり 512 B) にアライメントします。なので、すべての [[Advanced Format]] HDD と、全てではないにしても大半の [[SSD]] と互換性があるはずです。つまりデフォルト設定で正しいアライメントが行われます。 |
|
''fdisk'' を使うには、変更/編集したい[[ブロックデバイス]]の名前を指定してプログラムを実行してください。以下の例では {{ic|/dev/sda}} を使います: |
''fdisk'' を使うには、変更/編集したい[[ブロックデバイス]]の名前を指定してプログラムを実行してください。以下の例では {{ic|/dev/sda}} を使います: |
||
79行目: | 80行目: | ||
{{Warning|データが含まれているディスクに新しいパーティションテーブルを作成すると、ディスク上の全てのデータが消去されます。注意して実行してください。}} |
{{Warning|データが含まれているディスクに新しいパーティションテーブルを作成すると、ディスク上の全てのデータが消去されます。注意して実行してください。}} |
||
+ | |||
+ | {{Tip| |
||
+ | * NVMe ドライブや Advanced Format ハードディスクドライブが、パーティショニングする前に[[Advanced Format|最適な論理セクターサイズ]]を使用していることを確認してください。 |
||
+ | * SSDをパーティショニングする前に、[[ソリッドステートドライブ/メモリセルの消去]]を実行することを検討してください。 |
||
+ | }} |
||
新しいパーティションテーブルを作成して既存のパーティションデータを全て消去するには、MBR パーティションを作成する場合はプロンプトに {{ic|o}} と、GUID パーティションテーブル(GPT)を作成する場合は {{ic|g}} 入力します。既存のテーブルを使用する場合は、何もせず次に進んで下さい。 |
新しいパーティションテーブルを作成して既存のパーティションデータを全て消去するには、MBR パーティションを作成する場合はプロンプトに {{ic|o}} と、GUID パーティションテーブル(GPT)を作成する場合は {{ic|g}} 入力します。既存のテーブルを使用する場合は、何もせず次に進んで下さい。 |
||
92行目: | 98行目: | ||
MBR を使用している場合、''fdisk'' は MBR パーティションタイプを尋ねてきます。プライマリパーティションを作成したい場合は {{ic|p}} と、拡張パーティションを作成したい場合は {{ic|e}} と入力してください。プライマリパーティションは4つまで作成できます。 |
MBR を使用している場合、''fdisk'' は MBR パーティションタイプを尋ねてきます。プライマリパーティションを作成したい場合は {{ic|p}} と、拡張パーティションを作成したい場合は {{ic|e}} と入力してください。プライマリパーティションは4つまで作成できます。 |
||
− | ''fdisk'' はパーティションタイプ ID を尋ねずに、デフォルトで 'Linux filesystem' を使用します。 |
+ | ''fdisk'' はパーティションタイプ ID を尋ねずに、デフォルトで 'Linux filesystem' を使用します。[[#パーティションタイプの変更]]できます。 |
==== パーティション番号 ==== |
==== パーティション番号 ==== |
||
− | パーティション番号とは、パーティションに割り当てられ |
+ | パーティション番号とは、パーティションに割り当てられた番号であり、例えば、ディスク {{ic|/dev/sda}} 上の番号 {{ic|1}} のパーティションは {{ic|/dev/sda1}}、{{ic|/dev/nvme0n1}} 上では {{ic|/dev/nvme0n1p1}}、{{ic|/dev/mmcblk0}} 上では {{ic|/dev/mmcblk0p1}} となります。命名規則の詳細については[[デバイスファイル#パーティション]]を参照してください。パーティション番号はディスク上のパーティションの順序と一致しない場合があり、その場合には[[#パーティションのソート|ソート]]できます。 |
パーティション番号は、''fdisk'' によって提案されたデフォルトの番号を使うことをおすすめします。 |
パーティション番号は、''fdisk'' によって提案されたデフォルトの番号を使うことをおすすめします。 |
||
111行目: | 117行目: | ||
何も入力しないで {{ic|Enter}} キーを押すと、先頭セクタの一番広いブロックから末尾セクタと同じブロックの終末までが指定されます。 |
何も入力しないで {{ic|Enter}} キーを押すと、先頭セクタの一番広いブロックから末尾セクタと同じブロックの終末までが指定されます。 |
||
− | {{ |
+ | {{Note| |
* パーティショニング時に {{ic|+''size{M,G,T,P}''}} 記法による相対値を使ってパーティションサイズを指定し、常に 1 MiB 以上のサイズを使うと良いでしょう。このようにサイズを指定すれば、パーティションは常にデバイスの特性に従ってアライメントされます。 |
* パーティショニング時に {{ic|+''size{M,G,T,P}''}} 記法による相対値を使ってパーティションサイズを指定し、常に 1 MiB 以上のサイズを使うと良いでしょう。このようにサイズを指定すれば、パーティションは常にデバイスの特性に従ってアライメントされます。 |
||
− | * MBR パーティションテーブルのディスクでは、ディスクの末尾に512バイトのセクタ33個分(16.5 KiB)のパーティショニングされていない空き領域を作っておくことで、[[gdisk#MBR と GPT の変換|MBR と GPT の変換]]ができるようになります。 |
||
* [[EFI システムパーティション]]には、タイプ {{ic|EFI System}} を指定する必要があります。 |
* [[EFI システムパーティション]]には、タイプ {{ic|EFI System}} を指定する必要があります。 |
||
* [[GRUB]] を GPT のディスクにインストールする際は、タイプ {{ic|BIOS boot}} の [[BIOS ブートパーティション]]が必要です。 |
* [[GRUB]] を GPT のディスクにインストールする際は、タイプ {{ic|BIOS boot}} の [[BIOS ブートパーティション]]が必要です。 |
||
+ | }} |
||
− | * [[スワップ]]パーティションには {{ic|Linux swap}} を使用することを推奨します。そうすると、Systemd がそのパーティションを自動マウントしてくれます。 |
||
+ | {{Tip| |
||
− | これらのパーティションのサイズや配置に関する考慮事項はそれぞれの記事を見てください。 |
||
+ | * MBR パーティションテーブルのディスクでは、ディスクの末尾に512バイトのセクタ33個分(16.5 KiB)のパーティショニングされていない空き領域を作っておくことで、[[gdisk#MBR と GPT の変換|MBR と GPT の変換]]ができるようになります。 |
||
}} |
}} |
||
138行目: | 144行目: | ||
{{ic|a}} を入力することで、MBR パーティションを起動可能にすることができます。 |
{{ic|a}} を入力することで、MBR パーティションを起動可能にすることができます。 |
||
− | === |
+ | === パーティションテーブルの変更を確認 === |
− | + | * {{ic|p}} コマンドで変更を表示します。 |
|
+ | * {{ic|q}} コマンドで変更を中止します。 |
||
+ | * {{ic|w}} コマンドで変更をディスクに書き込み、終了します。 |
||
== パーティションの移動 == |
== パーティションの移動 == |
||
− | {{Warning|パーティションはオフラインでのみ移動できます。パーティションを移動するには、パーティション全体をディスクに書き直す必要があるため、時間がかかり、潜在的に危険な操作になります。バックアップを強くお勧めします! |
+ | {{Warning|パーティションはオフラインでのみ移動できます。パーティションを移動するには、パーティション全体をディスクに書き直す必要があるため、時間がかかり、潜在的に危険な操作になります。バックアップを強くお勧めします! {{man|8|sfdisk|OPTIONS}} によると、 'この操作は危険を伴います"}} |
パーティションを移動するには、パーティションを移動する場所に空き領域が必要です。必要に応じて、パーティションとその上のファイルシステムを縮小することでスペースを空けることができます。 [[Parted#パーティションの縮小]] を参照してください。パーティションを再配置するには: |
パーティションを移動するには、パーティションを移動する場所に空き領域が必要です。必要に応じて、パーティションとその上のファイルシステムを縮小することでスペースを空けることができます。 [[Parted#パーティションの縮小]] を参照してください。パーティションを再配置するには: |
||
168行目: | 176行目: | ||
* [https://www.redhat.com/sysadmin/partitions-fdisk Managing partitions in Linux with fdisk] |
* [https://www.redhat.com/sysadmin/partitions-fdisk Managing partitions in Linux with fdisk] |
||
− | {{TranslationStatus|fdisk| |
+ | {{TranslationStatus|fdisk|2024-06-15|803424}} |
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
ファイルを修正する必要があるかもしれません。