A következő címkéjű bejegyzések mutatása: fájlrendszer. Összes bejegyzés megjelenítése
A következő címkéjű bejegyzések mutatása: fájlrendszer. Összes bejegyzés megjelenítése

2013. október 7., hétfő

Mi van akkor, ha az ls és a du más méretet mutat?

Röviden annyi, hogy a lefoglalt és a ténylegesen használt fájlméret eltér. Az ls parancs a fájlok diszken foglalt méretét jelzi ki, a du pedig azt a méretet, amit a fájl aktuálisan felhasznál a diszkből.

Nálam ez így nézett ki:
SLES10_SP4# ls -lh S3.FragLog
-rw-r--r-- 1 root root 256M Oct  7 10:26 S3.FragLog
SLES10_SP4# du -h S3.FragLog
189M    S3.FragLog

Az ls-nek meg lehet mondani, hogy írja ki nekünk mindkét fájlméretet.
ls -lsh S3.FragLog
SLES10_SP4# 189M -rw-r--r-- 1 root root 256M Oct  7 10:40 S3.FragLog



A vizsgált fájl úgynevezett sparse fájl. Ezen fájlok jellemzője, hogy blokkjainak azon része, aminek nulla (0x00) a tartalma, fizikailag nem tárolódik a diszken. Így a fájl tényleges mérete jóval kisebb lehet, mint amennyi le van számára foglalva.

Ha tar-ral akarunk ilyen fájlokat (tömörítés nélkül) csomagolni, akkor azt egy S opcióval jelezni kell, és ekkor a fájlok használt méretük alapján kerülnek bele a csomagba. Az opció megadása nélkül előfordulhat, hogy a tar nem talál elég helyet a képződő fájlnak, és hibával kilép. De ha lesz is elég helye végigcsinálni a csomagolást, akkor is feleslegesen nagy mérete lesz az új fájlnak.

2013. augusztus 24., szombat

Virtuális diszk Linux-on

Ha szükség van egy virtuális diszkre (egész pontosan loopback fájlra épülő átmeneti diszkre) hirtelen, akkor a következőket lehet tenni rendszergazdaként (root).

  1. dd if=/dev/zero of=/tempfile bs=1024 count=30000
  2. losetup /dev/loop0 /tempfile
  3. (ha nem megy, meg lehet próbálni betöltetni a loop modult:
    modprobe loop)
  4. mkfs -t ext3 -m 1 -v /dev/loop0
  5. mount -t ext3 /dev/loop0 /mnt
Ettől a ponttól van egy olyan 30 MB-os ext3 fáljrendszerünk, ami a /mnt alatt érhető el. Gyakorlatilag ugyanúgy használható, mint bármely más fájlrendszer. Ha más méretre van szükség, akkor a count után lévő értéket kell ennek megfelelően módosítani.

Amikor befejeztük a munkát az átmeneti fájlrendszerünkkel, akkor vissza kell állítani az eredeti állapotot, például így (szintén root-ként):
  1. cd
  2. umount /mnt
  3. losetup -d /dev/loop0
  4. rm /tempfile