Fedora 33 がリリースされた。今回のトピックは、Workstationエディションでのデフォルト file system が Btrfs になった。
公式edition は次の5つ. Fedora 31-32 から変更なし。
- Fedora Workstation
- Fedora Server. このeditionは引き続き XFS がデフォルト。
- Fedora IoT.
- Fedora CoreOS (preview) -- CoreOS team (https://coreos.com/) が Red Hat にジョイン. この上で Docker を動かすための最小限の構成.
- Fedora SilverBlue (preview)
Workstation のDVDを落とし, 何も考えずにデフォルト設定でインストールした。
インストーラは, ユーザ登録もなしにインストールが開始して、驚いた。再起動後にユーザ登録するようになっていた。rootパスワードを入れる場所がない。
インストールが完了し, 立ち上げると, 最初に作ったユーザからの sudo はできる。一般ユーザのパスワードが聞かれる。しかし su ができない。何ですと!!
単に, rootパスワードが設定されていないだけ。次のようにすればよい。
$ sudo passwd
本題。パーティションの切り方を見てみる。
$ df
ファイルシス 1K-ブロック 使用 使用可 使用% マウント位置
devtmpfs 1977260 0 1977260 0% /dev
tmpfs 1997072 0 1997072 0% /dev/shm
tmpfs 798832 1804 797028 1% /run
/dev/sda2 19921920 6616116 12632332 35% /
/dev/sda2 19921920 6616116 12632332 35% /home
/dev/sda1 999320 235224 695284 26% /boot
tmpfs 1997072 36 1997036 1% /tmp
tmpfs 399412 80 399332 1% /run/user/42
tmpfs 399412 56 399356 1% /run/user/1000
/home
は分けているが, /var
は分けていない。/tmp
は tmpfs ファイルシステム。
/var/tmp
は実体ディレクトリ。このディレクトリは再起動しても消えない一時ファイル用なので、これでよい。
何か, /
と /home
の表示がおかしい。同じ値だ。/etc/fstab
はどうか。
# cat /etc/fstab
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#
UUID=3b75e79d-3bfa-49ce-a03d-d8f200539e80 / btrfs subvol=root 0 0
UUID=545bd837-ccf2-4ebf-a23d-9898279f7028 /boot ext4 defaults 1 2
UUID=3b75e79d-3bfa-49ce-a03d-d8f200539e80 /home btrfs subvol=home 0 0
何だこりゃ, UUID が同じになっている。ツリー表示も見てみよう。
# findmnt
TARGET SOURCE FSTYPE OPTIONS
/ /dev/sda2[/root]
│ btrfs rw,relatime,seclabel,space_cache,s
├─/sys sysfs sysfs rw,nosuid,nodev,noexec,relatime,se
│ ├─/sys/kernel/security securityfs securit rw,nosuid,nodev,noexec,relatime
│ ├─/sys/fs/cgroup cgroup2 cgroup2 rw,nosuid,nodev,noexec,relatime,se
│ ├─/sys/fs/pstore pstore pstore rw,nosuid,nodev,noexec,relatime,se
│ ├─/sys/fs/bpf none bpf rw,nosuid,nodev,noexec,relatime,mo
│ ├─/sys/kernel/tracing none tracefs rw,relatime,seclabel
│ ├─/sys/fs/selinux selinuxfs selinux rw,nosuid,noexec,relatime
│ ├─/sys/kernel/debug debugfs debugfs rw,nosuid,nodev,noexec,relatime,se
│ ├─/sys/fs/fuse/connections fusectl fusectl rw,nosuid,nodev,noexec,relatime
│ └─/sys/kernel/config configfs configf rw,nosuid,nodev,noexec,relatime
├─/proc proc proc rw,nosuid,nodev,noexec,relatime
│ └─/proc/sys/fs/binfmt_misc systemd-1 autofs rw,relatime,fd=30,pgrp=1,timeout=0
├─/dev devtmpfs devtmpf rw,nosuid,noexec,seclabel,size=197
│ ├─/dev/shm tmpfs tmpfs rw,nosuid,nodev,seclabel
│ ├─/dev/pts devpts devpts rw,nosuid,noexec,relatime,seclabel
│ ├─/dev/hugepages hugetlbfs hugetlb rw,relatime,seclabel,pagesize=2M
│ └─/dev/mqueue mqueue mqueue rw,nosuid,nodev,noexec,relatime,se
├─/run tmpfs tmpfs rw,nosuid,nodev,seclabel,size=7988
│ └─/run/user/1000 tmpfs tmpfs rw,nosuid,nodev,relatime,seclabel,
│ └─/run/user/1000/gvfs gvfsd-fuse fuse.gv rw,nosuid,nodev,relatime,user_id=1
├─/boot /dev/sda1 ext4 rw,relatime,seclabel
├─/home /dev/sda2[/home]
│ btrfs rw,relatime,seclabel,space_cache,s
├─/tmp tmpfs tmpfs rw,nosuid,nodev,seclabel,nr_inodes
└─/var/lib/nfs/rpc_pipefs sunrpc rpc_pip rw,relatime
SOURCE に [/root]
などが付いている。
Btrfs は、filesystem に対してサブヴォリューム subvolume を複数繋げることができる。サブヴォリュームを mount する. また, スナップショットも, サブヴォリュームに対して作成する。
Filesystemの使用実績の正しい値を表示するには, root になって, 次のようにする。こちらは /dev/
以下のパスを指定。
# btrfs filesystem show /dev/sda2
Label: 'fedora_localhost-live' uuid: 3b75e79d-3bfa-49ce-a03d-d8f200539e80
Total devices 1 FS bytes used 6.14GiB
devid 1 size 19.00GiB used 9.02GiB path /dev/sda2
19Gbytes のドライブで、使用されたのが 6Gbytes.
一般ユーザだと次のようにする. こちらはマウントポイント。
$ btrfs filesystem df /
Data, single: total=8.01GiB, used=5.96GiB
System, DUP: total=8.00MiB, used=16.00KiB
Metadata, DUP: total=512.00MiB, used=183.22MiB
GlobalReserve, single: total=16.84MiB, used=0.00B
Total の表示が正しくない。後で調べる。