104.2 Lecke 1
Tanúsítvány: |
LPIC-1 |
---|---|
Verzió: |
5.0 |
Témakör: |
104 Eszközök, Linux fájlrendszerek, Fájlrendszer-hierarchia szabvány |
Fejezet: |
104.2 A fájlrendszerek integritásának karbantartása |
Lecke: |
1/1 |
Bevezetés
A modern Linux fájlrendszerek naplóznak. Ez azt jelenti, hogy minden műveletet a végrehajtás előtt egy belső naplóban (a journal) regisztrálnak. Ha a művelet megszakad egy rendszerhiba miatt (például kernelpánik, áramkimaradás stb.), a napló ellenőrzésével rekonstruálható, így elkerülhető a fájlrendszer sérülése és az adatvesztés.
Ez nagymértékben csökkenti a kézi fájlrendszer-ellenőrzések szükségességét, de még mindig szükség lehet rájuk. Az ehhez használt eszközök (és a megfelelő paraméterek) ismerete jelentheti a különbséget az otthoni vacsora a családdal vagy az egész éjszakás munka a szerverszobában között.
Ebben a leckében a fájlrendszer használatának ellenőrzésére, működésének optimalizálására, valamint a sérülések ellenőrzésére és javítására rendelkezésre álló eszközökről lesz szó.
Lemezhasználat ellenőrzése
Két parancsot használhatunk annak ellenőrzésére, hogy mennyi helyet használunk, és mennyi van még a fájlrendszeren. Az első a du
, ami a “disk usage” (lemezhasználat) rövidítése.
A du
rekurzív jellegű. Legegyszerűbb formájában a parancs egyszerűen megmutatja, hogy hány 1 kilobájtos blokkot használ az aktuális mappa és annak összes almappája:
$ du 4816 .
Ez nem túl nagy segítség, így kérhetünk “ember által olvasható” kimenetet a -h
paraméterrel:
$ du -h 4.8M .
Alapértelmezés szerint a du
csak a mappák használatának számát mutatja (figyelembe véve az összes fájlt és a benne lévő almappákat). Ha a mappában lévő összes fájlra vonatkozó egyedi számot szeretnénk megjeleníteni, használjuk az -a
paramétert:
$ du -ah 432K ./geminoid.jpg 508K ./Linear_B_Hero.jpg 468K ./LG-G8S-ThinQ-Mirror-White.jpg 656K ./LG-G8S-ThinQ-Range.jpg 60K ./Stranger3_Titulo.png 108K ./Baidu_Banho.jpg 324K ./Xiaomi_Mimoji.png 284K ./Mi_CC_9e.jpg 96K ./Mimoji_Comparativo.jpg 32K ./Xiaomi FCC.jpg 484K ./geminoid2.jpg 108K ./Mimoji_Abre.jpg 88K ./Mi8_Hero.jpg 832K ./Tablet_Linear_B.jpg 332K ./Mimoji_Comparativo.png 4.8M .
Az alapértelmezett viselkedés az, hogy minden almappa használatát mutatja, majd az aktuális mappa teljes használatát, az almappákkal együtt:
$ du -h 4.8M ./Temp 6.0M .
A fenti példában láthatjuk, hogy a Temp
almappa 4,8 MB-ot foglal el, az aktuális mappa pedig a Temp
mappával együtt 6,0 MB-ot. De mennyi helyet foglalnak el az aktuális mappában lévő fájlok, az almappák nélkül? Erre ott van az -S
paraméter:
$ du -Sh 4.8M ./Temp 1.3M .
Tip
|
Ne feledjük, hogy a parancssori paraméterek a nagy- és kisbetűket megkülönböztetik: az |
Ha meg akarjuk tartani ezt a különbséget az aktuális mappában lévő fájlok és az almappák által használt hely között, de a végén szeretnénk egy végösszeget, akkor hozzáadhatjuk a -c
paramétert:
$ du -Shc 4.8M ./Temp 1.3M . 6.0M total
A du
kimenetének “mélységét” a -d N
paraméterrel szabályozhatjuk, ahol az N
a szinteket írja le. Ha például a -d 1
paramétert használjuk, akkor az aktuális mappát és annak almappáit fogja megjeleníteni, de azok almappáit nem.
Nézzük meg a különbséget! -d
nélkül:
$ du -h 216K ./somedir/anotherdir 224K ./somedir 232K .
És a mélység egy szintre történő limitálásával (-d 1
):
$ du -h -d1 224K ./somedir 232K .
Vegyük figyelembe, hogy még ha az anotherdir
nem is jelenik meg, a méretét akkor is figyelembe vesszük.
Előfordulhat, hogy bizonyos típusú fájlokat ki akarunk zárni a számolásból, amit az --exclude="PATTERN"
paranccsal tehetünk meg, ahol a PATTERN
az a minta, amellyel szemben a keresést végezni akarjuk. Tekintsük ezt a mappát:
$ du -ah 124K ./ASM68K.EXE 2.0M ./Contra.bin 36K ./fixheadr.exe 4.0K ./README.txt 2.1M ./Contra_NEW.bin 4.0K ./Built.bat 8.0K ./Contra_Main.asm 4.2M .
Most használjuk az --exclude
-t, hogy minden .bin
kiterjesztésű fájlt kiszűrjünk:
$ du -ah --exclude="*.bin" 124K ./ASM68K.EXE 36K ./fixheadr.exe 4.0K ./README.txt 4.0K ./Built.bat 8.0K ./Contra_Main.asm 180K .
Vegyük figyelembe, hogy a végösszeg már nem tükrözi a kizárt fájlok méretét.
Szabad hely keresése
A du
a fájlok szintjén működik. Van egy másik parancs is, amely a fájlrendszer szintjén mutatja meg a lemezhasználatot, és azt, hogy mennyi hely áll rendelkezésre. Ez a parancs a df
.
Az df
parancs egy listát ad a rendszeren lévő összes elérhető (már csatlakoztatott) fájlrendszerről, beleértve a teljes méretüket, a felhasznált hely nagyságát, a rendelkezésre álló hely nagyságát, a használat százalékos arányát és a csatlakoztatás helyét:
$ df Filesystem 1K-blocks Used Available Use% Mounted on udev 2943068 0 2943068 0% /dev tmpfs 595892 2496 593396 1% /run /dev/sda1 110722904 25600600 79454800 25% / tmpfs 2979440 951208 2028232 32% /dev/shm tmpfs 5120 0 5120 0% /run/lock tmpfs 2979440 0 2979440 0% /sys/fs/cgroup tmpfs 595888 24 595864 1% /run/user/119 tmpfs 595888 116 595772 1% /run/user/1000 /dev/sdb1 89111 1550 80824 2% /media/carol/part1 /dev/sdb3 83187 1550 75330 3% /media/carol/part3 /dev/sdb2 90827 1921 82045 3% /media/carol/part2 /dev/sdc1 312570036 233740356 78829680 75% /media/carol/Samsung Externo
A méret 1 KB-os blokkokban való megjelenítése azonban nem túl felhasználóbarát. A du
-hoz hasonlóan a -h
paramétereket is hozzáadhatjuk, hogy egy “ember által olvashatóbb” kimenetet kapjunk:
$ df -h Filesystem Size Used Avail Use% Mounted on udev 2.9G 0 2.9G 0% /dev tmpfs 582M 2.5M 580M 1% /run /dev/sda1 106G 25G 76G 25% / tmpfs 2.9G 930M 2.0G 32% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 2.9G 0 2.9G 0% /sys/fs/cgroup tmpfs 582M 24K 582M 1% /run/user/119 tmpfs 582M 116K 582M 1% /run/user/1000 /dev/sdb1 88M 1.6M 79M 2% /media/carol/part1 /dev/sdb3 82M 1.6M 74M 3% /media/carol/part3 /dev/sdb2 89M 1.9M 81M 3% /media/carol/part2 /dev/sdc1 299G 223G 76G 75% /media/carol/Samsung Externo
Használhatjuk az -i
paramétert is, ha blokkok helyett a használt/elérhető inode-okat szeretnénk megjeleníteni:
$ df -i Filesystem Inodes IUsed IFree IUse% Mounted on udev 737142 547 736595 1% /dev tmpfs 745218 908 744310 1% /run /dev/sda6 6766592 307153 6459439 5% / tmpfs 745218 215 745003 1% /dev/shm tmpfs 745218 4 745214 1% /run/lock tmpfs 745218 18 745200 1% /sys/fs/cgroup /dev/sda1 62464 355 62109 1% /boot tmpfs 745218 43 745175 1% /run/user/1000
Hasznos paraméter még a -T
, amely az egyes fájlrendszerek típusát is kiírja:
$ df -hT Filesystem Type Size Used Avail Use% Mounted on udev devtmpfs 2.9G 0 2.9G 0% /dev tmpfs tmpfs 582M 2.5M 580M 1% /run /dev/sda1 ext4 106G 25G 76G 25% / tmpfs tmpfs 2.9G 930M 2.0G 32% /dev/shm tmpfs tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs tmpfs 2.9G 0 2.9G 0% /sys/fs/cgroup tmpfs tmpfs 582M 24K 582M 1% /run/user/119 tmpfs tmpfs 582M 116K 582M 1% /run/user/1000 /dev/sdb1 ext4 88M 1.6M 79M 2% /media/carol/part1 /dev/sdb3 ext4 82M 1.6M 74M 3% /media/carol/part3 /dev/sdb2 ext4 89M 1.9M 81M 3% /media/carol/part2 /dev/sdc1 fuseblk 299G 223G 76G 75% /media/carol/Samsung Externo
A fájlrendszer típusának ismeretében szűrhetjük a kimenetet. Csak az adott típusú fájlrendszereket jeleníthetjük meg a -t TYPE
paranccsal, vagy kizárhatjuk az adott típusú fájlrendszereket az -x TYPE
paranccsal, mint az alábbi példákban.
A tmpfs
fájlrendszerek kizárása:
$ df -hx tmpfs Filesystem Size Used Avail Use% Mounted on udev 2.9G 0 2.9G 0% /dev /dev/sda1 106G 25G 76G 25% / /dev/sdb1 88M 1.6M 79M 2% /media/carol/part1 /dev/sdb3 82M 1.6M 74M 3% /media/carol/part3 /dev/sdb2 89M 1.9M 81M 3% /media/carol/part2 /dev/sdc1 299G 223G 76G 75% /media/carol/Samsung Externo
Csak az ext4
fájlrendszerek megjelenítése:
$ df -ht ext4 Filesystem Size Used Avail Use% Mounted on /dev/sda1 106G 25G 76G 25% / /dev/sdb1 88M 1.6M 79M 2% /media/carol/part1 /dev/sdb3 82M 1.6M 74M 3% /media/carol/part3 /dev/sdb2 89M 1.9M 81M 3% /media/carol/part2
Az df
kimenete is testreszabható, kiválasztva, hogy mi jelenjen meg és milyen sorrendben, a --output=
paraméter használatával, amelyet a megjeleníteni kívánt mezők vesszővel elválasztott listája követ. Néhány a rendelkezésre álló mezők közül:
source
-
A fájlrendszernek megfelelő eszköz.
fstype
-
A fájlrendszer típusa.
size
-
A fájlrendszer teljes mérete.
used
-
Mennyi hely van használatban.
avail
-
Mennyi hely elérhető.
pcent
-
A használat százalékos aránya.
target
-
Hová van a fájlrendszer felcsatolva (mount point).
Ha olyan kimenetet szeretnénk, amely megmutatja a célt, a forrást, a típust és a használatot, használhatjuk a következőt:
$ df -h --output=target,source,fstype,pcent Mounted on Filesystem Type Use% /dev udev devtmpfs 0% /run tmpfs tmpfs 1% / /dev/sda1 ext4 25% /dev/shm tmpfs tmpfs 32% /run/lock tmpfs tmpfs 0% /sys/fs/cgroup tmpfs tmpfs 0% /run/user/119 tmpfs tmpfs 1% /run/user/1000 tmpfs tmpfs 1% /media/carol/part1 /dev/sdb1 ext4 2% /media/carol/part3 /dev/sdb3 ext4 3% /media/carol/part2 /dev/sdb2 ext4 3% /media/carol/Samsung Externo /dev/sdc1 fuseblk 75%
A df
az inode információk ellenőrzésére is használható, ha a következő mezőket adjuk át az --output=
-nak:
itotal
-
Az összes inode száma a fájlrendszerben.
iused
-
A használt inode-ok száma a fájlrendszerben.
iavail
-
Az elérhető inode-ok száma a fájlrendszerben.
ipcent
-
Az inode-ok százalékos aránya a fájlrendszerben.
Például:
$ df --output=source,fstype,itotal,iused,ipcent Filesystem Type Inodes IUsed IUse% udev devtmpfs 735764 593 1% tmpfs tmpfs 744858 1048 1% /dev/sda1 ext4 7069696 318651 5% tmpfs tmpfs 744858 222 1% tmpfs tmpfs 744858 3 1% tmpfs tmpfs 744858 18 1% tmpfs tmpfs 744858 22 1% tmpfs tmpfs 744858 40 1%
ext2, ext3 és ext4 fájlrendszerek karbantartása
A fájlrendszer hibáinak ellenőrzésére (és remélhetőleg javítására) a Linux biztosítja az fsck
segédprogramot (gondoljunk a “filesystem check” szóra, és soha nem fogjuk elfelejteni a nevét). Legegyszerűbb formájában az fsck
parancsot használva hívhatjuk meg, amelyet az ellenőrizni kívánt fájlrendszer helye követ:
# fsck /dev/sdb1 fsck from util-linux 2.33.1 e2fsck 1.44.6 (5-Mar-2019) DT_2GB: clean, 20/121920 files, 369880/487680 blocks
Warning
|
Soha ne futtassuk az |
Maga az fsck
nem ellenőrzi a fájlrendszert, csupán meghívja a fájlrendszer típusának megfelelő segédprogramot. A fenti példában, mivel a fájlrendszer típusa nem volt megadva, az fsck
alapértelmezés szerint ext2/3/4 fájlrendszert feltételezett, és az e2fsck
-t hívta.
Egy fájlrendszer megadásához használjuk a -t
opciót, amelyet a fájlrendszer neve követ, mint például az fsck -t vfat /dev/sdc
esetben. Alternatívaként közvetlenül is meghívhatunk egy fájlrendszer-specifikus segédprogramot, például az fsck.msdos
-t FAT fájlrendszerekhez.
Tip
|
Írjuk be kétszer az |
Az fsck
tud néhány parancssori argumentumot is kezelni. A leggyakoribbak közül néhány:
-A
-
Ez ellenőrzi a fájlrendszereket az
/etc/fstab
listában. -C
-
Megjelenít egy progress bart a fájlrendszer ellenőrzése során. Jelenleg csak ext2/3/4 fájlrendszereken működik.
-N
-
Ez kiírja, hogy mit tenne és kilép anélkül, hogy ténylegesen ellenőrizné a fájlrendszert.
-R
-
Az
-A
-val együtt használva kihagyja a root fájlrendszer ellenőrzését. -V
-
Verbose mód, a szokásosnál több információt ír ki működés közben. Hasznos hibakeresési célokra.
Az ext2, ext3 és ext4 fájlrendszerek speciális segédprogramja az e2fsck
, más néven fsck.ext2
, fsck.ext3
és fsck.ext4
(ez a három csak link az e2fsck
-re). Alapértelmezés szerint interaktív módban fut: ha fájlrendszer hibát talál, megáll, és megkérdezi a felhasználót, hogy mit tegyen. A felhasználónak be kell írnia az y
-t a probléma kijavításához, az n
-t a probléma kijavítatlanul hagyásához, vagy az a
-t az aktuális és az összes további probléma kijavításához.
Természetesen a terminál előtt ülve várni, hogy az e2fsck
megkérdezze, mit kell tennie, nem túl produktív időtöltés, különösen, ha egy nagy fájlrendszerrel van dolgunk. Vannak tehát olyan opciók, amelyek hatására az e2fsck
nem interaktív módban fut:
-p
-
Ez megkísérli automatikusan kijavítani a talált hibákat. Ha olyan hibát talál, amely a rendszergazda beavatkozását igényli, az
e2fsck
megadja a probléma leírását és kilép. -y
-
Ez minden kérdésre
y
(yes) választ ad. -n
-
A
-y
ellentettje. Amellett, hogy minden kérdésren
(no) választ ad, a fájlrendszer csak olvashatóan lesz csatolva, így nem módosítható. -f
-
Kényszeríti az
e2fsck
-t, hogy akkor is ellenőrizzen egy fájlrendszert, ha az “clean”-ként van megjelölve, azaz helyesen lett lecsatolva.
Egy ext fájlrendszer finomhangolása
Az ext2, ext3 és ext4 fájlrendszerek számos olyan paraméterrel rendelkeznek, amelyeket a rendszergazda beállíthat, vagy “hangolhat”, hogy jobban megfeleljenek a rendszer igényeinek. Az ezen paraméterek megjelenítésére vagy módosítására használt segédprogram neve tune2fs
.
Ha egy adott fájlrendszer aktuális paramétereit szeretnénk látni, használjuk a -l
paramétert, amelyet a partíciót reprezentáló eszköz követ. Az alábbi példa egy gép első lemezének (/dev/sda1
) első partíciójára vonatkozó parancs kimenetét mutatja:
# tune2fs -l /dev/sda1 tune2fs 1.44.6 (5-Mar-2019) Filesystem volume name: <none> Last mounted on: / Filesystem UUID: 6e2c12e3-472d-4bac-a257-c49ac07f3761 Filesystem magic number: 0xEF53 Filesystem revision #: 1 (dynamic) Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery extent 64bit flex_bg sparse_super large_file huge_file dir_nlink extra_isize metadata_csum Filesystem flags: signed_directory_hash Default mount options: user_xattr acl Filesystem state: clean Errors behavior: Continue Filesystem OS type: Linux Inode count: 7069696 Block count: 28255605 Reserved block count: 1412780 Free blocks: 23007462 Free inodes: 6801648 First block: 0 Block size: 4096 Fragment size: 4096 Group descriptor size: 64 Reserved GDT blocks: 1024 Blocks per group: 32768 Fragments per group: 32768 Inodes per group: 8192 Inode blocks per group: 512 Flex block group size: 16 Filesystem created: Mon Jun 17 13:49:59 2019 Last mount time: Fri Jun 28 21:14:38 2019 Last write time: Mon Jun 17 13:53:39 2019 Mount count: 8 Maximum mount count: -1 Last checked: Mon Jun 17 13:49:59 2019 Check interval: 0 (<none>) Lifetime writes: 20 GB Reserved blocks uid: 0 (user root) Reserved blocks gid: 0 (group root) First inode: 11 Inode size: 256 Required extra isize: 32 Desired extra isize: 32 Journal inode: 8 First orphan inode: 5117383 Default directory hash: half_md4 Directory Hash Seed: fa95a22a-a119-4667-a73e-78f77af6172f Journal backup: inode blocks Checksum type: crc32c Checksum: 0xe084fe23
Az ext fájlrendszereknek van egy mount counts (csatolási szám) értéke. A számláló minden egyes alkalommal, amikor a fájlrendszert csatlakoztatjuk, 1-gyel nő, és amikor egy küszöbértéket (a maximum mount count) elérünk, a rendszer a következő indításkor automatikusan ellenőrzésre kerül az e2fsck
programmal.
A maximális csatolási számot a -c N
paraméterrel lehet beállítani, ahol N
az a szám, ahányszor a fájlrendszert ellenőrzés nélkül lehet csatolni. A -C N
paraméter a rendszer mountolásának számát az N
értékre állítja be. Vegyük figyelembe, hogy a parancssori paraméterek nagy- és kisbetű-érzékenyek, így a -c
nem azonos a -C
paraméterrel.
Lehetőség van az ellenőrzések közötti időintervallum meghatározására is a -i
paraméterrel, amelyet egy szám és a d
betűk követnek a napok, m
a hónapok és y
az évek esetében. Például az -i 10d
a fájlrendszert a következő újraindításkor 10 naponta ellenőrzi. A funkció kikapcsolásához használjuk a nulla értéket.
Az -L
a fájlrendszer címkéjének beállítására használható. Ez a címke legfeljebb 16 karakter lehet. Az -U
paraméter beállítja a fájlrendszer UUID-jét, amely egy 128 bites hexadecimális szám. A fenti példában az UUID a 6e2c12e3-472d-4bac-a257-c49ac07f3761
. A fájlrendszer csatlakoztatásánál mind a címke, mind az UUID használható az eszköz neve helyett (például /dev/sda1
).
A -e BEHAVIOUR
kapcsoló meghatározza a kernel viselkedését, ha fájlrendszer hibát talál. Három lehetséges viselkedési mód van:
continue
-
Normálisan folytatja a végrehajtást.
remount-ro
-
Csak olvasható módon csatolja a fájlrendszert.
panic
-
Kernel pánikot okoz.
Az alapértelmezett viselkedés a continue
. A remount-ro
hasznos lehet adatérzékeny (data-sensitive) alkalmazásokban, mivel azonnal leállítja a lemezre történő írást, elkerülve ezzel a további potenciális hibákat.
Az ext3 fájlrendszerek alapvetően ext2 fájlrendszerek egy naplóval (journal). A tune2fs
segítségével hozzáadhatunk egy naplót egy ext2 fájlrendszerhez és így átalakíthatjuk ext3-ra. Az eljárás egyszerű, csak adjuk át a tune2fs
-nek a -j
paramétert, majd a fájlrendszert tartalmazó eszközt:
# tune2fs -j /dev/sda1
Ezután az átalakított fájlrendszer mountolásakor ne felejtsük el beállítani a típusát ext3
-ra, hogy a napló használható legyen.
Amikor naplózott fájlrendszerekkel dolgozunk, a -J
paraméter lehetővé teszi, hogy extra paramétereket használjunk néhány napló beállításához, mint például -J size=
a napló méretének beállításához (megabájtban), -J location=
a napló tárolási helyének megadásához (vagy egy adott blokk, vagy egy adott pozíció a lemezen olyan utótagokkal, mint M
vagy G
), vagy akár a napló külső eszközre helyezéséhez a -J device=
paraméterrel.
Több paramétert is megadhatunk egyszerre, ha vesszővel választjuk el őket. Például: -J size=10,location=100M,device=/dev/sdb1
egy 10 MB-os naplót hoz létre a 100 MB-os pozícióban a /dev/sdb1
eszközön.
Warning
|
A |
XFS fájlrendszerek karbantartása
XFS fájlrendszerek esetén az fsck
megfelelője az xfs_repair
. Ha azt gyanítjuk, hogy valami baj van a fájlrendszerrel, először is át kell vizsgálni, hogy nem sérült-e meg.
Ezt úgy lehet megtenni, hogy az xfs_repair
-nek átadjuk az -n
paramétert, majd a fájlrendszert tartalmazó eszközt. Az -n
paraméter azt jelenti, hogy “no modify”: a fájlrendszer ellenőrizve lesz, a hibákat jelzi, de javítás nem történik:
# xfs_repair -n /dev/sdb1 Phase 1 - find and verify superblock... Phase 2 - using internal log - zero log... - scan filesystem freespace and inode maps... - found root inode chunk Phase 3 - for each AG... - scan (but do not clear) agi unlinked lists... - process known inodes and perform inode discovery... - agno = 0 - agno = 1 - agno = 2 - agno = 3 - process newly discovered inodes... Phase 4 - check for duplicate blocks... - setting up duplicate extent list... - check for inodes claiming duplicate blocks... - agno = 1 - agno = 3 - agno = 0 - agno = 2 No modify flag set, skipping phase 5 Phase 6 - check inode connectivity... - traversing filesystem ... - traversal finished ... - moving disconnected inodes to lost+found ... Phase 7 - verify link counts... No modify flag set, skipping filesystem flush and exiting.
Ha hibát találunk, akkor a -n
paraméter nélkül hagyhatjuk jóvá a javítást, így: xfs_repair /dev/sdb1
.
Az xfs_repair
számos parancssori kapcsolót ismer, íme néhány:
-l LOGDEV
és-r RTDEV
-
Ezekre akkor van szükség, ha a fájlrendszer külső log és valós idejű szekciókkal rendelkezik. Ebben az esetben a
LOGDEV
ésRTDEV
helyett a megfelelő eszközöket kell megadni. -m N
-
Az
xfs_repair
memóriahasználatánakN
megabájtra való korlátozására szolgál, ami hasznos lehet a szerverek beállításainál. A man oldal alapján alapértelmezés szerint azxfs_repair
a rendszer fizikai RAM memóriahasználatának 75%-áig skálázza a memóriahasználatot. -d
-
A “dangerous” (veszélyes) mód lehetővé teszi a csak olvashatóként felcsatolt fájlrendszerek javítását.
-v
-
Talán ki is tudjuk találni: verbose mód. Minden egyes alkalommal, amikor ezt a paramétert használjuk, a “verbosity” növekszik (például a
-v -v
több információt ír ki, mint a-v
).
Vegyük figyelembe, hogy az xfs_repair
nem képes javítani a “dirty” naplóval rendelkező fájlrendszereket. A hibás naplót a -L
paraméterrel “nullázhatjuk”, de ne feledjük, hogy ez csak az utolsó lehetőség, mivel ez a fájlrendszer sérüléséhez és adatvesztéshez vezethet.
Egy XFS fájlrendszer hibakeresésére az xfs_db
segédprogram használható, mint például az xfs_db /dev/sdb1
. Ez leginkább a fájlrendszer különböző elemeinek és paramétereinek vizsgálatára szolgál.
Ennek a segédprogramnak van egy interaktív promptja, mint a parted
, sok belső paranccsal. Egy súgórendszer is rendelkezésre áll: írjuk be a help
parancsot az összes parancs listájának megtekintéséhez, majd a help
parancsot a parancs neve után, hogy további információkat kapjunk a parancsról.
Egy másik hasznos segédprogram az xfs_fsr
, amely egy XFS fájlrendszer átszervezésére (“defragmentálására” (töredezettségmentesítés)) használható. Ha minden további argumentum nélkül futtatjuk, két órán keresztül fut, és megpróbálja defragmentálni az összes csatlakoztatott, írható XFS fájlrendszert, amely szerepel az /etc/mtab/
fájlban. Lehet, hogy ezt a segédprogramot a Linux-disztribúció csomagkezelőjével kell telepíteni, mivel előfordulhat, hogy nem része az alapértelmezett telepítésnek. További információt a megfelelő man oldalon találhatunk.
Gyakorló feladatok
-
A
du
használatával hogyan tudjuk ellenőrizni, hogy mennyi helyet használnak az aktuális mappában lévő fájlok? -
A
df
használatával listázzuk ki az információkat minden ext4 fájlrendszerről, a kimenetek a következő mezőket tartalmazzák sorrendben: eszköz, csatolási pont, inode-ok száma, rendelkezésre álló inode-ok száma, szabad hely százalékos aránya. -
Mi a parancs az
e2fsck
nem interaktív módban való futtatásához a/dev/sdc1
, miközben automatikusan megpróbálja kijavítani a legtöbb hibát? -
Tegyük fel, hogy a
/dev/sdb1
egy ext2 fájlrendszer. Hogyan lehet átalakítani ext3-ra, és ezzel egyidejűleg visszaállítani a mount countot, és a címkéjétUserData
-ra változtatni? -
Hogyan lehet ellenőrizni a hibákat egy XFS fájlrendszeren, anélkül, hogy javítanánk a talált sérüléseket?
Gondolkodtató feladatok
-
Tegyük fel, hogy van egy ext4 fájlrendszerünk a
/dev/sda1
lemezen a következő paraméterekkel, amelyeket atune2fs
programmal kaptunk:Mount count: 8 Maximum mount count: -1
Mi fog történni a következő rendszerindításkor, ha a
tune2fs -c 9 /dev/sda1
parancsot adjuk ki? -
Nézzük az alábbi
du -h
kimenetet:$ du -h 216K ./somedir/anotherdir 224K ./somedir 232K .
Mennyi helyet foglalnak el csak az aktuális mappában lévő fájlok? Hogyan írhatnánk át a parancsot, hogy egyértelműbben mutassa ezt az információt?
-
Mi történik az ext2 fájlrendszerrel (
/dev/sdb1
), ha az alábbi parancsot adjuk ki?# tune2fs -j /dev/sdb1 -J device=/dev/sdc1 -i 30d
-
Hogyan ellenőrizhetjük a hibákat egy XFS fájlrendszeren a
/dev/sda1
-en, amelynek van egy naplórészlege a/dev/sdc1
-en, anélkül, hogy bármilyen javítást végeznénk? -
Mi a különbség a
-T
és a-t
paraméterek között azdf
esetében?
Összefoglalás
Ebben a leckében megtanultuk:
-
Hogyan ellenőrizhetjük a használt és szabad helyet egy fájlrendszerben.
-
Hogyan alakítsuk az
df
kimenetét az igényeinknek megfelelően. -
Hogyan ellenőrizhetjük és javíthatjuk a fájlrendszer integritását az
fsck
és aze2fsck
segítségével. -
Hogyan finomhangolhatunk egy ext fájlrendszert a
tune2fs
segítségével. -
Hogyan ellenőrizhetjük és javíthatjuk az XFS fájlrendszereket az
xfs_repair
segítségével.
A következő parancsokról volt szó a leckében:
du
-
A fájlrendszerben használt lemezterület nagyságának megtekintése.
df
-
A fájlrendszeren rendelkezésre álló (szabad) lemezterület megtekintése.
fsck
-
A fájlrendszert ellenőrző-javító segédprogram.
e2fsck
-
A kiterjesztett (ext2/3/4) fájlrendszerekre jellemző fájlrendszert ellenőrző-javító segédprogram.
tune2fs
-
A kiterjesztett (ext2/3/4) fájlrendszer paramétereinek módosítása.
xfs_repair
-
Az
fsck
megfelelője XFS fájlrendszerekhez. xfs_db
-
Ez a segédprogram az XFS fájlrendszer különböző paramétereinek megtekintésére szolgál.
Válaszok a gyakorló feladatokra
-
A
du
használatával hogyan tudjuk ellenőrizni, hogy mennyi helyet használnak az aktuális mappában lévő fájlok?Először is, használjuk az
-S
paramétert az aktuális mappa kimenetének almappáktól való szétválasztására. Ezután használjuk a-d 0
paramétert, hogy a kimeneti mélységet nullára korlátozzuk, ami azt jelenti, hogy “nincs almappa”. Ne feledkezzünk meg a-h
paraméterről, hogy a kimenetet “ember által olvasható” formátumban kapjuk meg:$ du -S -h -d 0
vagy
$ du -Shd 0
-
A
df
használatával listázzuk ki az információkat minden ext4 fájlrendszerről, a kimenetek a következő mezőket tartalmazzák sorrendben: eszköz, csatolási pont, inode-ok száma, rendelkezésre álló inode-ok száma, szabad hely százalékos aránya.A fájlrendszereket a
-t
opcióval szűrhetjük, amelyet a fájlrendszer neve követ. A szükséges kimenethez használjuk az--output=source,target,itotal,iavail,pcent
parancsot. A válasz tehát a következő:$ df -t ext4 --output=source,target,itotal,iavail,pcent
-
Mi a parancs az
e2fsck
futtatásához a/dev/sdc1
lemezen nem interaktív módban, miközben automatikusan megpróbálja kijavítani a legtöbb hibát?A paraméter, amivel automatikusan megpróbálja kijavítani a legtöbb hibát a
-p
. Tehát a válasz:# e2fsck -p /dev/sdc1
-
Tegyük fel, hogy a
/dev/sdb1
egy ext2 fájlrendszer. Hogyan lehet átalakítani ext3-ra, és ezzel egyidejűleg visszaállítani a mount countot, és a címkéjétUserData
-ra változtatni?Ne feledjük, hogy egy ext2 fájlrendszer ext3-ra való átalakítása csak egy napló hozzáadásának kérdése, amit a
-j
paraméterrel tehetünk meg. A mount count visszaállításához használjuk a-C 0
paramétert. A címke megváltoztatásához használjuk a-L UserData
paramétert. A helyes válasz a következő:# tune2fs -j -C 0 -L UserData /dev/sdb1
-
Hogyan lehet ellenőrizni a hibákat egy XFS fájlrendszeren, anélkül, hogy javítanánk a talált sérüléseket?
Használjuk az
-n
paramétert, mint példáulxfs -n
, majd utána a megfelelő eszközt.
Válaszok a gondolkodtató feladatokra
-
Tegyük fel, hogy van egy ext4 fájlrendszerünk a
/dev/sda1
lemezen a következő paraméterekkel, amelyeket atune2fs
programmal kaptunk:Mount count: 8 Maximum mount count: -1
Mi fog történni a következő rendszerindításkor, ha a
tune2fs -c 9 /dev/sda1
parancsot adjuk ki?A parancs a fájlrendszer maximális mount count-ját 9-re állítja be. Mivel ez jelenleg 8, a következő rendszerindításakor a fájlrendszer ellenőrzése megtörténik.
-
Nézzük az alábbi
du -h
kimenetet:$ du -h 216K ./somedir/anotherdir 224K ./somedir 232K .
Mennyi helyet foglalnak el csak az aktuális mappában lévő fájlok? Hogyan írhatnánk át a parancsot, hogy egyértelműbben mutassa ezt az információt?
Az összesen 232 K-ból 224 K-t a
somedir
almappa és annak almappái használnak. Ezeket leszámítva tehát 8 K-t foglalnak el az aktuális mappában lévő fájlok. Ez az információ még világosabban megjeleníthető az-S
paraméter használatával, amely a mappákat szétválasztja a számolásnál. -
Mi történik az ext2 fájlrendszerrel (
/dev/sdb1
), ha az alábbi parancsot adjuk ki?# tune2fs -j /dev/sdb1 -J device=/dev/sdc1 -i 30d
Egy napló kerül hozzáadásra a
/dev/sdb1
-hoz, ezzel ext3-ra konvertálja. A napló a/dev/sdc1
eszközön lesz tárolva és a fájlrendszer minden 30. napon ellenőrizve lesz. -
Hogyan ellenőrizhetjük a hibákat egy XFS fájlrendszeren a
/dev/sda1
-en, amelynek van egy naplórészlege a/dev/sdc1
-en, anélkül, hogy bármilyen javítást végeznénk?Használjuk az
xfs_repair
-t a-l /dev/sdc1
-vel a naplórészletet tartalmazó eszköz megjelölésére, és-n
-t a változtatások elkerülése érdekében.# xfs_repair -l /dev/sdc1 -n
-
Mi a különbség a
-T
és a-t
paraméterek között azdf
esetében?A
-T
paraméter az egyes fájlrendszerek típusát is tartalmazza adf
kimenetén. A-t
egy szűrő, és csak a megadott típusú fájlrendszereket jeleníti meg a kimeneten, az összes többit kizárva.