No space left on device на полупустом диске или Почему Ubuntu врёт, что нет места, когда оно на самом деле есть

Недавно на одном из своих рабочих компьютеров под управлением Ubuntu 12.04, я столкнулся с такой проблемой. Очередное системное обновление завершилось ошибкой и в трее появился красный крудочек, сообщающий об этом. Простая команда apt-get install something выдала более информативную информацию:

 

dpkg: error processing /var/cache/apt/archives/linux-headers-3.2.0-31_3.2.0-31.50_all.deb (—unpack):

unable to create `/usr/src/linux-headers-3.2.0-31/arch/mips/include/asm/mach-pnx833x/irq.h.dpkg-new’ (while processing `./usr/src/linux-headers-3.2.0-31/arch/mips/include/asm/mach-pnx833x/irq.h’): No space left on device

Я действительно подумал, что не хватило места и бросился все проверять.

Но штатная утилита Disk Usage показала, что места у меня на всех партициях, в том числе и на проблемной партиции /usr предостаточно, чтобы посадить туда боинг установить что-нибудь полезное.

df -h показала следующее:

root@sattelite-dev-junior:/usr/local# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       9.2G  1.8G  7.0G  21% /
udev            494M  4.0K  494M   1% /dev
tmpfs           201M  1.1M  200M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            501M  2.7M  498M   1% /run/shm
/dev/sda6       4.6G  138M  4.3G   4% /tmp
/dev/sda5       938M  170M  722M  20% /boot
/dev/sda9        52G   13G   37G  27% /home
/dev/sda7       4.6G  3.6G  830M  82% /usr

Я в общем-то был удивлен таким поворотом. Все мое отчаяние и поиски с перерывами в течении нескольких дней увенчались таки успехом в замечательной статье от Superrb Studio Ubuntu — No space left on device? Is it a lie or have I run out of inodes?

В принципе все можно было понять уже из названия, но я все же ее прочел, и после вывода команды  df -i все таки все понял:

dev@sattelite-dev-junior:~$ df -i
Filesystem      Inodes  IUsed   IFree IUse% Mounted on
/dev/sda1       610800  45876  564924    8% /
udev            126360    487  125873    1% /dev
tmpfs           128177    433  127744    1% /run
none            128177      3  128174    1% /run/lock
none            128177     13  128164    1% /run/shm
/dev/sda6       305216     79  305137    1% /tmp
/dev/sda5        61056    262   60794    1% /boot
/dev/sda9      3440640 138523 3302117    5% /home
/dev/sda7       305216 302422    2794  100% /usr

На диске не хватило свободных inodes. Вики:

inodes — это структура данных в традиционных для ОС UNIX файловых системах (ФС), таких как UFS. В этой структуре хранится метаинформация о стандартных файлах, каталогах или других объектах файловой системы, кроме непосредственно данных и имени.

Итак, у меня был полный раздел мелких файлов и закончилось место для записи метаинформации для них. Путей, помимо форматирования диска, я видел только два: или добавить в партицию /usr немного места (признаться не знаю, насколько это возможно), или убрать что-нибудь с партиции /usr.

Я занялся уборкой.

В рысканиях по /usr, я узнавал некоторые программы, без которых был уверен, что система будет работать стабильно после следующей загрузки. Так я нашел к примеру opera, geany, netbeans и другие.

За полчаса я освободил 2% и вновь пустился в поиски. На этот раз я нашел статью с thexnews.com Очистить немного места на жестком диске.

Воспользовавшись советом из статьи, я переместил папку /usr/src в media и создал на нее ссылку, для сохранения зависимостей:

sudo mv /usr/src /media/archive/

sudo ln -s /media/archive/src /usr/

В результате этой 5-ти минутной операции я получил полупустой /usr:

root@sattelite-dev-junior:/usr# df -i
Filesystem      Inodes  IUsed   IFree IUse% Mounted on
/dev/sda1       610800 199403  411397   33% /
udev            126360    487  125873    1% /dev
tmpfs           128177    433  127744    1% /run
none            128177      3  128174    1% /run/lock
none            128177     13  128164    1% /run/shm
/dev/sda6       305216     80  305136    1% /tmp
/dev/sda5        61056    262   60794    1% /boot
/dev/sda9      3440640 138528 3302112    5% /home
/dev/sda7       305216 143444  161772   47% /usr

Удачи, и не попадайтесь ;)

Полезно(22)Бесполезно(3)
Комментарии закрыты.