8

Проведя день, ломая голову на столе, я был бы признателен за помощь.

Я использую Squid-Proxy на Fedora 14. Даже если я попытаюсь touch /tmp/foo я получу сообщение об ошибке "на устройстве не осталось места". Я уже запускал fsck . Если я удалю файл, скажем, 1 МБ, я смогу снова сохранить 1 МБ данных, но не более того. Следует отметить, что у меня много свободного места:

df выход:

Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda3             16311208   7614872   7867768  50% /
tmpfs                  1028548         0   1028548   0% /dev/shm
/dev/sda1               198337     55345    132752  30% /boot
/dev/sdb1             25803036  19407324   5084996  80% /mnt/squid-cache

У кого-нибудь есть идея, что я могу попытаться "вернуть" свободное место?

3 ответа3

15

Предполагается, что у вас закончились inode, а не дисковые блоки, то есть у вас есть ограничение на количество файлов, которое может содержать файловая система, а не ограничение на общий объем данных.

Вы можете использовать df -i чтобы проверить это.

0

Linux резервирует процент блоков для суперпользователя. Обычно он установлен на 5%. 50% необычно высоко. С помощью tune2fs -m вы можете это изменить.

0

Это может произойти, если вы используете btrfs, и в этом случае эти средства не будут работать.

Пройдя много ложных следов, я, наконец, встал на правильный путь после того, как начал поиск с

Btrfs нет

и получил

btrfs на устройстве не осталось места

как первое завершение. Это привело к проблеме BTRFS вики. Это, видимо, общая проблема.

Но даже оттуда было не так легко решить мою проблему. Я смог запустить нужные утилиты, загрузившись в режиме восстановления, выбрав настройки, которые монтируют мои файловые системы, и затем перейдя в root.

В вики-статье говорится, что запустите btrfs balance, но это не будет работать для всех файловых систем, и в конце концов я нашел свой путь здесь (что также является вторым результатом поиска).

Если ваша файловая система действительно заполнена, то даже баланс не будет работать. Или он будет работать только для небольших значений -dusage.

Рецепт в данном случае это внизу поста. Я нашел это смущающим и отклонил это как решение сначала, потому что плакат удаляет снимки, которые я считал существенными, и так как я не делал снимки, я думал, что это не применимо. Но это так. Шаг снимка может быть важен для некоторых, но это было не для меня.

Средство, в обзоре:

  1. Создать большой файл
  2. Сделать это петлей устройства
  3. Подключите устройство к фс, который не может сбалансировать
  4. Выполнить баланс
  5. Отсоединить устройство
  6. Разбейте файл, чтобы вернуть это пространство

Ссылочный пост дает шаги командной строки.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .