MENU

利用可能なファイルシステム形式を調べてディスクをフォーマットする手順

目次

まず結論 — 目的別に使うコマンドの早見表

「使えるファイルシステム形式を調べたい」場面は大きく4種類あります。それぞれに対応する最短のコマンドを先に整理します。

カーネルが現在サポートしている形式を一覧表示したい/proc/filesystems を参照する

cat /proc/filesystems

フォーマット(mkfs)で使える形式を確認したい → インストール済みの mkfs.* コマンドを一覧表示する

find /sbin /usr/sbin -name 'mkfs.*' 2>/dev/null | sort -u

パーティションタイプコードを確認したい(MBR/GPT)fdisk または sgdisk で一覧を表示する

接続済みディスクの現在のファイルシステム形式を確認したいlsblk -f または blkid を使う

lsblk -f
sudo blkid

カーネルがサポートするファイルシステム形式を調べる

/proc/filesystems は、現在動作中のカーネルが認識しているファイルシステム形式の一覧です。マウントや自動検出に使われる情報がリアルタイムに記録されており、読み取り専用でいつでも参照できます。

cat /proc/filesystems

出力例(AlmaLinux 9 / Ubuntu 24.04 LTS 環境):

nodev   sysfs
nodev   tmpfs
nodev   bdev
nodev   proc
nodev   cgroup2
nodev   devtmpfs
nodev   hugetlbfs
nodev   devpts
        ext3
        ext2
        ext4
        squashfs
        vfat
        exfat
nodev   fuse
        fuseblk
nodev   overlay
        xfs
        btrfs
nodev   nfs
nodev   nfs4
        iso9660
        udf

行頭の nodev は「ブロックデバイスを必要としない仮想ファイルシステム」を意味します。tmpfsproc などがこれにあたり、実際のディスクパーティションには使えません。nodev なしで表示される ext4xfsbtrfsvfat などが、物理ディスクに使用できる形式です。

特定の形式に対応しているかだけを素早く調べたいときは、grep で絞り込むのが手軽です。

# xfs に対応しているか確認する例
grep -w xfs /proc/filesystems

一致する行が出力されれば対応済み、何も出力されなければカーネルモジュールのロードが必要か、パッケージが未インストールの状態です。f2fsntfs3(カーネル 5.15 以降で追加)のように、modprobe でモジュールを追加ロードすれば対応できる形式もあります。

フォーマットに使えるmkfsの種類を確認する

実際にパーティションをフォーマットするには mkfs 系コマンドを使います。インストール済みの種類は以下のコマンドで確認できます。/sbin/usr/sbin はディストリビューションによって配置が異なるため、両方を検索しています。

find /sbin /usr/sbin -name 'mkfs.*' 2>/dev/null | sort -u

一般的な出力例:

/usr/sbin/mkfs.bfs
/usr/sbin/mkfs.btrfs
/usr/sbin/mkfs.cramfs
/usr/sbin/mkfs.ext2
/usr/sbin/mkfs.ext3
/usr/sbin/mkfs.ext4
/usr/sbin/mkfs.fat
/usr/sbin/mkfs.minix
/usr/sbin/mkfs.msdos
/usr/sbin/mkfs.ntfs
/usr/sbin/mkfs.vfat
/usr/sbin/mkfs.xfs

mkfs.btrfsbtrfs-progsmkfs.xfsxfsprogsmkfs.ntfsntfs-3g パッケージに含まれており、OS の標準インストールには含まれていない場合があります。使いたい形式のコマンドが見つからなければ、先にパッケージを追加します。

# Debian/Ubuntu
sudo apt install xfsprogs btrfs-progs ntfs-3g

# RHEL/AlmaLinux/Rocky Linux
sudo dnf install xfsprogs btrfs-progs ntfsprogs

注意: mkfs.* コマンドを実行すると、指定したパーティションの既存データはすべて消去されます。デバイス名(/dev/sdb1 など)の指定を誤ると取り返しがつかないため、後述の lsblk -fblkid で作業対象を必ず事前確認してください。

パーティションタイプコードを確認する(MBR・GPT両対応)

LVM・Linux RAID・EFI パーティションを構成するときは、ファイルシステム形式とは別に「パーティションタイプコード」を正しく設定する必要があります。コードを誤ると起動できなかったり、LVM が認識されなかったりするため、作業前に一覧を確認しておくのが確実です。

MBR(DOS)形式の場合:fdisk の対話モードで確認

MBR ディスクのタイプコードは 16 進数 2 桁で管理されます。fdisk の対話モードで l を入力すると、認識しているコードの一覧が表示されます。q で終了すれば、ディスクの内容は変更されません。

sudo fdisk /dev/sda
# 対話モードに入ったら l と入力してタイプコード一覧を表示
# 確認が終わったら q で終了(変更なし)

実務でよく使うコードは以下の4つです。

83  Linux(汎用のデータパーティション)
82  Linux スワップ
8e  Linux LVM
fd  Linux RAID 自動検出

GPT 形式の場合:sgdisk で非対話的に確認

