Корневой каталог BTRFS, на устройстве не осталось места, автоматическое перемонтирование, режим «только для чтения»; невозможно выполнить балансировку, невозможно добавить устройство

Корневой каталог BTRFS, на устройстве не осталось места, автоматическое перемонтирование, режим «только для чтения»; невозможно выполнить балансировку, невозможно добавить устройство

Мой корень BTRF заполнился во время обновления системы и был автоматически перемонтирован как только для чтения. У меня есть много файлов, которые я могу удалить, но он только для чтения. Я пробовал:

  1. sudo mount -o remount,rw / → точка монтирования не смонтирована или выбрана неверная опция

  2. создайте /dev/loop0временный файл размером 10 ГБ и попробуйте добавить его на устройство BTRFS: sudo btrfs device add /dev/loop0 /error adding device /dev/loop0: Read-only file system

  3. Ребаланс: sudo btrfs balance start -dusage=0 /(также пробовал -musage=0) →error during balancing '/': Read-only file system

Так что в основном все, что я пробовал, терпит неудачу, потому что файловая система только для чтения. Я не могу перемонтировать ее как rw по какой-то причине. Я боюсь перезагружать систему, так как она, скорее всего, не загрузится. Неужели нет никакой надежды для кого-то с полной корневой файловой системой btrfs?

решение1

Была та же проблема, удалось ее исправить следующим образом:

umount /home
mount /dev/sdd1 on /home -o rw,clear_cache,skip_balance

Это позволит пропустить любую операцию перебалансировки (мою точку блокировки) и очистить часть кэша, чтобы освободить некоторое пространство.

Но после этого любая операция все равно приведет к переключению в режим «только чтение», поэтому я вместо этого проверил и остановил любую перебалансировку сразу после команды монтирования:

btrfs fi balance show /home
btrfs fi balance cancel /home

После этого BTRFS стал более стабильным и я смог изменить его размер.

btrfs fi resize max /home

Вероятно, теперь также должна работать команда FAQ balance или вручную удалите некоторые большие файлы.

Об этом сообщается в разделе часто задаваемых вопросов (и вы можете попробовать разные значения от меньших к большим, так как это процент используемого пространства в блоках, которые будут выбраны балансом и в конечном итоге объединены, освобождая место).

btrfs fi balance  start -dusage=10 /home

Наконец, есть также путь добавления нового устройства и запроса на перебалансировку (то есть raid0, но вы можете настроить это позже и переключиться на raid1, если захотите и у вас достаточно места). Btrfs может создавать «рейд» на лету с несколькими устройствами (в худшем случае — временное USB-хранилище, но не забудьте удалить данные и удалить устройство в конце).

btrfs device add /dev/sdf1 /home
btrfs balance start -dusage=20 -musage=20 /home

Тонко настройте значения в dusage (данные) и musage (метаданные), чтобы ускорить и/или переместить больше информации. В тех же случаях вы можете захотеть добавить , -ddevid=???чтобы ограничить перебалансировку полным устройством, таким образом заставив btrfs перемещать фрагменты с полного устройства на устройство с большим пространством. Получите devid изbrtfs fi show

Посмотрите на результаты в конце (помните, что df в btrfs недостаточно, так как btrfs имеет несколько слоев, а df может видеть только один)

btrfs fi show
btrfs fi usage /home
btrfs device usage /home
btrfs fi df /home

Связанный контент