4 værktøjer til styring af EXT2, EXT3 og EXT4 Health i Linux
Et filsystem er en datastruktur, der hjælper med at kontrollere, hvordan data lagres og hentes på et computersystem. Et filsystem kan også betragtes som en fysisk (eller udvidet) partition på en disk. Hvis det ikke er godt vedligeholdt og regelmæssigt overvåget, kan det blive beskadiget eller ødelagt i det lange løb på så mange forskellige måder.
Der er flere faktorer, der kan få et filsystem til at blive usundt: systemnedbrud, hardware- eller softwarefejl, fejlbehæftede drivere og programmer, tuning af det forkert, overbelastning med overdrevne data plus andre mindre fejl.
Enhver af disse problemer kan få Linux til ikke at montere (eller afmontere) et filsystem yndefuldt og dermed medføre systemfejl.
Derudover kan kørsel af dit system med et svækket filsystem give anledning til andre runtime-fejl i operativsystemkomponenter eller i brugerapplikationer, hvilket kan eskalere til alvorligt datatab. For at undgå at lide filsystemkorruption eller skader skal du holde øje med dets helbred.
I denne artikel vil vi dække værktøjer til overvågning og vedligeholdelse af en ext2-, ext3- og ext4-filsystems sundhed. Alle de her beskrevne værktøjer kræver root-brugerrettigheder, og brug derfor sudo-kommandoen til at køre dem.
Sådan får du vist EXT2/EXT3/EXT4 filsystemoplysninger
dumpe2fs er et kommandolinjeværktøj, der bruges til at dumpe ext2/ext3/ext4-filsystemoplysninger, hvilket betyder, at det viser superblok og blokerer gruppeoplysninger til filsystemet på enheden.
Inden du kører dumpe2fs, skal du sørge for at køre df -hT-kommandoen for at kende filsystemets enhedsnavne.
$ sudo dumpe2fs /dev/sda10
dumpe2fs 1.42.13 (17-May-2015) Filesystem volume name: Last mounted on: / Filesystem UUID: bb29dda3-bdaa-4b39-86cf-4a6dc9634a1b Filesystem magic number: 0xEF53 Filesystem revision #: 1 (dynamic) Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize Filesystem flags: signed_directory_hash Default mount options: user_xattr acl Filesystem state: clean Errors behavior: Continue Filesystem OS type: Linux Inode count: 21544960 Block count: 86154752 Reserved block count: 4307737 Free blocks: 22387732 Free inodes: 21026406 First block: 0 Block size: 4096 Fragment size: 4096 Reserved GDT blocks: 1003 Blocks per group: 32768 Fragments per group: 32768 Inodes per group: 8192 Inode blocks per group: 512 Flex block group size: 16 Filesystem created: Sun Jul 31 16:19:36 2016 Last mount time: Mon Nov 6 10:25:28 2017 Last write time: Mon Nov 6 10:25:19 2017 Mount count: 432 Maximum mount count: -1 Last checked: Sun Jul 31 16:19:36 2016 Check interval: 0 () Lifetime writes: 2834 GB Reserved blocks uid: 0 (user root) Reserved blocks gid: 0 (group root) First inode: 11 Inode size: 256 Required extra isize: 28 Desired extra isize: 28 Journal inode: 8 First orphan inode: 6947324 Default directory hash: half_md4 Directory Hash Seed: 9da5dafb-bded-494d-ba7f-5c0ff3d9b805 Journal backup: inode blocks Journal features: journal_incompat_revoke Journal size: 128M Journal length: 32768 Journal sequence: 0x00580f0c Journal start: 12055
Du kan videregive -b
-flaget for at få vist alle blokke, der er reserveret som dårlige i filsystemet (ingen output antyder til badblocks):
$ dumpe2fs -b
Kontrol af EXT2/EXT3/EXT4 filsystemer for fejl
e2fsck bruges til at undersøge ext2/ext3/ext4 filsystemer for fejl og fsck-kontrol og kan eventuelt reparere et Linux-filsystem; det er grundlæggende en front-end til en række filsystemkontrollere (fsck.fstype for eksempel fsck.ext3, fsck.sfx osv.), der tilbydes under Linux.
Husk, at Linux kører e2fack/fsck automatisk ved systemstart på partitioner, der er mærket til kontrol i/etc/fstab-konfigurationsfil. Dette gøres normalt, når et filsystem ikke er demonteret rent.
OBS: Kør ikke e2fsck eller fsck på monterede filsystemer, afmonter altid en partition først, før du kan køre disse værktøjer på den, som vist nedenfor.
$ sudo unmount /dev/sda10 $ sudo fsck /dev/sda10
Alternativt kan du aktivere detaljeret output med -V
-omskifteren og bruge -t
til at angive en filsystemtype som denne:
$ sudo fsck -Vt ext4 /dev/sda10
Tuning af EXT2/EXT3/EXT4 filsystemer
Vi nævnte fra starten, at en af årsagerne til filsystemskader er forkert tuning. Du kan bruge tune2fs-værktøjet til at ændre de indstillelige parametre for ext2/ext3/ext4-filsystemer som forklaret nedenfor.
For at se indholdet af filsystemets superblok, inklusive de aktuelle værdier for parametrene, skal du bruge indstillingen -l
som vist.
$ sudo tune2fs -l /dev/sda10
tune2fs 1.42.13 (17-May-2015) Filesystem volume name: Last mounted on: / Filesystem UUID: bb29dda3-bdaa-4b39-86cf-4a6dc9634a1b Filesystem magic number: 0xEF53 Filesystem revision #: 1 (dynamic) Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize Filesystem flags: signed_directory_hash Default mount options: user_xattr acl Filesystem state: clean Errors behavior: Continue Filesystem OS type: Linux Inode count: 21544960 Block count: 86154752 Reserved block count: 4307737 Free blocks: 22387732 Free inodes: 21026406 First block: 0 Block size: 4096 Fragment size: 4096 Reserved GDT blocks: 1003 Blocks per group: 32768 Fragments per group: 32768 Inodes per group: 8192 Inode blocks per group: 512 Flex block group size: 16 Filesystem created: Sun Jul 31 16:19:36 2016 Last mount time: Mon Nov 6 10:25:28 2017 Last write time: Mon Nov 6 10:25:19 2017 Mount count: 432 Maximum mount count: -1 Last checked: Sun Jul 31 16:19:36 2016 Check interval: 0 () Lifetime writes: 2834 GB Reserved blocks uid: 0 (user root) Reserved blocks gid: 0 (group root) First inode: 11 Inode size: 256 Required extra isize: 28 Desired extra isize: 28 Journal inode: 8 First orphan inode: 6947324 Default directory hash: half_md4 Directory Hash Seed: 9da5dafb-bded-494d-ba7f-5c0ff3d9b805 Journal backup: inode blocks
Dernæst ved hjælp af -c
flag kan du indstille antallet af monteringer, hvorefter filsystemet kontrolleres af e2fsck. Denne kommando instruerer systemet om at køre e2fsck mod /dev/sda10
efter hver 4. montering.
$ sudo tune2fs -c 4 /dev/sda10 tune2fs 1.42.13 (17-May-2015) Setting maximal mount count to 4
Du kan lige så godt definere tiden mellem to filsystemkontroller med indstillingen -i
. Den følgende kommando indstiller et interval på 2 dage mellem filsystemkontrol.
$ sudo tune2fs -i 2d /dev/sda10 tune2fs 1.42.13 (17-May-2015) Setting interval between checks to 172800 seconds
Hvis du nu kører denne kommando nedenfor, er filsystemets kontrolinterval for /dev/sda10
nu indstillet.
$ sudo tune2fs -l /dev/sda10
Filesystem created: Sun Jul 31 16:19:36 2016 Last mount time: Mon Nov 6 10:25:28 2017 Last write time: Mon Nov 6 13:49:50 2017 Mount count: 432 Maximum mount count: 4 Last checked: Sun Jul 31 16:19:36 2016 Check interval: 172800 (2 days) Next check after: Tue Aug 2 16:19:36 2016 Lifetime writes: 2834 GB Reserved blocks uid: 0 (user root) Reserved blocks gid: 0 (group root) First inode: 11 Inode size: 256 Required extra isize: 28 Desired extra isize: 28 Journal inode: 8 First orphan inode: 6947324 Default directory hash: half_md4 Directory Hash Seed: 9da5dafb-bded-494d-ba7f-5c0ff3d9b805 Journal backup: inode blocks
For at ændre standardjournaleringsparametrene skal du bruge indstillingen -J
. Denne indstilling har også underindstillinger: størrelse = journalstørrelse (indstiller journalens størrelse), enhed = ekstern journal (specificerer den enhed, den er gemt på) og placering = journal-placering (definerer placeringen af journal).
Bemærk, at kun en af indstillingerne for størrelse eller enhed kan indstilles til et filsystem:
$ sudo tune2fs -J size=4MB /dev/sda10
Sidst men ikke mindst kan volumenetiketten på et filsystem indstilles ved hjælp af indstillingen -L
som nedenfor.
$ sudo tune2fs -L "ROOT" /dev/sda10
Fejlfind EXT2/EXT3/EXT4 filsystemer
debugfs er en enkel, interaktiv kommandolinjebaseret ext2/ext3/ext4-filsystems debugger. Det giver dig mulighed for at ændre filsystemparametre interaktivt. For at se underkommandoer eller anmodninger skal du skrive "?"
.
$ sudo debugfs /dev/sda10
Som standard skal filsystemet åbnes i læse-skrivetilstand, brug flag -w
til at åbne det i læse-skrivetilstand. For at åbne den i katastrofal tilstand skal du bruge indstillingen -c
.
debugfs 1.42.13 (17-May-2015) debugfs: ? Available debugfs requests: show_debugfs_params, params Show debugfs parameters open_filesys, open Open a filesystem close_filesys, close Close the filesystem freefrag, e2freefrag Report free space fragmentation feature, features Set/print superblock features dirty_filesys, dirty Mark the filesystem as dirty init_filesys Initialize a filesystem (DESTROYS DATA) show_super_stats, stats Show superblock statistics ncheck Do inode->name translation icheck Do block->inode translation change_root_directory, chroot ....
For at vise fragmentering af ledig plads skal du bruge freefrag-anmodningen som sådan.
debugfs: freefrag
Device: /dev/sda10 Blocksize: 4096 bytes Total blocks: 86154752 Free blocks: 22387732 (26.0%) Min. free extent: 4 KB Max. free extent: 2064256 KB Avg. free extent: 2664 KB Num. free extent: 33625 HISTOGRAM OF FREE EXTENT SIZES: Extent Size Range : Free extents Free Blocks Percent 4K... 8K- : 4883 4883 0.02% 8K... 16K- : 4029 9357 0.04% 16K... 32K- : 3172 15824 0.07% 32K... 64K- : 2523 27916 0.12% 64K... 128K- : 2041 45142 0.20% 128K... 256K- : 2088 95442 0.43% 256K... 512K- : 2462 218526 0.98% 512K... 1024K- : 3175 571055 2.55% 1M... 2M- : 4551 1609188 7.19% 2M... 4M- : 2870 1942177 8.68% 4M... 8M- : 1065 1448374 6.47% 8M... 16M- : 364 891633 3.98% 16M... 32M- : 194 984448 4.40% 32M... 64M- : 86 873181 3.90% 64M... 128M- : 77 1733629 7.74% 128M... 256M- : 11 490445 2.19% 256M... 512M- : 10 889448 3.97% 512M... 1024M- : 2 343904 1.54% 1G... 2G- : 22 10217801 45.64% debugfs:
Du kan udforske så mange andre anmodninger, såsom at oprette eller fjerne filer eller mapper, ændre den aktuelle arbejdsmappe og meget mere ved blot at læse den korte beskrivelse, der gives. For at afslutte fejlretning skal du bruge anmodningen q
.
Det er alt for nu! Vi har en samling relaterede artikler under forskellige kategorier nedenfor, som du finder nyttige.
- 12 Nyttige “df” -kommandoer til kontrol af diskplads i Linux
- Pydf en alternativ “df” -kommando for at kontrollere diskbrug i forskellige farver
- 10 Nyttige du-kommandoer (Diskbrug) til at finde diskbrug af filer og kataloger
- 3 Nyttige GUI- og terminalbaserede Linux Disk Scanningsværktøjer
- Sådan kontrolleres dårlige sektorer eller dårlige blokke på harddisken i Linux
- Sådan repareres og defragmenteres Linux-systempartitioner og -mapper
Vedligeholdelse af et sundt filsystem forbedrer altid den samlede ydeevne for dit Linux-system. Hvis du har spørgsmål eller yderligere tanker at dele, brug kommentarformularen nedenfor.