◆ mkfs.exfat でフォーマットしてから Windows につなぐとファイルシステムが認識されない
◆ Windows でフォーマットしてから Ubuntu につなぐと問題なくマウントして使用できる
◆ Linux 5.7 で exFAT がカーネルに取り込まれたけどユーザスペース側の exfatprogs は 20.10 から

前記事までで見つけた古い PC の中の 1 つに Ubuntu20.04 を入れました
現時点の最新の LTS です

ついでに 遅いけど容量は大きい HDD も見つけたのでバックアップデータ保存用にしようと思います
用途は決めたものの フォーマットしようとしたときに困ったのが どのフォーマットにするかです
ext4 だと Windows で扱えないですし Linux 用で NTFS ってどうなのかなと思ったり
PC 以外の機器にも使うことを考えると FAT32 か exFAT が無難でしょうか
FAT32 は制限も多いので exFAT にしようと思います

exFAT

parted や gparted では exFAT の作成がサポートされていないので exfat-utils をインストールします
インストールすると使えるようになる mkfs.exfat コマンドでフォーマットできます

/dev/sdb1 をフォーマットして問題なくマウントして読み書きできました

しかし Windows10 につなぐと見れません
ディスクの管理でパーティション自体は認識されてるようですが 不明な未フォーマットパーティションのように扱われます
操作はボリュームの削除のみできる状態です


今度は逆に Windows10 で exFAT にフォーマットしてみます
適当にファイルを作って Ubuntu につないでマウントしてみます
こっちは問題なくマウントできて Windows10 で書きこんだファイルを参照したり編集したりできています

Ubuntu で作った exFAT は Windows 側では読めない互換性がないものになってるみたいです
調べてみても exFAT の仕様は非公開なので 完全な互換性があるわけではないようです
こういうことは普通にあるみたいです

割と最近に exFAT の仕様が公開されてたはずですが まだ完全なサポートはされないのでしょうか

Linux の exFAT 対応

調べてみたら Linux 5.7 でカーネルに exFAT の機能が取り込まれたようです
Ubuntu 20.04 でカーネルバージョンを見ると 5.8 でした
完全に互換性があっても良さそうですけど……

もう少し調べていると 20.10 からの対応になってそうでした

20.04 までは mkexfatfs は provided by exfat-utils ですが
20.10 からは mkexfatfs は provided by exfatprogs に変わっています
http://manpages.ubuntu.com/manpages/focal/man8/mkexfatfs.8.html
http://manpages.ubuntu.com/manpages/groovy/man8/mkexfatfs.8.html

exfatprogs はユーザスペースで exFAT を扱う公式のユーティリティらしいです
https://github.com/exfatprogs/exfatprogs

20.04 では parted/gparted も exFAT 未対応でしたし完全な exFAT 対応は期待しないほうが良さそうです
LTS を使うなら来年の 22.04 からでしょうか

一応 gparted は最新版では exfatprogs に対応した 1.2 がリリースされています
https://gitlab.gnome.org/GNOME/gparted/-/merge_requests/30

ただ Ubuntu 20.10 も現時点では apt のアップデートで 1.2 は来てないようです