Wyszukiwanie w witrynie

4 narzędzia do zarządzania stanem EXT2, EXT3 i EXT4 w systemie Linux


System plików to struktura danych, która pomaga kontrolować sposób przechowywania i pobierania danych w systemie komputerowym. System plików można również uznać za fizyczną (lub rozszerzoną) partycję na dysku. Jeśli nie jest dobrze konserwowany i regularnie monitorowany, w dłuższej perspektywie może ulec uszkodzeniu na wiele różnych sposobów.

Istnieje kilka czynników, które mogą spowodować, że system plików stanie się niezdrowy: awarie systemu, awarie sprzętu lub oprogramowania, błędne sterowniki i programy, nieprawidłowe dostrojenie, przeciążenie nadmiernymi danymi oraz inne drobne usterki.

Każdy z tych problemów może spowodować, że Linux nie będzie prawidłowo montował (lub odmontowywał) systemu plików, co doprowadzi do awarii systemu.

Przeczytaj także: 7 sposobów określenia typu systemu plików w systemie Linux (Ext2, Ext3 lub Ext4)

Ponadto uruchomienie systemu z uszkodzonym systemem plików może spowodować inne błędy wykonania w komponentach systemu operacyjnego lub aplikacjach użytkownika, które mogą skutkować poważną utratą danych. Aby uniknąć uszkodzenia lub uszkodzenia systemu plików, musisz zwracać uwagę na jego stan.

W tym artykule omówimy narzędzia do monitorowania i utrzymywania stanu systemów plików ext2, ext3 i ext4. Wszystkie opisane tutaj narzędzia wymagają uprawnień użytkownika root, dlatego do ich uruchomienia użyj komendy sudo.

Jak wyświetlić informacje o systemie plików EXT2/EXT3/EXT4

dumpe2fs to narzędzie wiersza poleceń służące do zrzutu informacji o systemie plików ext2/ext3/ext4, co oznacza, że wyświetla informacje o superblokach i grupach bloków dla systemu plików na urządzeniu.

Przed uruchomieniem dumpe2fs upewnij się, że uruchomiłeś polecenie df -hT, aby poznać nazwy urządzeń w systemie plików.

sudo dumpe2fs /dev/sda10
Przykładowe wyjście
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

Możesz przekazać flagę -b, aby wyświetlić wszystkie bloki zarezerwowane jako złe w systemie plików (brak wyników oznacza złe bloki):

dumpe2fs -b

Sprawdzanie systemów plików EXT2/EXT3/EXT4 pod kątem błędów

e2fsck służy do sprawdzania systemów plików ext2/ext3/ext4 pod kątem błędów i sprawdzania fsck i opcjonalnie może naprawić system plików Linux; jest to w zasadzie nakładka dla szeregu narzędzi do sprawdzania systemów plików (fsck.fstype na przykład fsck.ext3, fsck.sfx itp.) oferowanych pod Linuksem.

Pamiętaj, że Linux uruchamia e2fack/fsck automatycznie podczas startu systemu na partycjach oznaczonych do sprawdzania pliku konfiguracyjnego /etc/fstab. Zwykle robi się to po tym, jak system plików nie został odmontowany w sposób czysty.

Uwaga: nie uruchamiaj e2fsck ani fsck na zamontowanych systemach plików, zawsze najpierw odmontuj partycję, zanim będziesz mógł uruchomić umieść na nim te narzędzia, jak pokazano poniżej.

sudo unmount /dev/sda10
sudo fsck /dev/sda10

Alternatywnie włącz pełne wyjście za pomocą przełącznika -V i użyj -t, aby określić typ systemu plików w następujący sposób:

sudo fsck -Vt ext4 /dev/sda10

Strojenie systemów plików EXT2/EXT3/EXT4

Od początku wspominaliśmy, że jedną z przyczyn uszkodzeń systemu plików jest nieprawidłowe dostrojenie. Możesz użyć narzędzia tune2fs, aby zmienić dostrajalne parametry systemów plików ext2/ext3/ext4, jak wyjaśniono poniżej.

