Primeri iz Linux CLI
1. Prikaz informacija o particiji i blokovima
bash
# Pregled particija i blokova sudo fdisk -l # Detalji o fajl sistemu (veličina bloka, broj inode-ova) sudo dumpe2fs /dev/sda1 | head -30 # Veličina bloka fajl sistema stat -f / | grep "Block size"
🔍 2. Rad sa inode-ovima
bash
# Prikaz inode broja za fajl ls -i fajl.txt # Pronađi sve fajlove sa istim inode (hard linkovi) find / -inum $(stat -c %i fajl.txt) 2>/dev/null # Detalji iz inode-a stat fajl.txt # Broj dostupnih inode-ova df -i
📊 3. Superblok informacije
bash
# Prikaz informacija iz superbloka za ext4 sudo tune2fs -l /dev/sda1 # Magični broj fajl sistema sudo file -s /dev/sda1 # Provera fajl sistema (čita superblok) sudo fsck -n /dev/sda1
🗂️ 4. Direktorijumska struktura
bash
# Prikaz unosa u direktorijumu (kao na slici 8) ls -lia # Prikaz . i .. unosa ls -la | head -5 # Praćenje putanje kroz direktorijume (kao u poglavlju 7.1) namei /home/user/documents/file.txt
💾 5. Bitmape slobodnog prostora
bash
# Provera slobodnog prostora (koristi bitmape u pozadini) df -h # Detaljno o slobodnim blokovima sudo debugfs /dev/sda1 stats # u debugfs promptu quit
📝 6. Kreiranje fajla - proces iz poglavlja 7.2
bash
# Prati sistemske pozive pri kreiranju fajla strace -e trace=file touch novi_fajl.txt 2>&1 | grep -E "(open|write|read)" # Prati I/O operacije sudo iotop -o -a # Provera koliko I/O operacija je izvršeno sudo /usr/sbin/iotop --batch --time --iter=1
🔄 7. Keširanje stranica
bash
# Prikaz keširanih fajlova u memoriji sudo vmtouch /var/log/syslog # Brisanje keša fajl sistema (page cache) sync && echo 3 | sudo tee /proc/sys/vm/drop_caches # Praćenje keširanja cat /proc/meminfo | grep -E "(Cached|Buffers)"
🛡️ 8. Zaštita pisanja (fsync)
bash
# Forsiranje pisanja na disk (kao u poglavlju 8) sync # sinhronizuje sve buffer-e sa diskom # Test: uporedi brzinu sa i bez fsync time dd if=/dev/zero of=test1 bs=1M count=100 conv=fsync time dd if=/dev/zero of=test2 bs=1M count=100 # Provera da li je fajl zaista na disku sudo blockdev --flushbufs /dev/sda1
🌳 9. Višestruki indeksi - veliki fajlovi
bash
# Kreiraj veliki fajl (4GB+ da bi se koristili indirektni pokazivači) dd if=/dev/zero of=veliki_fajl bs=1G count=5 # Proveri koji blokovi se koriste sudo debugfs /dev/sda1 stat veliki_fajl # pokazuje sve pokazivače quit # Praćenje blokova fajla sudo filefrag -v veliki_fajl
🔗 10. Povezane liste (FAT stil)
bash
# ext4 ne koristi povezane liste, ali možeš da vidiš fragmentaciju sudo fsck.ext4 -fn /dev/sda1 # provera fragmentacije # Za FAT32 sisteme (ako ih imaš) sudo fsck.vfat -n /dev/sdb1
📈 11. Performanse čitanja/pisanja
bash
# Testiraj brzinu čitanja (demonstracija keš efekta) # Prvo čitanje - sa diska sudo hdparm -tT /dev/sda1 # Nakon keširanja sudo hdparm -tT /dev/sda1 # Prati I/O za konkretan proces dok otvara fajl sudo iotop -p $(pidof firefox)
🛠️ 12. Debugging fajl sistema
bash
# Koristi debugfs za direktan pristup strukturama sudo debugfs /dev/sda1 # Komande unutar debugfs: stats # statistike fajl sistema testi 123 # pronađi inode 123 ncheck 123 # pronađi fajl po inode-u stat /home/user/file.txt # detalji inode-a dump <inode> /tmp/out # izvuci sadržaj inode-a
💡 Praktična demonstracija putanje otvaranja fajla:
bash
# Pratimo kako sistem pronalazi fajl strace ls /usr/bin/bash 2>&1 | grep -E "(open|stat|lstat)" | head -20 # Vreme pristupa svakom nivou hijerarhije time find /usr/share/doc -name "README" > /dev/null
🧪 Eksperiment: Proces kreiranja fajla kroz strace
bash
# Snimi sve sistemske pozive strace -o kreiranje.log -e trace=file touch test_fajl.txt # Analiziraj I/O operacije grep -E "(read|write|open)" kreiranje.log | wc -l
🎯 Najvažnije komande za razumevanje VSFS koncepata:
bash
# 1. Sve o inode-u stat neki_fajl # 2. Mapiranje fajla na blokove sudo hdparm --fibmap neki_fajl # 3. Informacije o fajl sistemu df -Tih # 4. Praćenje I/O u realnom vremenu sudo iotop # 5. Debug fajl sistema sudo debugfs -R "stat /" /dev/sda1
Poslednja izmena: Thursday, 4. December 2025, 09:17