dd if=/dev/zero of=rsr.img bs=1024k count=4096
Swego czasu zafascynował mnie wpis Sebana dot i-węzłów. Niestety, we wpisie tym zabrakło informacji o używanym przez niego systemie plików i powierzchni dysku. Zadowolony więc udałem się na spoczynek, myśląc o swoim ext3 na 120GiB jako o dysku, któremu problem braku i-nodów nie może się przytrafić.
Jakże się myliłem... W piątek przyszło mi chrootować się na przekopiowany do pewnej ścieżki (/home/night/UbuntuChroot/) system plików LiveCD systemu Ubuntu Linux. System plików ten (cała struktura katalogów) zajmowała 2,4 GiB. Hopla! W połowie posypały się błędy:
cp: no space left on device
Brak miejsca, df -h pokazujące kilkadziesiąt gigabajtów w rubryczce "free". Zgłupiałem.. Po dużej i mocnej kawie przypomniał mi sie wyżej wspomniany wpis Sebana (teraz miejsce chyba na podziękowania dla niego). df -i i wszystko było wiadomo.
Filesystem Inodes IUsed IFree IUse% Mounted on /dev/hda1 1305600 1305600 0 100% /home
Ałć! Zmartwiłem się - musiałem przekopiować całą tą strukturę katalogów aby móc się do niej chrootować, z drugiej strony jednak kopiowanie /usr kończyło się nieuchronnie zapełnieniem wszystkich wolnych i-węzłów na dysku.
Sytuacja bez wyjścia? Ależ skąd! Istniał sposób na obejście i-nodów (wtedy jeszcze tego nie wiedziałem, błądząc we mgle szukając ratunku). Stworzyłem4GiB plik obrazu narzędziem dd:
dd if=/dev/zero of=rsr.img bs-1024k count=4096
Po czym sformatowałem go poprzez mkfs.reiserfs na Reiser'a. Po podmontowaniu przeżyłem szok:
Filesystem Inodes IUsed IFree IUse% Mounted on rsf.img - - - 0% /mnt/reiser
Do dziś nie znalazłem informacji, dlaczego ReiserFS zachował się w ten sposób, nie pokazując żadnych i-nodów. Kopiowanie całej struktury katalogów Ubuntu poszło w tym przypadku bez problemów (viva la ReiserFS!) a ja mogłem zabrać się za pracę w środowisku chroot. Efekty tej pracy będą dostępne publicznie jako Ubuntu.pl 6.12.
Postanowiłem opisać tą sytuację, gdyż wydała mi się ona bardzo ciekawa. Wirtualny dysk jako dodatkowy system plików, możliwy do zamontowania i używania tylko przez super użytkownika. Czemu w ten sposób nie trzymać danych, których nie chcemy aby ktokolwiek oglądał? Czemu w ten sposób nie stworzyć naszego obrazu partycji idealnej, który moglibyśmy przenieść na każdy z komputerów? Możliwości jest mnóstwo - znowu, jak zwykle, limituje je nasza wyobraźnia.
Z mojej strony polecam przyjrzeć się bliżej metodom tworzenia dysków wirtualnych w Linuksie. To potężna i jak dotąd nie do końca wykorzystana możliwość w zagadnieniach ochrony danych osobistych, tworzenia podprzestrzeni dyskowych lub nawet całych partycji służacych magazynowaniu dużej ilości danych, która w normalnych wypadkach (na naszym macierzystym systemie plików) byłaby niemożliwa.
Pozdrawiam czytelników!
ReiserFS jak każdy porządny system plików nie zakłada żadnej maksymalnej liczby i-węzłów przy tworzeniu systemu plików lecz alokuje je dynamicznie dostosowując ich ilość do aktualnych potrzeb. Dodatkowo ReiserFS pakuje kilka małych plików do jednego bloku, aby efektywniej wykorzystać dostępną przestrzeń. Oprócz tego ma jeszcze wiele innych zalet o których możesz poczytać na stronie namesys.com
@Krzysztof Burghardt:
Wielkie "dziękuję" z mojej strony! Rozjaśniłeś mi enigmatyczną sprawę i-nodów na ReiserFS, poczytam o nich i poszerzę swoją wiedzę.