まず結論 — 目的別に使うコマンドの早見表
「使えるファイルシステム形式を調べたい」場面は大きく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 は「ブロックデバイスを必要としない仮想ファイルシステム」を意味します。tmpfs や proc などがこれにあたり、実際のディスクパーティションには使えません。nodev なしで表示される ext4・xfs・btrfs・vfat などが、物理ディスクに使用できる形式です。
特定の形式に対応しているかだけを素早く調べたいときは、grep で絞り込むのが手軽です。
# xfs に対応しているか確認する例
grep -w xfs /proc/filesystems
一致する行が出力されれば対応済み、何も出力されなければカーネルモジュールのロードが必要か、パッケージが未インストールの状態です。f2fs や ntfs3(カーネル 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.btrfs は btrfs-progs、mkfs.xfs は xfsprogs、mkfs.ntfs は ntfs-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 -f や blkid で作業対象を必ず事前確認してください。
パーティションタイプコードを確認する(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
また、nvme0n1 や vda のように環境によってデバイス名が変わる点にも注意が必要です。クラウド環境や仮想マシンでは sda ではなく vda(Virtio)、NVMe SSD では nvme0n1・nvme0n1p1 のような名前になります。lsblk -f の出力を起点にデバイス名を確認し、思い込みで進めないことが安全な作業の基本です。
「コマンドは打てる。次は”現場で通用する型”を最短で身につけたい」——そんなあなたへ。
ネットの断片的なTipsをコピペするだけでは、体系的な運用スキルはなかなか積み上がりません。リナックスマスター.JPの無料メルマガ「リナマガ」では、現場で実際に使うLinuxサーバー運用の考え方を、順を追って実務目線でお届けしています。いま登録された方には、安全なサーバー構築の「型」をまとめた『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼント中です。
>> 図解60P『Linux入門マニュアル』を無料で受け取る
(メルマガ登録は10秒・いつでも解除OK)
※ 「独学の時間がもったいない」「プロから現場の技術を最短で学びたい」という本気の方には、2日で実務レベルが身につく初心者向けハンズオンセミナーもご用意しています。