現代のサーバーやデスクトップでは GPT(GUID Partition Table)形式が主流です。GPT のパーティションタイプは GUID で管理されるため、コード体系が MBR とは異なります。sgdisk コマンドを使うと、デバイスを指定せずにタイプコード一覧を表示できます。

# gdisk パッケージが必要
sudo apt install gdisk        # Debian/Ubuntu
sudo dnf install gdisk        # RHEL/AlmaLinux/Rocky

# デバイス指定不要でタイプコード一覧を表示(先頭40行)
sgdisk --list-types 2>/dev/null | head -40

出力は 4 桁の 16 進数コードと GUID の組み合わせで表示されます。実務でよく使うコードは以下のとおりです。

8300  Linux ファイルシステム(汎用データパーティション)
8200  Linux スワップ
8e00  Linux LVM
fd00  Linux RAID
ef00  EFI システムパーティション
ef02  BIOS ブートパーティション(GRUB 用)

パーティション作成時にタイプコードを指定するには、sgdisk -t 1:8e00 /dev/sdb のように -t パーティション番号:コード を使います。

接続済みディスクの現在のファイルシステム形式を確認する

新しいディスクを追加する前に、既存デバイスのファイルシステム形式とマウント状態を把握しておくことは基本です。誤ったデバイスをフォーマットするリスクを下げるためにも、必ず実施してください。

lsblk -f

出力例:

NAME        FSTYPE  FSVER  LABEL  UUID                                   FSAVAIL FSUSE% MOUNTPOINTS
sda
├─sda1      vfat    FAT32         B9F3-4A21                               511.4M     0% /boot/efi
├─sda2      ext4    1.0           d3e5c7a1-12ab-4cde-89ef-123456789abc    800.7M    12% /boot
└─sda3      ext4    1.0           a1b2c3d4-5678-90ab-cdef-123456789def     89.2G    35% /
sdb
└─sdb1      xfs            data   f1e2d3c4-b5a6-7890-abcd-ef1234567890      1.7T     8% /data
sdc                                                                                      

FSTYPE 列が空欄のデバイスは、未フォーマット状態かパーティションが未作成です。上の例では sdc が該当します。MOUNTPOINTS 列を確認することで、マウント中のデバイスを誤って操作するミスを防げます。

UUID やラベルなど詳細情報が必要な場合は blkid を使います。

sudo blkid
/dev/sda1: UUID="B9F3-4A21" TYPE="vfat" PARTUUID="..."
/dev/sda2: UUID="d3e5c7a1-..." TYPE="ext4" PARTUUID="..."
/dev/sda3: UUID="a1b2c3d4-..." TYPE="ext4" PARTUUID="..."
/dev/sdb1: LABEL="data" UUID="f1e2d3c4-..." TYPE="xfs" PARTUUID="..."

ファイルシステムの種別が分からないパーティションを個別に調べる場合は、file -s も有効です。

sudo file -s /dev/sda3
# 出力例: /dev/sda3: Linux rev 1.0 ext4 filesystem data, UUID=... (extents) (64bit) ...

実務での落とし穴と作業前チェックの習慣

ある運用現場では、ディスク増設作業の際に lsblk -f を省略してデバイス名を思い込みで指定し、本番データが入ったパーティションをフォーマットして消去してしまうミスが発生しています。確認コマンド一発で防げる事故を「慣れているから大丈夫」と省略するコストは非常に高くつきます。

作業前のチェックリストとして、以下の順番を徹底することをおすすめします。

# 1. 全デバイスの現状確認(FS種別・マウント先・使用率)
lsblk -f

# 2. 作業対象デバイスの詳細確認(UUID・ラベル)
sudo blkid /dev/sdc

# 3. 使えるフォーマット形式の確認
find /sbin /usr/sbin -name 'mkfs.*' 2>/dev/null | sort -u

# 4. 実際のフォーマット(デバイス名を十分に確認してから実行)
sudo mkfs.xfs /dev/sdc1

また、nvme0n1vda のように環境によってデバイス名が変わる点にも注意が必要です。クラウド環境や仮想マシンでは sda ではなく vda(Virtio)、NVMe SSD では nvme0n1nvme0n1p1 のような名前になります。lsblk -f の出力を起点にデバイス名を確認し、思い込みで進めないことが安全な作業の基本です。

<PR>この記事に関連するおすすめ書籍

新しいLinuxの教科書 第2版

コマンド操作から基本的な運用までを手を動かしながら体系的に学べる定番書。地力を固めたい方に。

「コマンドは打てる。次は”現場で通用する型”を最短で身につけたい」——そんなあなたへ。

ネットの断片的なTipsをコピペするだけでは、体系的な運用スキルはなかなか積み上がりません。リナックスマスター.JPの無料メルマガ「リナマガ」では、現場で実際に使うLinuxサーバー運用の考え方を、順を追って実務目線でお届けしています。いま登録された方には、安全なサーバー構築の「型」をまとめた『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼント中です。

>> 図解60P『Linux入門マニュアル』を無料で受け取る
(メルマガ登録は10秒・いつでも解除OK)

※ 「独学の時間がもったいない」「プロから現場の技術を最短で学びたい」という本気の方には、2日で実務レベルが身につく初心者向けハンズオンセミナーもご用意しています。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次