「Fdisk」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(→‎ヒントとテクニック: 「gdisk EFI アプリケーション」を追加(英語版より))
(同期)
3行目: 3行目:
 
[[Category:システムリカバリ]]
 
[[Category:システムリカバリ]]
 
[[Category:コマンド]]
 
[[Category:コマンド]]
  +
[[de:fdisk]]
 
[[en:Fdisk]]
 
[[en:Fdisk]]
  +
[[es:Fdisk]]
 
[[ru:Fdisk]]
 
[[ru:Fdisk]]
 
[[zh-hans:Fdisk]]
 
[[zh-hans:Fdisk]]
 
{{Related articles start}}
 
{{Related articles start}}
 
{{Related|ファイルシステム}}
 
{{Related|ファイルシステム}}
  +
{{Related|gdisk}}
 
{{Related|GNU Parted}}
 
{{Related|GNU Parted}}
{{Related|GParted}}
 
 
{{Related|パーティショニング}}
 
{{Related|パーティショニング}}
  +
{{Related|dd}}
 
{{Related articles end}}
 
{{Related articles end}}
   
[https://git.kernel.org/cgit/utils/util-linux/util-linux.git/ util-linux fdisk] はダイアログで操作するコマンドラインユーティリティで、ハードディスク上のパーティションテーブルやパーティションを作成・編集することができます。ハードディスクはパーティションに分割され、その分割情報はパーティションテーブルに記述されます。Arch Linux をインストールするにはパーティションが必要です。
+
[https://git.kernel.org/cgit/utils/util-linux/util-linux.git/ util-linux fdisk] はダイアログで操作するコマンドラインユーティリティで、ハードディスク上のパーティションテーブルやパーティションを作成・編集することができます。ハードディスクはパーティションに分割され、その分割情報はパーティションテーブルに記述されます。
   
この記事では '''fdisk''' とその派生である '''sfdisk''' と '''cfdisk''' ユーティリティだけでなく、類似の機能を持った '''gdisk''', '''sgdisk''', '''cgdisk''' ユーティリティについて解説します。
+
この記事では {{man|8|fdisk}} とその派生である {{man|8|sfdisk}} ユーティリティについて解説します。
  +
  +
{{Note|1={{Pkg|util-linux}} 2.23 以降、''fdisk'' は [[GPT]] をサポートしています。[https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git/commit/?id=766d5156c43b784700d28d1c1141008b2bf35ed7] [[GPT]] に対しては {{Pkg|gptfdisk}} を使うこともできます。詳細は [[gdisk]] を見てください。}}
  +
  +
{{Tip|[[Wikipedia:ja:Curses|Curses]] ベースのユーザインターフェイスで基本的なパーティショニング機能を使いたい場合は、{{man|8|cfdisk}} を使うことができます。}}
   
 
== インストール ==
 
== インストール ==
   
''fdisk'' と派生ユーティリティを使用するには、{{pkg|util-linux}} パッケージが必要です ({{Pkg|base}} グループ含まれています)''gdisk'' と派生ユーティリティを使用したい場合、{{pkg|gptfdisk}} パッケージを[[インストール]]してください
+
''fdisk'' とその派生ユーティリティは、{{Pkg|util-linux}} パッケージにより提供されています。このパッケージは {{Pkg|base}} [[メタパッケージ]]の依存パッケージです
   
 
== パーティションの確認 ==
 
== パーティションの確認 ==
28行目: 35行目:
   
 
{{Note|デバイスを指定しなかった場合、''fdisk'' は {{ic|/proc/partitions}} の全てのパーティションを表示します。}}
 
{{Note|デバイスを指定しなかった場合、''fdisk'' は {{ic|/proc/partitions}} の全てのパーティションを表示します。}}
 
あるいは ''gdisk'' の場合:
 
 
# gdisk -l /dev/sda
 
   
 
== パーティションテーブルのバックアップとリストア ==
 
== パーティションテーブルのバックアップとリストア ==
41行目: 44行目:
 
# sfdisk -d /dev/sda > sda.dump
 
# sfdisk -d /dev/sda > sda.dump
   
1GB の ext4 パーティションが存在する場合、ファイルは以下のようになります:
+
1 GiB の ext4 パーティションが存在する場合、ファイルは以下のようになります:
   
 
{{hc|sda.dump|2=
 
{{hc|sda.dump|2=
54行目: 57行目:
 
}}
 
}}
   
レイアウトをリストアするには次を実行:
+
レイアウトを復元するには次を実行:
   
 
# sfdisk /dev/sda < sda.dump
 
# sfdisk /dev/sda < sda.dump
60行目: 63行目:
 
== パーティションテーブルとパーティションの作成 ==
 
== パーティションテーブルとパーティションの作成 ==
   
[[パーティショニング]]するときはまずパーティションテーブルを作成します。その後、望ましい[[パーティショニング#パーティション形態|パーティション形態]]にあわせてパーティションを作成します。[[Master Boot Record|MBR]] と [[GPT]] のどちらを使用するかについては[[パーティショニング#パーティションテーブル|パーティションテーブル]]を見てください。
+
[[パーティショニング]]するときはまずパーティションテーブルを作成します。その後、望ましい[[パーティショニング#パーティション形態|パーティションスキーム]]にあわせてパーティションを作成します。[[Master Boot Record|MBR]] と [[GPT]] のどちらを使用するかについては[[パーティショニング#パーティションテーブル|パーティションテーブル]]を見てください。
   
最初に、パーティションテーブルとレイアウトを[[#バックアップとリストア|バックアップ]]することを推奨します。
+
最初に、パーティションテーブルとレイアウトを[[#パーティションテーブルのバックアップとリストア|バックアップ]]することを推奨します。
   
  +
最近のバージョンの ''fdisk'' はデフォルトの表示単位にシリンダーを使用する古いシステムのサポートや、MS-DOS との互換性をデフォルトで廃止しています。''fdisk'' は自動的に全てのパーティションを2048セクタ (1024 KiB、1セクタあたり 512 B) にアライメントします。なので、すべての [[Advanced Format]] HDD と、全てではないにしても大半の [[SSH]] と互換性があるはずです。つまりデフォルト設定で正しいアライメントが行われます。
以下のセクションでは ''gdisk'' と ''fdisk'' を使用してパーティションテーブルとパーティションを作成する方法を説明しています。違いについては必要なときに記載しています。
 
   
  +
''fdisk'' を使うには、変更/編集したい[[ブロックデバイス]]の名前を指定してプログラムを実行してください。以下の例では {{ic|/dev/sda}} を使います:
=== パーティションの操作の開始 ===
 
   
  +
# fdisk /dev/sda
''fdisk'' または ''gdisk'' を起動して、[[#新しいテーブルの作成|新しいテーブルの作成]]に進んで下さい。
 
   
  +
これで、''fdisk'' の対話が開始され、コマンドを実行してパーティショニングを行うことができます。
==== fdisk ====
 
   
  +
=== 新しいテーブルの作成 ===
MBR を使う場合、パーティションテーブルを編集するためのユーティリティは ''fdisk'' と呼ばれています。最近のバージョンの ''fdisk'' はデフォルトの表示単位にシリンダーを使用する古いシステムのサポートや、MS-DOS との互換性をデフォルトで廃止しています。最新の ''fdisk'' は自動的に全てのパーティションを2048セクタ (1024 KiB) にアライメントをするため、SSD メーカーによって使用されている EBS サイズ全てで問題なく整列されます。つまりデフォルト設定で正しいアライメントが行われます。
 
   
  +
{{Warning|データが含まれているディスクに新しいパーティションテーブルを作成すると、ディスク上の全てのデータが消去されます。注意して実行してください。}}
昔の ''fdisk'' は、デフォルトの表示単位にシリンダーを使っていて、SSD のアライメントと干渉する MS-DOS との互換性も残っていました。そのため、2008-2009年あたりのインターネットのガイドを調べたら、大げさに書かれているのが見て取れると思います。最新の ''fdisk'' では、物事はもっとシンプルになり、そのことはこの記事にも反映されています。
 
   
  +
新しいパーティションテーブルを作成して既存のパーティションデータを全て消去するには、MBR パーティションを作成する場合はプロンプトに {{ic|o}} と、GUID パーティションテーブル(GPT)を作成する場合は {{ic|g}} 入力します。既存のテーブルを使用する場合は、何もせず次に進んで下さい。
root でドライブを指定して ''fdisk'' を起動してください。{{ic|/dev/sda}} の例:
 
   
  +
=== パーティションの作成 ===
# fdisk /dev/sda
 
   
  +
{{ic|n}} コマンドで新しいパーティションを作成します。MBR パーティションタイプ、パーティション番号、開始セクタ、終わりのセクタを入力します。
''fdisk'' ダイアログが開いてコマンドを入力することができます。
 
   
  +
{{Note|パーティションのサイズや場所に関する考慮事項は [[パーティショニング#パーティション形態]] を見てください。}}
==== gdisk ====
 
   
  +
==== パーティションタイプ ====
[[GPT]] を使う場合、パーティションテーブルを編集するためのユーティリティは ''gdisk'' です。curses ベースの ''cgdisk'' を使うこともできますが、操作は以下と異なります。cgdisk の使用方法は {{man|8|cgdisk}} を参照してください。
 
   
  +
MBR を使用している場合、''fdisk'' は MBR パーティションタイプを尋ねてきます。プライマリパーティションを作成したい場合は {{ic|p}} と、拡張パーティションを作成したい場合は {{ic|e}} と入力してください。プライマリパーティションは4つまで作成できます。
''gdisk'' は殆ど全ての SSD と互換性のある 2048 セクター (または 1024KiB) ブロックサイズベースの自動パーティションアライメントができます。GNU parted も GPT をサポートしていますが、パーティションのアライニングについては[https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=601813 あまりユーザーフレンドリーとは言えません]。
 
   
  +
''fdisk'' はパーティションタイプ ID を尋ねずに、デフォルトで 'Linux filesystem' を使用します。これは後で変更できます。
''gdisk'' を使うときは、変更・編集したいデバイスの名前を指定してプログラムを起動します。{{ic|/dev/sda}} の例:
 
   
  +
==== パーティション番号 ====
# gdisk /dev/sda
 
   
  +
パーティション番号とは、パーティションに割り当てられる番号です。例えば、ディスク {{ic|/dev/sda}} 上の番号{{ic|1}}が割り当てられたパーティションは {{ic|/dev/sda1}} となります。パーティション番号は、ディスク上のパーティションの順番と必ずしも一致しているとは限りません。この場合、パーティションを[[#パーティションのソート|ソート]]することができます。
=== 新しいテーブルの作成 ===
 
   
  +
パーティション番号は、''fdisk'' によって提案されたデフォルトの番号を使うことをおすすめします。
新しい MBR パーティションテーブルを作成して既存のパーティションデータを全て消去するには、プロンプトに {{ic|o}} と入力します。既存のテーブルを使用する場合は次に進んで下さい。
 
   
  +
==== 先頭と末尾のセクタ ====
{{Warning|データが含まれているディスクに新しいパーティションテーブルを作成すると、ディスク上の全てのデータが消去されます。注意して実行してください。}}
 
   
  +
パーティションの先頭のセクタは、セクタ番号を使って絶対値で指定しなければなりません。パーティションの末尾のセクタは、セクタ番号で絶対値で指定するか、あるいはキビバイト({{ic|K}})、メビバイト({{ic|M}})、ギビバイト({{ic|G}})、テビバイト({{ic|T}})、ペビバイト({{ic|P}})単位で指定することができます。
=== パーティションの作成 ===
 
   
  +
パーティションの末尾のセクタの位置の指定方法は以下の2通りあります:
{{ic|n}} コマンドで新しいパーティションを作成します。パーティションタイプ (''fdisk'' のみ)、パーティションの番号、開始セクタ、終末セクタを入力します。
 
   
  +
* ディスクの先頭からの絶対値。例えば、先頭のセクタとして {{ic|40M}} を指定すると、ディスクの先頭から 40 MiB の位置となります。
''fdisk'' の場合、パーティションタイプを指定するとき、{{ic|p}} でプライマリパーティションを作成し {{ic|e}} で拡張パーティションを作成します。プライマリパーティションは4つまでしか作成できません。
 
  +
* {{ic|'''+'''''size''}} や {{ic|'''-'''''size''}} のように、サイズの前に +/- を付けると相対値を指定できます。例えば、デフォルトの先頭セクタから 2 GiB の点を指定するには {{ic|+2G}}、利用可能な末尾のセクタから 200 MiB の点を指定するには {{ic|-200M}}。
   
開始・終末セクタはセクタ番号、あるいはキビバイト ({{ic|K}}), メビバイト ({{ic|M}}), ギビバイト ({{ic|G}}), テビバイト ({{ic|T}}), ペビバイト ({{ic|P}}) で絶対的に指定することができます。例えば、{{ic|40M}} でディスクの最初から 40MiB の位置が指定できます。また、数字に {{ic|+}} や {{ic|-}} 記号を付けることで開始位置・終了位置を相対的に指定することができます。例えば {{ic|+2G}} ならデフォルトの開始セクタから 2GiB の位置が、{{ic|-200M}} なら最後のセクタから 200MiB の位置が指定されます。何も入力しないで {{ic|Enter}} キーを押すと、開始セクタの一番広いブロックから末セクタと同じブロックの終末までが指定されます。
+
何も入力しないで {{ic|Enter}} キーを押すと、先頭セクタの一番広いブロックから末セクタと同じブロックの終末までが指定されます。
   
  +
{{Tip|
パーティションのタイプ id を選択します。大抵の場合はデフォルトの {{ic|Linux filesystem}} で問題ありません。{{ic|l}} (''fdisk'') や {{ic|L}} (''gdisk'') を押すことでコードの一覧を表示できます。
 
  +
* パーティショニング時に {{ic|+''size{M,G,T,P}''}} 記法による相対値を使ってパーティションサイズを指定し、常に 1 MiB 以上のサイズを使うと良いでしょう。このようにサイズを指定すれば、パーティションは常にデバイスの特性に従ってアライメントされます。
  +
* MBR パーティションテーブルのディスクでは、ディスクの末尾に512バイトのセクタ33個分(16.5 KiB)のパーティショニングされていない空き領域を作っておくことで、[[gdisk#MBR と GPT の変換|MBR と GPT の変換]]ができるようになります。
  +
* [[EFI システムパーティション]]には、タイプ {{ic|EFI System}} を指定する必要があります。
  +
* [[GRUB]] を GPT のディスクにインストールする際は、タイプ {{ic|BIOS boot}} の [[BIOS ブートパーティション]]が必要です。
  +
* [[スワップ]]パーティションには {{ic|Linux swap}} を使用することを推奨します。そうすると、Systemd がそのパーティションを自動マウントしてくれます。
  +
  +
これらのパーティションのサイズや配置に関する考慮事項はそれぞれの記事を見てください。
  +
}}
  +
  +
必要なパーティションが揃うまで、この手順を繰り返してください。
  +
  +
=== パーティションタイプの変更 ===
  +
  +
それぞれのパーティションには、1つのタイプが割り当てられます。MBR では、[[Wikipedia:Partition type|パーティション ID]] を使います。GPT では、[[Wikipedia:GUID Partition Table#Partition type GUIDs|パーティションタイプ GUID]] を使います。
  +
  +
パーティションのタイプを変更するには、{{ic|t}} を入力してください。デフォルトでは {{ic|Linux filesystem}} が使用され、ほとんどのユースケースで問題ないはずです。
   
 
{{Tip|
 
{{Tip|
  +
* fdisk の内部コードを一覧表示するには {{ic|L}} を入力してください。
* [[EFI システムパーティション]]のコードは ''gdisk'' の場合は {{ic|ef00}}、''fdisk'' の場合は {{ic|EFI System}} に設定する必要があります。
 
  +
* {{man|8|systemd-gpt-auto-generator}} がパーティションを自動マウントするので、[https://systemd.io/DISCOVERABLE_PARTITIONS/ Discoverable Partitions Specification] に従うことをおすすめします。
* [[GRUB]] をディスクにインストールするとき、BIOS boot partition が必要です。''gdisk'' ではコードが {{ic|ef02}}、''fdisk'' では {{ic|BIOS boot}} のパーティションになります。
 
* [[スワップ]]パーティションを作成するときは systemd によって自動マウントされるように ''gdisk'' では {{ic|8200}}、''fdisk'' では {{ic|Linux swap}} を使うことを推奨します。
 
 
}}
 
}}
   
上記の手順を繰り返して全てのパーティションを作成してください。
+
=== パーティションを起動可能にする ===
  +
  +
{{ic|a}} を入力することで、MBR パーティションを起動可能にすることができます。
   
 
=== ディスクに変更を書き込む ===
 
=== ディスクに変更を書き込む ===
128行目: 149行目:
 
# echo '+''sectors'',' | sfdisk --move-data ''device'' -N ''number''
 
# echo '+''sectors'',' | sfdisk --move-data ''device'' -N ''number''
   
ここで、{{ic|''sectors''}} はパーティションを移動するセクターの数です({{ic|''+''}} はパーティションを前方に移動することを示します)、{{ic|''device''}} はパーティションを保持するデバイスであり、{{ic|''number''}} はパーティション番号です。ディスクの中央または先頭に新しいパーティションを追加する場合は、パーティションの番号を付け直す必要があることに注意してください。 [[#パーティションの並び替え]] または ''fdisk'' の ''extrafunctionality'' モードを参照してください。
+
ここで、{{ic|''sectors''}} はパーティションを移動するセクターの数です({{ic|''+''}} はパーティションを前方に移動することを示します)、{{ic|''device''}} はパーティションを保持するデバイスであり、{{ic|''number''}} はパーティション番号です。ディスクの中央または先頭に新しいパーティションを追加する場合は、パーティションの番号を付け直す必要があることに注意してください。 [[#パーティションのソート]] または ''fdisk'' の "extrafunctionality" モードを参照してください。
   
 
== ヒントとテクニック ==
 
== ヒントとテクニック ==
   
=== MBR と GPT 変換 ===
+
=== パーティションソート ===
 
MBR パーティションテーブルを GPT に変換するには、''sgdisk'' ツールを使います:
 
 
# sgdisk -g /dev/sda
 
 
GPT を MBR に変換するときは {{ic|m}} オプションを使います (5つ以上のパーティションを GPT から MBR に変換することはできないので注意してください):
 
 
# sgdisk -m /dev/sda
 
 
デバイスから起動するには ''fdisk'' で起動フラグを設定する必要があります。
 
 
[[GUID Partition Table#MBR から GPT への変換]]も参照。
 
 
=== パーティションの並び替え ===
 
   
 
パーティションの合間に新しいパーティションを作成したり、パーティションを削除した場合に、以下のコマンドでパーティションを並び替えられます。
 
パーティションの合間に新しいパーティションを作成したり、パーティションを削除した場合に、以下のコマンドでパーティションを並び替えられます。
   
MBR の場合:
 
 
# sfdisk -r ''/dev/sda''
 
# sfdisk -r ''/dev/sda''
   
  +
[[永続的なブロックデバイスの命名]]を使っていない場合、パーティションを並び替えたら {{ic|/etc/fstab}} や {{ic|/etc/crypttab}} ファイルを修正する必要があるかもしれません。
GPT の場合:
 
# sgdisk -s ''/dev/sda''
 
   
  +
{{Note|パーティション(例えば {{ic|/dev/sda1}})を利用可能にするために、カーネルは新しいパーティションテーブルを読み込む必要があります。システムを再起動するか、カーネルに[https://serverfault.com/questions/36038/reread-partition-table-without-rebooting パーティションテーブルを再読込み]させてください。}}
[[永続的なブロックデバイスの命名]]を使っていない場合、パーティションを並び替えたら {{ic|/etc/fstab}} や {{ic|/etc/crypttab}} ファイルを修正する必要があります。
 
   
  +
== 参照 ==
=== GPT ヘッダのリカバリ ===
 
   
  +
* [https://www.redhat.com/sysadmin/partitions-fdisk Managing partitions in Linux with fdisk]
メイン GPT ヘッダあるいはバックアップ GPT ヘッダが破損した場合、''gdisk'' を使うことでどちらか片方からもう片方を復元できます ({{ic|/dev/sda}} は適当なディスクに置き換えてください):
 
# gdisk ''/dev/sda''
 
リカバリの {{ic|r}} を選択して、以下のどちらかを選択してください:
 
* {{ic|b}}: バックアップ GPT ヘッダを使う (メイン GPT ヘッダを再生成)。
 
* {{ic|d}}: メイン GPT ヘッダを使う (バックアップ GPT ヘッダを再生成)。
 
リカバリが完了したらディスクにテーブルを書き込んで {{ic|w}} コマンドで終了してください。
 
 
=== gdisk EFI アプリケーション ===
 
 
EFI バージョンの gdisk パッケージはありませんが、Rod Smith 氏がビルド済みの gdisk EFI バイナリを [https://sourceforge.net/projects/gptfdisk/files/gptfdisk/ SourceForge] にて配布しています。{{ic|gdisk-efi-*.zip}} をダウンロードしてアーカイブを展開してください。使用方法は {{ic|gdisk_x64.efi}} を [[EFI システムパーティション]]にコピーして[[ブートローダー]]か [[Unified Extensible Firmware Interface#UEFI シェル|UEFI シェル]]から起動してください。
 
 
''gdisk_x64.efi'' を使えばオペレーティングシステムが起動する前でもパーティションテーブルを編集できるようになります。使用方法は Linux での ''gdisk'' バイナリと変わりません。
 
 
{{Note| ''gdisk_x64.efi'' はファイルシステムにアクセスできません。ゆえにパーティションテーブルをファイルにバックアップしたり、バックアップファイルからパーティションテーブルを復活させたりはできません。}}
 
 
さらなる情報については [https://sourceforge.net/p/gptfdisk/code/ci/master/tree/README-efi.txt README-efi.txt] をご覧ください。
 
 
== 参照 ==
 
   
  +
{{TranslationStatus|fdisk|2022-07-30|721576}}
*[http://www.rodsbooks.com/gdisk/index.html GPT fdisk Tutorial] - gdisk の公式ウェブページ。
 
*[http://www.novell.com/coolsolutions/feature/19350.html Manually Partitioning Your Hard Drive with fdisk]
 

2022年7月30日 (土) 22:36時点における版

関連記事

util-linux fdisk はダイアログで操作するコマンドラインユーティリティで、ハードディスク上のパーティションテーブルやパーティションを作成・編集することができます。ハードディスクはパーティションに分割され、その分割情報はパーティションテーブルに記述されます。

この記事では fdisk(8) とその派生である sfdisk(8) ユーティリティについて解説します。

ノート: util-linux 2.23 以降、fdiskGPT をサポートしています。[1] GPT に対しては gptfdisk を使うこともできます。詳細は gdisk を見てください。
ヒント: Curses ベースのユーザインターフェイスで基本的なパーティショニング機能を使いたい場合は、cfdisk(8) を使うことができます。

インストール

fdisk とその派生ユーティリティは、util-linux パッケージにより提供されています。このパッケージは base メタパッケージの依存パッケージです。

パーティションの確認

デバイス上のパーティションテーブルとパーティションを確認するには、以下を実行します (デバイスの名前 /dev/sda は適当に置き換えてください):

# fdisk -l /dev/sda
ノート: デバイスを指定しなかった場合、fdisk/proc/partitions の全てのパーティションを表示します。

パーティションテーブルのバックアップとリストア

ハードディスクに変更を加える前に、ドライブのパーティションテーブルとパーティションスキームをバックアップしておくと良いでしょう。また、バックアップを利用して、同じパーティションレイアウトを多数のドライブにコピーすることもできます。

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

/dev/sda1 : start=2048, size=1048576, type=0FC63DAF-8483-4772-8E79-3D69D8477DE4, uuid=BBF1CD36-9262-463E-A4FB-81E32C12BDE7

レイアウトを復元するには次を実行:

# sfdisk /dev/sda < sda.dump

パーティションテーブルとパーティションの作成

パーティショニングするときはまずパーティションテーブルを作成します。その後、望ましいパーティションスキームにあわせてパーティションを作成します。MBRGPT のどちらを使用するかについてはパーティションテーブルを見てください。

最初に、パーティションテーブルとレイアウトをバックアップすることを推奨します。

最近のバージョンの fdisk はデフォルトの表示単位にシリンダーを使用する古いシステムのサポートや、MS-DOS との互換性をデフォルトで廃止しています。fdisk は自動的に全てのパーティションを2048セクタ (1024 KiB、1セクタあたり 512 B) にアライメントします。なので、すべての Advanced Format HDD と、全てではないにしても大半の SSH と互換性があるはずです。つまりデフォルト設定で正しいアライメントが行われます。

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 となります。パーティション番号は、ディスク上のパーティションの順番と必ずしも一致しているとは限りません。この場合、パーティションをソートすることができます。

パーティション番号は、fdisk によって提案されたデフォルトの番号を使うことをおすすめします。

先頭と末尾のセクタ

パーティションの先頭のセクタは、セクタ番号を使って絶対値で指定しなければなりません。パーティションの末尾のセクタは、セクタ番号で絶対値で指定するか、あるいはキビバイト(K)、メビバイト(M)、ギビバイト(G)、テビバイト(T)、ペビバイト(P)単位で指定することができます。

パーティションの末尾のセクタの位置の指定方法は以下の2通りあります:

  • ディスクの先頭からの絶対値。例えば、先頭のセクタとして 40M を指定すると、ディスクの先頭から 40 MiB の位置となります。
  • +size-size のように、サイズの前に +/- を付けると相対値を指定できます。例えば、デフォルトの先頭セクタから 2 GiB の点を指定するには +2G、利用可能な末尾のセクタから 200 MiB の点を指定するには -200M

何も入力しないで Enter キーを押すと、先頭セクタの一番広いブロックから末尾セクタと同じブロックの終末までが指定されます。

ヒント:
  • パーティショニング時に +size{M,G,T,P} 記法による相対値を使ってパーティションサイズを指定し、常に 1 MiB 以上のサイズを使うと良いでしょう。このようにサイズを指定すれば、パーティションは常にデバイスの特性に従ってアライメントされます。
  • MBR パーティションテーブルのディスクでは、ディスクの末尾に512バイトのセクタ33個分(16.5 KiB)のパーティショニングされていない空き領域を作っておくことで、MBR と GPT の変換ができるようになります。
  • EFI システムパーティションには、タイプ EFI System を指定する必要があります。
  • GRUB を GPT のディスクにインストールする際は、タイプ BIOS bootBIOS ブートパーティションが必要です。
  • スワップパーティションには Linux swap を使用することを推奨します。そうすると、Systemd がそのパーティションを自動マウントしてくれます。

これらのパーティションのサイズや配置に関する考慮事項はそれぞれの記事を見てください。

必要なパーティションが揃うまで、この手順を繰り返してください。

パーティションタイプの変更

それぞれのパーティションには、1つのタイプが割り当てられます。MBR では、パーティション ID を使います。GPT では、パーティションタイプ GUID を使います。

パーティションのタイプを変更するには、t を入力してください。デフォルトでは Linux filesystem が使用され、ほとんどのユースケースで問題ないはずです。

ヒント:

パーティションを起動可能にする

a を入力することで、MBR パーティションを起動可能にすることができます。

ディスクに変更を書き込む

ディスクにテーブルを書き込んで終了するには w コマンドを使います。

パーティションの移動

警告: パーティションはオフラインでのみ移動できます。パーティションを移動するには、パーティション全体をディスクに書き直す必要があるため、時間がかかり、潜在的に危険な操作になります。バックアップを強くお勧めします! sfdisk のマニュアルページによると、 'この操作は危険を伴います"

パーティションを移動するには、パーティションを移動する場所に空き領域が必要です。必要に応じて、パーティションとその上のファイルシステムを縮小することでスペースを空けることができます。 Parted#パーティションの縮小 を参照してください。パーティションを再配置するには:

# echo '+sectors,' | sfdisk --move-data device -N number

ここで、sectors はパーティションを移動するセクターの数です(+ はパーティションを前方に移動することを示します)、device はパーティションを保持するデバイスであり、number はパーティション番号です。ディスクの中央または先頭に新しいパーティションを追加する場合は、パーティションの番号を付け直す必要があることに注意してください。 #パーティションのソート または fdisk の "extrafunctionality" モードを参照してください。

ヒントとテクニック

パーティションのソート

パーティションの合間に新しいパーティションを作成したり、パーティションを削除した場合に、以下のコマンドでパーティションを並び替えられます。

# sfdisk -r /dev/sda

永続的なブロックデバイスの命名を使っていない場合、パーティションを並び替えたら /etc/fstab/etc/crypttab ファイルを修正する必要があるかもしれません。

ノート: パーティション(例えば /dev/sda1)を利用可能にするために、カーネルは新しいパーティションテーブルを読み込む必要があります。システムを再起動するか、カーネルにパーティションテーブルを再読込みさせてください。

参照

翻訳ステータス: このページは en:fdisk の翻訳バージョンです。最後の翻訳日は 2022-07-30 です。もし英語版に 変更 があれば、翻訳の同期を手伝うことができます。