2020-11-02 (Mon) Fedora 33 で Btrfs がデフォルトに
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 の表示が正しくない。後で調べる。