Ext4 から Btrfs に移行
その時の手順と状況の記録
前提 (移行以前)
code:sh
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
nvme0n1 259:0 0 476.9G 0 disk
├─nvme0n1p1 259:1 0 512M 0 part /boot
└─nvme0n1p2 259:2 0 476.4G 0 part
└─vg0 254:0 0 476.4G 0 crypt
├─vg0-swap 254:1 0 16G 0 lvm SWAP └─vg0-root 254:2 0 460.4G 0 lvm /
code:sh
$ cat /etc/fstab
# Static information about the filesystems.
# See fstab(5) for details.
# <file system> <dir> <type> <options> <dump> <pass>
# /dev/mapper/vg0-root
UUID=4bb9de44-b061-466d-b6ce-fd3b9ae7ef37 / ext4 rw,relatime 0 1
# /dev/nvme0n1p1 LABEL=ESP
UUID=9F92-B431 /boot vfat rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 2
# /dev/mapper/vg0-swap
UUID=e4ecaaa7-cea6-4aea-b538-85817957795b none swap defaults 0 0
手順
# cryptsetup open --type luks /dev/nvme0n1p2 vg0
# btrfs-convert /dev/mapper/vg0-root
/etc/fstab を編集
code:sh
# <file system> <dir> <type> <options> <dump> <pass>
# /dev/mapper/vg0-root
UUID=a0bb3c42-0485-4367-90dd-5be4956344d3 / btrfs rw,relatime 0 0
最後のフィールド <pass> を 0 に変更
# arch-chroot /dev/mapper/vg0-root
# mkinitcpio -p linux
# btrfs subvolume delete /ext2_saved
# btrfs balance start /
code:sh
ERROR: error during balancing '/': Input/output error
There may be more info in syslog - try dmesg | tail`
エラーで失敗する
# btrfs filesystem defragment -r -v -czstd /
約 290 GB から 約 208 GB まで圧縮できた (圧縮率:約 72 %) この後 # btrfs balance start -dusage=10 -musage=10 / をすると成功したが、 -dusage=15 -musage=15 では失敗
(追記:2023/05/21 18:34)
code:sh
$ sudo btrfs subvolume list /
ID 258 gen 18064 top level 5 path var/lib/portables
ID 259 gen 18064 top level 5 path var/lib/machines
参考