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