我的磁盘空间不足,所以我像平常一样清理了旧快照。这次,df -h /
坚持显示“没有可用空间”,同时btrfs fi df /
显示了几 GB 的空间,所以我决定运行一个btrfs balance
.
btrfs balance
由于“空间不足”错误而失败,我在网上搜索并定向到这篇博文建议通过临时添加一个能够运行的小型设备(甚至是 USB 闪存盘)来解决此问题btrfs balance
,然后在完成后将其删除。
我将我的随身碟添加到我的 rootfs 中:
btrfs dev add /dev/sdc1 /
没有显示错误,现在我有一些可用空间。我运行btrfs balance
并完成后,我尝试删除 U 盘:
sudo btrfs dev del /dev/sdc1 /
ERROR: error removing device '/dev/sdc1': unable to go below two devices on raid1
BTRFS 以某种方式决定使用 RAID1 配置文件中的驱动器来存储元数据和系统数据:
$ sudo btrfs fi usage /
Overall:
Device size: 864.53GiB
Device allocated: 857.05GiB
Device unallocated: 7.48GiB
Device missing: 0.00B
Used: 830.28GiB
Free (estimated): 24.93GiB (min: 21.23GiB)
Data ratio: 1.00
Metadata ratio: 2.00
Global reserve: 512.00MiB (used: 0.00B)
Data,single: Size:828.01GiB, Used:810.56GiB
/dev/mapper/masa-root 828.01GiB
Data,RAID1: Size:2.02GiB, Used:2.01GiB
/dev/mapper/masa-root 2.02GiB
/dev/sdc1 2.02GiB
Data,DUP: Size:2.00GiB, Used:1.94GiB
/dev/sdc1 4.00GiB
Metadata,RAID1: Size:2.97GiB, Used:131.61MiB
/dev/mapper/masa-root 2.97GiB
/dev/sdc1 2.97GiB
Metadata,DUP: Size:7.50GiB, Used:5.78GiB
/dev/mapper/masa-root 15.01GiB
System,RAID1: Size:32.00MiB, Used:128.00KiB
/dev/mapper/masa-root 32.00MiB
/dev/sdc1 32.00MiB
Unallocated:
/dev/mapper/masa-root 1.97GiB
/dev/sdc1 5.51GiB
如何正确删除这个临时设备?
答案1
从man btrfs device
:
删除设备
设备删除必须满足配置文件约束,否则命令将失败。例如:
$ btrfs device remove /dev/sda /mnt ERROR: error removing device '/dev/sda': unable to go below two devices on raid1
为了删除设备,您需要在这种情况下转换配置文件:
$ btrfs balance start -mconvert=dup -dconvert=single /mnt $ btrfs device remove /dev/sda /mnt