Корневой файловой системой моего Kubuntu (смонтированной в /
) является Btrfs. Я не использую -o discard
в качестве опции монтирования. Это означает, что мне нужно запустить fstrim
по требованию.
В прошлом я сталкивался с этой проблемой: btrfs, дискового пространства не осталось. Я заметил, что fstrim -v /
показал, что пространство почти не обрезается. Мое решение состояло в том, чтобы запустить btrfs balance start /
перед fstrim
. Это суть моего ответа там.
Сегодня все по-другому. Может быть, я слишком поздно с обслуживанием. Вот что происходит:
# fstrim -v /
/: 24 KiB (24576 bytes) trimmed
# btrfs balance start /
ERROR: error during balancing '/': No space left on device
Я удалил несколько подобъемов (снимков) с помощью btrfs subvolume delete …
и это не помогло. Я не могу вспомнить детали очень хорошо, но я думаю, что раньше я мог запустить btrfs balance …
btrfs … потому что предварительный fstrim
урезал, по крайней мере, несколько МиБ, а не так, как 24 КиБ, как сегодня. Теперь кажется , что ситуация улов-22 , где fstrim
или btrfs balance
будет работать , только если другой сделал свою работу первым.
Для справки, вот некоторые статистические данные, которые показывают, что у меня на самом деле достаточно места:
# df -h /
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 112G 43G 68G 39% /
# btrfs fi df /
Data, single: total=108.73GiB, used=41.00GiB
System, single: total=64.00MiB, used=16.00KiB
Metadata, single: total=3.00GiB, used=1.02GiB
GlobalReserve, single: total=352.00MiB, used=0.00B
Примечание. У меня не осталось "свободного места на устройстве" во время нормальной работы. Я думаю, что Btrfs продолжает устанавливать новые записи внутри уже взятых кусков. Однако в прошлом я нажимал «нет места…» во время apt-get upgrade
, а затем восстанавливался с помощью btrfs balance
и fstrim
. Я не знаю, когда (если) это поразит меня снова. Я хотел бы сделать техническое обслуживание, прежде чем я получу "не осталось места ...", когда я делаю что-то важное.
Как восстановить из этой ситуации так fstrim
и btrfs balance
не блокируют друг друга? Можно ли это исправить изнутри моей работающей системы?
На самом деле я уже исправил это, мой ответ ниже. Вопрос для дальнейшего использования. Не стесняйтесь добавлять другое решение.
Дополнительная информация:
$ uname -a
Linux foobar 4.4.0-78-generic #99-Ubuntu SMP […] x86_64 x86_64 x86_64 GNU/Linux
$ cat /etc/issue
Ubuntu 16.04.3 LTS \n \l
# dpkg -l | grep btrfs
ii btrfs-tools 4.4-1ubuntu1 amd64 Checksumming Copy on Write Filesystem utilities