$ cat /etc/fstab
# <file system> <mount point> <type> <options> <dump> <pass>
UUID=a168d1ac-4e13-4643-976d-6e47ea1732b1 /boot ext2 defaults 0 1
/dev/mapper/sda4_crypt / btrfs defaults,autodefrag,compress=lzo,inode_cache,space_cache,subvol=@ 0 2
/dev/mapper/sda4_crypt /tmp btrfs defaults,autodefrag,compress=lzo,inode_cache,space_cache,subvol=@tmp 0 2
/dev/mapper/sda4_crypt /run btrfs defaults,autodefrag,compress=lzo,inode_cache,space_cache,subvol=@run 0 2
/dev/mapper/sda4_crypt /var/crash btrfs defaults,autodefrag,compress=lzo,inode_cache,space_cache,subvol=@var-crash 0 2
/dev/mapper/sda4_crypt /var/tmp btrfs defaults,autodefrag,compress=lzo,inode_cache,space_cache,subvol=@var-tmp 0 2
/dev/mapper/sda4_crypt /var/log btrfs defaults,autodefrag,compress=lzo,inode_cache,space_cache,subvol=@var-log 0 2
/dev/mapper/sda4_crypt /var/spool btrfs defaults,autodefrag,compress=lzo,inode_cache,space_cache,subvol=@var-spool 0 2
/dev/mapper/sda5_crypt /home btrfs defaults,autodefrag,compress=lzo,inode_cache,space_cache,subvol=@home 0 3
/dev/mapper/750er /media/750er ext4 defaults 0 4
/dev/mapper/cswap none swap defaults 0 5
➜ ~ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/sda4_crypt 38G 12G 13M 100% /
none 4,0K 0 4,0K 0% /sys/fs/cgroup
udev 2,0G 4,0K 2,0G 1% /dev
tmpfs 396M 1,3M 394M 1% /run
none 5,0M 0 5,0M 0% /run/lock
none 2,0G 208K 2,0G 1% /run/shm
none 100M 36K 100M 1% /run/user
/dev/mapper/sda4_crypt 38G 12G 13M 100% /tmp
/dev/sda2 231M 44M 175M 21% /boot
/dev/mapper/sda4_crypt 38G 12G 13M 100% /var/crash
/dev/mapper/sda4_crypt 38G 12G 13M 100% /var/tmp
/dev/mapper/sda4_crypt 38G 12G 13M 100% /var/log
/dev/mapper/sda4_crypt 38G 12G 13M 100% /var/spool
/dev/mapper/sda5_crypt 3,7T 2,4T 1,2T 67% /home
/dev/mapper/750er 688G 276G 377G 43% /media/750er
/dev/mapper/2tb 1,8T 1,7T 141G 93% /media/2tb
➜ ~ sudo btrfs fi df /
Data, single: total=9.47GiB, used=9.46GiB
System, DUP: total=8.00MiB, used=16.00KiB
System, single: total=4.00MiB, used=0.00
Metadata, DUP: total=13.88GiB, used=1.13GiB
Metadata, single: total=8.00MiB, used=0.00
➜ ~
Это раздел размером 40 ГБ с некоторыми снимками. Но он сжат, поэтому я думаю, что 9,46 ГБ / 40 ГБ является точной. Но мой Ubuntu терпит неудачу, потому что он говорит, что у него нет дискового пространства.
И я знаю, что не полагаться на df Я просто включил его для полноты.
d2] Я думаю, Ubuntu использует df, который, как известно, неправильно сообщает Btrfs и по этой причине не работает. Это имеет смысл для APT, когда он проверяет пространство. Но на самом деле он не записывается на диск.
$ sudo time dd if=/dev/zero of=large bs=2G count=1
dd: error writing ‘large’: No space left on device
0+1 records in
0+0 records out
11747328 bytes (12 MB) copied, 1,29706 s, 9,1 MB/s
Command exited with non-zero status 1
0.00user 1.40system 0:01.44elapsed 97%CPU (0avgtext+0avgdata 2098028maxresident)k
160inputs+23104outputs (0major+383008minor)pagefaults 0swaps
Краткий ответ: метаданные раздела Btrfs отображаются как «используемые» стандартными дисковыми утилитами, такими как df.
проверяют объем проблемы. например: /btrfs subvolume list /
Скорее всего, моментальные снимки заполняют громкость. Удалите снимок, который вам не нужен. держите его с последней даты, когда вы уверены, что система работает нормально. btrfs subvolume delete <path>
Где находится путь из предыдущего списка подвыборки команд, в котором говорится «моментальный снимок». Перезагрузка и завершение работы Причиной проблемы может быть ваш диспетчер дистрибутивов или диспетчер пакетов, делающий моментальные снимки при каждом обновлении системы.
NB: команда баланса не работает, если диск заполнен, поскольку нет свободное пространство для бланка.
В моем случае использование диска не снизилось бы даже при удалении файлов и моментальных снимков.
баланс btrfs (данные и метаданные) не работал с ошибкой «на устройстве нет места» [!d1 ]
btrfs balance start -m /
ERROR: error during balancing '/': No space left on device
There may be more info in syslog - try dmesg | tail
RAID1 показал полное использование на обоих дисках, хотя фактическое использование данных было ниже трети этого.
# btrfs fi sh
Label: none uuid: 61a20f1a-c133-11e6-964b-d3bac0c48bbd
Total devices 2 FS bytes used 153.94GiB
devid 1 size 455.76GiB used 455.76GiB path /dev/sda2
devid 2 size 455.76GiB used 455.76GiB path /dev/sdb2
# btrfs filesystem df /
Data, RAID1: total=452.73GiB, used=151.51GiB
System, RAID1: total=32.00MiB, used=80.00KiB
Metadata, RAID1: total=3.00GiB, used=2.42GiB
GlobalReserve, single: total=512.00MiB, used=0.00B
«На устройстве нет места» , не требует дополнительного пространства:
btrfs balance start -dusage=0 /
btrfs balance start -musage=0 /
Источник: https://btrfs.wiki.kernel.org/index.php/Manpage/btrfs-balance#ENOSPC
Альтернатива: Мое решение состояло в том, чтобы сжать диски. Смотрите: https://btrfs.wiki.kernel.org/index.php/Manpage/btrfs-balance#ENOSPC
btrfs filesystem resize 1:430g /
btrfs filesystem resize 2:430g /
[d11 ] (команды принимают время, проверяют syslog, чтобы видеть блоки перемещения) после этого изменить размер:
btrfs filesystem resize 1:450g /
btrfs filesystem resize 2:450g /
После этого снова восстановился баланс btrfs (метаданные):
btrfs balance -m /
Затем btrfs баланс данных (переместите куски данных, которые имеют менее 33% использования):
btrfs balance -dusage=33 /
Кредит отправляется на @ignis и @bain. Просто, чтобы получить простой прямой ответ на этот вопрос без всякой лекции и поделиться тем, что я на самом деле сделал, чтобы система снова работала.
btrfs balance start -m /mountpoint
Является ли волшебная линия для решения таких проблем. [ ! d1]
Я столкнулся с некоторыми проблемами, которые я не хочу вас утомлять, и я не знаю, что нужно было запускать это с живого компакт-диска, но то, что я сделал в конце после того, как система была испорчена не загружался btrfsck на устройствах (разблокированные криптографические устройства), и он действительно обнаруживал ошибки, а затем монтировал корневую файловую систему btrfs без каких-либо опций /mnt, в отличие от моей установленной системы, где / является единственным установленным @ subvolume. Поэтому у меня были все снимки и другие вспомогательные части. Я не знаю, что это имеет значение.
btrfs balance start -m /mnt
Я получил метаданные от
Metadata, DUP: total=13.88GiB, used=1.13GiB
до
Metadata, DUP: total=1.38GiB, used=1.05GiB
И обновление:
$ sudo df -h /
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/sda4_crypt 38G 12G 26G 31% /
Итак, я думаю, теперь все в порядке.