“No space left on device”, od innej strony…
Problem:
Podczas instalacji Linuksa (Gentoo) na maszynie wirtualnej VirtualBox, podczas rozpakowywania portage-latest.tar.bz2 , zaczęły pojawiać się błędy związane z brakiem miejsca na dysku:
tar: portage/(...)/metadata.xml: Cannot open: No such file or directory tar: Error exit delayed from previous errors
emergelog(): [Errno 28] No space left on device: '/var/log/emerge.log'
Dodatkowo, ilość wolnych MB na dysku jest oczywiście znacznie większa niż 0, 10, 100 czy nawet 1000. Skoro więc jest miejsce na dysku, to dlaczego go brakuje?
Problemem nie jest miejsce mierzone w MB, tylko w inode-ach. W inode-ach zapisywane są informacje o plikach, jeśli więc wszystkie inode-y są już zapełnione, nie można zapisać więcej plików mimo iż na dysku, fizycznie znalazło by się jeszcze miejsce.
Ilość wszystkich inode-ów oraz ilość tych zajętych można poznać wydając polecenie:
df -i
W moim przypadku wynik był następujący:
livecd usr # df -i Filesystem Inodes IUsed IFree IUse% Mounted on tmpfs 64076 1517 62559 3% / /dev/sr0 0 0 0 - /mnt/cdrom /dev/loop0 117204 117204 0 100% /mnt/livecd udev 64076 805 63271 2% /dev tmpfs 64076 41 64035 1% /mnt/livecd/lib/firmware tmpfs 64076 3 64073 1% /mnt/livecd/usr/portage tmpfs 64076 4 64072 1% /boot /dev/sda3 147168 147168 0 100% /mnt/gentoo /dev/sda1 4016 13 4003 1% /mnt/gentoo/boot
… Jak widać przy /dev/sda3 wykorzystany został już cały dostępny zasób inode-ów.
Niestety ich ilość zmienić/ustawić można tylko w trakcie tworzenia filesystemu.
By w końcu zainstalować system, musiałem od nowa sformatować dysk.
Do standardowej komendy dodałem argument: -i 8192
mkfs.ext2 -j -L ROOT -i 8192 /dev/sda3
Zauważyłem, że problem pojawia się głównie po instalacji drzewa portów (portage), które to składa się z bardzo dużej ilości malutkich plików. Więc gdy po stworzeniu docelowego obrazu maszyny virtualnej, będę miał problemy z “miejscem”, pewnie je usunę.
No comments yet
Jump to comment form | rss komentarzy [?] | trackback uri [?]