这篇文章流程来自 https://xuanwo.io/2018/11/15/record-for-btrfs-conversion/ ,这是我在发现问题之后查看这篇文章之后的补充
这几天脑子抽了,想折腾着把自己 NAS 的主硬盘换成 NTFS (看了sy笔记本换 Btrfs 开透明压缩多,羡慕)。
先进行例行检查避免带病上阵
fsck.ext4 /dev/sda1
之后使用 btrfs-convert /sda1
进行转换,如果提示没有该命令,可以通过
sudo apt install btrfs-progs
安装。
由于这块盘并不是系统盘,所以我并需要更改过多的东西。我使用 systemctl
挂载,修改一下挂载的 DATA.mount 文件
[Unit]
Description = mount disk
[Mount]
What = /dev/disk/by-partuuid/YOUR_PARTUUID
Where = /DATA
Type = btrfs
Options = defaults
[Install]
WantedBy = local-fs.target
检查一下文件没有啥问题,这个盘上的服务也没怎么报错后,我按照以下方法删除了之前的备份
sudo btrfs subvolume delete /DATA/ext2_saved
sudo btrfs filesystem sync /DATA
之前还以为参考的 Xuanwo 出问题是因为开启了透明压缩,没想到,明明使用 sudo btrfs check --readonly /dev/sda1
进行检查没有什么问题,在 blance 时候还是出问题了。根据 Xuanwo 的记录,我进行 sudo btrfs scrub start /dev/sda1
时候并不能直接定位到错误的文件。问过 ChatGPT 后,我使用
sudo btrfs scrub start -B -d /dev/sda1
dmesg | grep "checksum error"
定位到错误的文件是备份的一张照片,还有一个不知道在哪的 image 文件夹。我将照片直接删除后再 scrub ,没问题了,可以正常使用 btrfs balance start /DATA
来 balance。
之后将 DATA.mount 文件改成如下启用了透明压缩
[Unit]
Description = mount disk
[Mount]
What = /dev/disk/by-partuuid/YOUR_PARTUUID
Where = /DATA
Type = btrfs
Options = defaults,compress=zstd
[Install]
WantedBy = local-fs.target
使用 sudo systemctl restart data.mount
后 mount | grep /DATA
来验证是否启用透明压缩
删除的那张照片在其他地方的备份
Comments NOTHING