Aby zobaczyć zawartość superbloku systemu plików, w tym bieżące wartości parametrów, użyj opcji -l, jak pokazano.

sudo tune2fs -l /dev/sda10
Przykładowe wyjście
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

Następnie za pomocą flagi -c możesz ustawić liczbę montowań, po których system plików będzie sprawdzany przez e2fsck. To polecenie instruuje system, aby uruchamiał e2fsck przeciwko /dev/sda10 po każdych 4 montowaniach.

sudo tune2fs -c 4 /dev/sda10

tune2fs 1.42.13 (17-May-2015)
Setting maximal mount count to 4

Możesz także zdefiniować czas pomiędzy dwoma sprawdzeniami systemu plików za pomocą opcji -i. Poniższe polecenie ustawia odstęp 2 dni pomiędzy sprawdzaniem systemu plików.

sudo tune2fs  -i  2d  /dev/sda10

tune2fs 1.42.13 (17-May-2015)
Setting interval between checks to 172800 seconds

Teraz, jeśli uruchomisz to polecenie poniżej, interwał sprawdzania systemu plików dla /dev/sda10 jest teraz ustawiony.

sudo tune2fs -l /dev/sda10
Przykładowe wyjście
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

Aby zmienić domyślne parametry kronikowania, użyj opcji -J. Ta opcja ma również podopcje: size=rozmiar-czasopisma (ustawia rozmiar czasopisma), device=zewnętrzny-journal (określa urządzenie, na którym jest przechowywany) oraz location=journal-location (definiuje lokalizację czasopisma).

Pamiętaj, że dla systemu plików można ustawić tylko jedną z opcji rozmiaru lub urządzenia:

sudo tune2fs -J size=4MB /dev/sda10

Na koniec, etykietę woluminu systemu plików można ustawić za pomocą opcji -L, jak poniżej.

sudo tune2fs -L "ROOT" /dev/sda10

Debuguj systemy plików EXT2/EXT3/EXT4

debugfs to prosty, interaktywny debuger systemów plików ext2/ext3/ext4 oparty na wierszu poleceń. Umożliwia interaktywną modyfikację parametrów systemu plików. Aby wyświetlić podpolecenia lub żądania, wpisz ”?”.

sudo debugfs /dev/sda10

Domyślnie system plików powinien być otwarty w trybie odczytu i zapisu, użyj flagi -w, aby otworzyć go w trybie odczytu i zapisu. Aby otworzyć go w trybie katastroficznym, użyj opcji -c.

Przykładowe wyjście
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
....

Aby pokazać fragmentację wolnego miejsca, użyj żądania freefrag w ten sposób.

debugfs: freefrag
Przykładowe wyjście
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:  

Możesz poznać wiele innych żądań, takich jak tworzenie lub usuwanie plików lub katalogów, zmiana bieżącego katalogu roboczego i wiele więcej, po prostu czytając dostarczony krótki opis. Aby zakończyć debugfs, użyj żądania q.

To wszystko na teraz! Poniżej znajduje się zbiór powiązanych artykułów w różnych kategoriach, które okażą się przydatne.

Informacje o użyciu systemu plików:

  1. 12 Przydatnych poleceń „df” do sprawdzania miejsca na dysku w systemie Linux
  2. Pydf alternatywne polecenie „df” służące do sprawdzania użycia dysku w różnych kolorach
  3. 10 przydatnych poleceń du (wykorzystanie dysku) do sprawdzania wykorzystania dysku przez pliki i katalogi

Sprawdź stan dysku lub partycji:

  1. 3 Przydatne narzędzia do skanowania dysków z systemem Linux i interfejsem graficznym oraz terminalem
  2. Jak sprawdzić uszkodzone sektory lub uszkodzone bloki na dysku twardym w systemie Linux
  3. Jak naprawić i zdefragmentować partycje i katalogi systemu Linux

Utrzymanie zdrowego systemu plików zawsze poprawia ogólną wydajność systemu Linux. Jeśli masz jakieś pytania lub dodatkowe przemyślenia, którymi chcesz się podzielić, skorzystaj z poniższego formularza komentarza.