Проблема с зарезервированными блоками: размер раздела успешно изменен, но не распознается ОС

Я использую систему с двойной загрузкой, а дистрибутив Linux - Ubuntu 14.04.

Я использовал GParted для увеличения логического раздела с именем / dev / sda6 , на котором обычно монтируется каталог / home . Согласно отчету GParted операция успешно завершена. Размер раздела 85 ГиБ, из которых 83 ГиБ используется и 2 ГиБ свободно (d), как и предполагалось.

Однако здесь есть две странности:

  1. Это усиление не распознается после входа в систему. Когда я проверял использование диска с помощью df -h , в отчете говорится, что раздел / dev / sda6 , должным образом смонтированный на / home , имеет размер 85 ГиБ, из которых 83 используются, а доступно 0 . Заявленное использование составляет 100%.

  2. Еще одна странность заключается в том, что я могу регулярно входить в свой профиль пользователя через графический интерфейс. Однако после того, как учетные данные распознаны, система останавливается и не попадает в среду рабочего стола. Чтобы получить информацию df -h , мне нужно войти в систему с моим обычным идентификатором в любом текстовом терминале или со статусом гостя в графическом пользовательском интерфейсе. В качестве побочного замечания, не похоже, что данные были повреждены.

Как я могу исправить эту ситуацию? Цель состоит в том, чтобы увеличить размер раздела, полностью доступного для операционной системы. Спасибо, что помогли мне.

0
14.08.2016, 15:23
2 ответа

Вероятно, вы используете одну из файловых систем ext (файловая система Linux по умолчанию, обычно ext4 ). В большинстве случаев при создании он будет создан с определенным буфером, называемым зарезервированными блоками . Это зарезервированное пространство предназначено для записи только системными процессами и root и, следовательно, для защиты ОС с заполнения диска пользователями.

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

Этот буфер по умолчанию составляет 5% от всего диска. Вы можете проверить, есть ли у вас такой буфер, с помощью sudo tune2fs -l / dev / sda6 | grep Зарезервировано . Набрав sudo tune2fs -l / dev / sda6 | grep [bB] locks можно также прочитать как количество зарезервированных блоков, так и размер блока (в B), следовательно, определить пространство раздела, занятого этой конструкцией. Это объяснит систему. вижу 85GiB, но только 83 б / у и 0 свободных.

Если вы действительно хотите, вы можете установить меньшее значение буфера с помощью sudo tune2fs -m 2 / dev / sda6 (2 - примерное значение в процентах, которое по умолчанию равно 5).

Лучшим вариантом было бы фактическое изменение размера, чтобы на диске было достаточно свободного места. 2 ГБ из 85 ГБ составляет всего 2,35%, что немного и в большинстве случаев заполняется относительно быстро. Если вы уверены, что ваше использование пространства останется стабильным на уровне 83 ГБ, вы можете использовать tune2fs, чтобы зарезервировать 0% пространства в целях безопасности, но как только ваш диск заполнится (до 85 ГБ), вы не сможете войти в систему на все и машина, вероятно, выйдет из строя и ее будет труднее ремонтировать.

5% -ный запас прочности является относительно разумным. Итак, в этом случае я бы сделал раздел не менее 90 ГБ, но, возможно, даже 100 или более, просто чтобы было немного места на случай чрезвычайных ситуаций. Место на диске дешево, ваше время на устранение проблем, связанных с заполненным диском, вероятно, будет дороже.

Ответы на этот вопрос дают некоторое представление о рассуждениях.

3
28.01.2020, 02:47

Чтобы лучше сформулировать ситуацию, следует устранить некоторую лингвистическую путаницу. GParted , df и tune2fs используют одинаковые или похожие слова для немного разных понятий, касающихся дискового пространства.

Я переписал свое понимание в терминах псевдоуравнений и перегрузил эти операторы:

'=' means 'corresponds to'
'@' means 'according to'

Я начал использовать df -h и оставил это заниженным дальше. Обратите внимание, что tune2fs -l при соответствующем синтаксисе обычно возвращает количество блоков, а также размер блока. Умножая одно на другое, мы получаем размер дискового пространства. Убедитесь, что размер дискового пространства выражается в одном и том же основании (2 или 10).

Во-первых, с точки зрения GParted

size @ gparted = size @ df = block count * block size @ tune2fs
unused @ gparted = free blocks * block size @ tune2fs 
used @ gparted = used @ df = (block count - free blocks) * block size @ tune2fs

Пока все довольно интуитивно понятно.

Тогда, с точки зрения df

size @ df = size @ gparted = block count @ tune2fs 
used @ df = used @ gparted = (block count - free blocks) *block size @ tune2fs
available @ df = max[(free blocks - reserved block count) * block size @ tune2fs, 0]

Следовательно, available @ df означает нечто иное, чем free @ tune2fs и неиспользованные @ gparted .

Таким образом, доступное пространство в df измеряет избыток общего пространства, которое считается свободным в tune2fs или неиспользованным в gparted сверх квоты, зарезервированной tune2fs.Когда это превышение равно нулю, это указывает на нехватку дискового пространства, отведенного для нормального функционирования.

-1
28.01.2020, 02:47

Теги

Похожие вопросы