Linux ファイルシステムを比較する

2020年6月29日

ディスク・ファイル管理

必要となるパッケージは、Gpartedを起動して[表示]メニューから[サポートするファイルシステム]で調べられる。

特徴

BtrFS

上書きせずに別のところに書き込む(コピーオンライト)
ReiserFSを参考に開発された
Gpartedでリサイズできる
openSUSEのデフォルト
複数のサブボリュームをそれぞれパーティションのようにマウント出来る。

BtrFSを実際に使ってみて・・・

  • 透過圧縮(zstd)はすごい良い。サイズが約半分になる。
  • 2つ以上のLinuxディストリビューションを1つのパーティションに入れられる。
  • snapshotで状態を記録して、もとに戻せる。
  • ある時点で snapshotでサブボリュームを作り(gitのブランチのように)それぞれ別のシステムとしてサブボリュームをマウントして起動できる。実験が互いに影響を与えずに出来る。
    参考: https://gihyo.jp/lifestyle/serial/01/ganshiki-soushi/0026
  • 時々バックグラウンドで何かが動く。これによって残りメモリが追いやられ Swap発生でフリーズ状態になる。これさえなければ使い続けたい! メモリ2GBでは少なすぎるのか!?
  • 残り容量が少なくなると、マウントがリードオンリーに変わる。ファイルを削除しても、balanceをやらないと容量が増えない。
  • システム起動が遅い。Firefoxなど 大きなアプリの起動が遅い。つまりファイルアクセスが遅い。balanceやdefragで 早くなると思ったが改善しない。
    時々、balanceやdefragをする必要がありそう。
  • duperemove(重複排除)は期待ほど容量削減には効果ない。

Ubuntuを一つのパーティションにインストールすると、ルートに @ と @HOME 2つのディレクトリが出来る。そのため、他のパーティションのUbuntu18.04のgrub(os-prober)から認識できない。

次のようにすると認識される。
sudo ln -s @/etc etc
sudo ln -s @/boot boot

JFS

CPUリソースが少ない。少メモリ向け。
使ってみてトラブルもなく良い。
欠点: パーティションのサイズ縮小が出来ない。

sudo apt install jfsutils

XFS

大きいファイル向け 1ファイルが数百MBからGBクラス
小さいファイルは inode と一緒に保管される。
i386システムでは、この XFS パーティションから bootできない。
Gpartedで サイズ縮小できない。

RHELが LVM+XFS

sudo apt install xfsprogs
sudo mkfs.xfs /dev/sdaX

Reiser4

ReiserFS

小さいファイルや テールを ひとつにまとめて書き込む。
CPUリソースを多く使うことがある。
古いシステム。
sudo apt install reiserfsprogs

F2FS

フラッシュメモリ用
sudo apt install f2fs-tools

ZFS

メモリを大量(実メモリの半分など GB単位)に使う

ディスク上サイズ 比較

(MB)端数切り上げ
ディレクトリ名 hub  pack
ファイル数 12219 4952 個
実サイズ  302 29
Ext4      336 45
XFS       330 39
JFS       332 40
ReiserFS  329 39

ファイルシステムを変換するツール

sudo apt install fstransform
ext2 ext3 ext4 reiserfs jfs xfs 等に対応している。

https://gihyo.jp/admin/clip/01/linux_dt/201808/20
https://github.com/cosmos72/fstransform

暗号化パーティション内にフィルシステムを作成

暗号化パーティション 1

gpartedでパーティション作成
sudo cryptsetup luksFormat /dev/sdaXX
パスワードを決めて入力
sudo cryptsetup open /dev/sdaXX home-user
sudo mkfs.btrfs /dev/mapper/home-user

暗号化パーティション 2

sudo apt install gnome-disk-utility
これでパーティションを作成

/etc/crypttab
crypthome UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx none luks

/etc/fstab
/dev/mapper/crypthome                     /home           ext4    defaults 0 2

起動直後のマウント時に暗号パスを聞かれる。

Lubuntuでは

Lubuntu 18.04.3 のインストールISOでフォーマットできる種類

  • BtrFS
  • XFS
  • JFS
  • Ext4 等