Jak korzystać z polecenia fsck w systemie Linux?

Opublikowany: 2022-01-29
Dysk twardy z zapisanym kodem binarnym.
Studio Pixza/Shutterstock

Wszystkie nasze ważne dane znajdują się w systemie plików tego czy innego typu, a problemy z systemem plików na pewno się zdarzą. W systemie Linux możemy użyć polecenia fsck , aby znaleźć i naprawić błędy systemu plików.

Systemy plików to oprogramowanie

Systemy plików to jeden z najważniejszych elementów komputera. Bez systemu plików komputer nie może przechowywać żadnych danych na dysku twardym, niezależnie od tego, czy jest to obracający się talerz mechaniczny, czy dysk półprzewodnikowy. W rzeczywistości system plików musi zostać utworzony przed zainstalowaniem systemu operacyjnego na dysku twardym. Musi być coś, w czym mają być przechowywane pliki systemu operacyjnego. Tak więc system plików jest tworzony podczas procesu instalacji.

10 podstawowych poleceń systemu Linux dla początkujących
POWIĄZANE 10 podstawowych poleceń systemu Linux dla początkujących

Systemy plików są tworzone przez oprogramowanie, zapisywane przez oprogramowanie i odczytywane przez oprogramowanie. Jak wiesz, całe złożone oprogramowanie ma błędy. Nasze dane są dla nas niezwykle ważne, dlatego bardzo wierzymy w systemy plików i oprogramowanie, które je tworzy i używa. Jeśli coś pójdzie nie tak, możemy stracić dostęp do części systemu plików, a nawet całej partycji.

Nowoczesne systemy plików z księgowaniem lepiej radzą sobie z problemami, które mogą być spowodowane nagłą utratą zasilania lub awarią systemu. Są wytrzymałe, ale nie są niezwyciężone. Jeśli ich wewnętrzne tabele zostaną pomieszane, mogą stracić orientację, gdzie znajduje się każdy plik na dysku, jaki ma rozmiar, jaką ma nazwę i jakie uprawnienia do plików są dla nich ustawione.

Polecenie fsck pozwala sprawdzić, czy systemy plików są w dobrej kondycji. Jeśli znajdzie jakieś problemy, zwykle może je również naprawić.

Wykonaj kontrole przed lotem

Korzystanie fsck wymaga uprawnień sudo. Każde polecenie, które może wprowadzać zmiany w systemie plików, należy traktować z ostrożnością i ograniczyć do tych, którzy wiedzą, co robią.

Reklama

Piloci nie wskakują do samolotu, nie uruchamiają go i nie lecą w bladoniebieskie tam. Przeprowadzają kontrole przed lotem. Stawka jest zbyt duża, aby zrobić inaczej. To dobry nawyk do rozwijania. Zanim użyjesz fsck , musisz upewnić się, że będziesz go używać na właściwym dysku. Więc zanim zrobimy cokolwiek z fsck , zrobimy trochę rekonesansu.

Zaczniemy od fdisk i podzielimy go na less . Nie prosimy o informacje dotyczące konkretnej partycji. Używając opcji -l (lista), fdisk wyświetla tabele partycji na wszystkich urządzeniach znalezionych w pliku „/proc/partitions”, jeśli istnieje.

 sudo fdisk -l | mniej 

Widzimy wpisy dla /dev/sda i /dev/sdb . Możesz przewinąć plik, aby zobaczyć inne wpisy, które mogą istnieć na twoim komputerze.

Obserwuj dane wyjściowe w oknie terminala

Partycje na /dev/sda są wymienione jako /dev/sda1 , /dev/sda2 i /dev/sda3 . Mamy więc trzy partycje na pierwszym dysku. Możemy zobaczyć trochę więcej informacji za pomocą polecenia parted . Użyjemy opcji 'print' , aby wyświetlić tabele partycji w oknie terminala.

 sudo parted /dev/sda 'drukuj' 

Uzyskaj informacje o tablicach partycji

Tym razem otrzymujemy dodatkowe informacje, w tym typ systemu plików na każdej partycji.

 Model: ATA VBOX HARDDISK (scsi) 
Dysk /dev/sda: 34,4 GB 
Rozmiar sektora (logiczny/fizyczny): 512B/512B 
Tabela partycji: gpt 
Flagi dysków:

Numer Początek Koniec Rozmiar System plików Nazwa Flagi 
1 1049kB 2097kB 1049kB bios_grub 
2 2097kB 540MB 538MB fat32 EFI System Partition boot, zwł 
3 540 MB 34,4 GB 33,8 GB ext4
Reklama

W tym komputerze testowym są trzy dyski. To są wyniki dla dwóch pozostałych dysków /dev/sdb i /dev/sdc . Zwróć uwagę, że te systemy plików nie mają pola „Nazwa”.

 sudo parted /dev/sdb 'drukuj'
 Model: ATA VBOX HARDDISK (scsi) 
Dysk /dev/sdb: 21,5 GB 
Rozmiar sektora (logiczny/fizyczny): 512B/512B 
Tabela partycji: msdos 
Flagi dysków:

Numer Początek Koniec Rozmiar Typ System plików Flagi 
1 1049kB 21,5 GB 21,5 GB podstawowy ext4
 sudo parted /dev/sdc 'drukuj'
 Model: ATA VBOX HARDDISK (scsi) 
Dysk /dev/sdc: 21,5 GB 
Rozmiar sektora (logiczny/fizyczny): 512B/512B 
Tabela partycji: msdos 
Flagi dysków:

Numer Początek Koniec Rozmiar Typ System plików Flagi
1 1049 kB 21,5 GB 21,5 GB podstawowe rozszerzenie3

Drugi i trzeci dysk mają ten sam rozmiar, a każdy ma pojedynczą partycję. Ale system plików na drugim dysku to ext4 , a system plików na trzecim dysku to starszy ext3 .

Jak montować i odmontowywać urządzenia pamięci masowej z terminala Linux
POWIĄZANE Jak montować i odmontowywać urządzenia pamięci masowej z terminala Linux

Przekazujemy identyfikator partycji do fsck , który sprawdza system plików na tej partycji. Ale nie możemy uruchomić fsck na zamontowanym systemie plików. Musimy odmontować dysk. Aby to zrobić, musimy znać punkt montowania, w którym partycja — a tym samym system plików — jest zamontowana.

Możemy to łatwo sprawdzić za pomocą polecenia df .

 df /dev/sdb1
 df /dev/sdc1 

Korzystanie z polecenia fsck

Mamy wszystkie potrzebne informacje. Pierwszą rzeczą, którą zrobimy, jest odmontowanie systemu plików, który zamierzamy sprawdzić. Będziemy pracować nad systemem plików na pierwszej i jedynej partycji /dev/sdb , którą jest /dev/sdb1 . Widzieliśmy wcześniej, że jest to system plików ext4 , który jest zamontowany w „/run/mount/dave/sata2”.

Użyjemy polecenia umount . Zauważ, że w „umount” nie ma „n”.

 sudo umount /run/mount/dave/sata2 

Użyj polecenia umount, aby odmontować system plików.

Reklama

Z umount żadna wiadomość nie jest dobrą wiadomością. Jeśli po cichu wrócisz do wiersza poleceń, możemy już iść.

 sudo fsck /dev/sdb1 

Użyj polecenia fsck, aby sprawdzić stan systemu plików.

Ten system plików jest zgłaszany jako czysty. Oznacza to, że system plików zgłasza brak błędów lub problemów. Dokładniejsze sprawdzenie systemu plików nie jest przeprowadzane automatycznie. Możemy również spojrzeć na kod powrotu, który fsck zwrócił do powłoki.

 echo $? 

Zwracana wartość zero oznacza brak błędów. Możliwe kody zwrotne to:

  • 0 : Brak błędów
  • 1 : Poprawiono błędy systemu plików
  • 2 : System powinien zostać ponownie uruchomiony
  • 4 : Błędy systemu plików nie zostały poprawione
  • 8 : Błąd operacyjny
  • 16 : Błąd w użyciu lub składni
  • 32 : Sprawdzanie anulowane na żądanie użytkownika
  • 128 : Błąd biblioteki udostępnionej

Mimo że system plików jest zgłaszany jako czysty, możemy wymusić sprawdzenie systemu plików za pomocą opcji -f (force).

 sudo fsck /dev/sdb1 -f 

Wymuś sprawdzenie systemu plików za pomocą opcji force w poleceniu fsck

Tym razem sprawdzenie trwa dłużej, ale przeprowadza dokładniejszy test systemu plików. Nasz system plików był rzeczywiście czysty i nie są zgłaszane żadne błędy. Jeśli w trakcie testów zostaną znalezione problemy, zostaniesz poproszony o pozwolenie fsck na naprawienie problemu lub zignorowanie błędu.

Po zakończeniu testowania musisz ponownie zamontować system plików. Najprostszym sposobem na to jest użycie mount z opcją -a (all). Spowoduje to sprawdzenie w „/etc/fstab” listy systemów plików i upewnienie się, że wszystkie są zamontowane tak, jak po zwykłym rozruchu.

 sudo góra -a 

Ponownie zamontuj system plików za pomocą polecenia mount

Którego systemu plików Linux należy użyć?
ZWIĄZANE Z jakiego systemu plików Linux należy użyć?

Zauważ, że nie musimy mówić fsck , jaki typ systemu plików znajduje się na partycji; narzędzie określa to, badając system plików. Oznacza to, że możemy wymusić sprawdzenie systemu plików na /dev/sdc1 , systemie plików ext3 na naszym komputerze testowym, używając dokładnie tego samego polecenia, którego użyliśmy na /dev/sdb1 , który jest partycją ext4 .

 sudo fsck /dev/sdc1 -f 

Użyj polecenia fsck, aby wymusić sprawdzenie systemu plików

Reklama

Możesz nie chcieć od razu zagłębić się w naprawę systemu plików. Być może wolisz spojrzeć przed skokiem. Możesz poprosić fsck , aby nie oferował niczego naprawiania i po prostu zgłaszał problemy w oknie terminala. Opcja -N (praca na sucho) właśnie to robi:

 sudo fsck -N /dev/sdb1 

Przed naprawą systemu plików wykonaj próbny bieg

Przeciwieństwem tego jest powiedzenie fsck , aby nie zawracał sobie głowy monitami, jeśli znajdzie jakieś błędy, i po prostu je naprawi. Aby to zrobić, użyj opcji -y (brak monitów).

 sudo fsck -y /dev/sdb1

Korzystanie z fsck na partycji głównej

Nie możesz używać fsck na zamontowanej partycji, ale aby uruchomić komputer, partycja główna musi być zamontowana. Jak więc uruchomić fsck na partycji głównej? Odpowiedzią jest przerwanie procesu rozruchu i uruchomienie fsck w trybie odzyskiwania.

Podczas uruchamiania komputera przytrzymaj klawisz „Shift”. Jeśli dobrze to zmierzyłeś, nie uruchomisz Linuksa. Proces rozruchu zatrzyma się na czarno-białym menu. Maszyna testowa użyta w tym artykule działała pod kontrolą Ubuntu, ale inne dystrybucje mają ten sam typ menu, chociaż może ono różnić się wyglądem. Tam, gdzie na zrzutach ekranu jest napisane „Ubuntu”, będzie to nazwa Twojej dystrybucji.

Menu odzyskiwania z wybraną pozycją menu zaawansowanych opcji

Przesuń pasek podświetlenia za pomocą klawiszy „strzałka w górę” i „strzałka w dół”, aby wybrać element menu „Opcje zaawansowane dla Ubuntu”. Naciśnij „Enter”, aby przejść do następnego ekranu.

Menu odzyskiwania z wybraną pozycją menu „tryb odzyskiwania”

Reklama

Wybierz opcję, która kończy się na „(tryb odzyskiwania)”. W naszym przykładzie jest to „Ubuntu, z systemem Linux 5.11.0-20-generic (tryb odzyskiwania)”. Naciśnij klawisz „Enter”.

Zobaczysz menu odzyskiwania. Wybierz „fsck sprawdź wszystkie systemy plików” i naciśnij klawisz „Tab”, aby przesunąć podświetlenie na przycisk „OK”. Naciśnij enter."

Menu odzyskiwania z wybranym fsck

Zobaczysz powiadomienie, że partycja główna zostanie zamontowana wraz z innymi partycjami zdefiniowanymi w pliku „/etc/fstab”.

Wybierz yes, aby zainicjować fsck w trybie interaktywnym

Naciśnij klawisz „Tab”, aby przesunąć podświetlenie na przycisk „Tak” i naciśnij „Enter”.

Zobaczysz, że fsck działa w trybie interaktywnym. Jeśli pojawią się problemy, zostaniesz poproszony o pozwolenie fsck na ich naprawienie lub zignorowanie. Po sprawdzeniu systemów plików ponownie zobaczysz menu odzyskiwania.

Wybierz opcję "wznów", naciśnij klawisz "Tab", aby przesunąć podświetlenie na przycisk "OK" i naciśnij "Enter". Proces uruchamiania zostanie wznowiony i uruchomisz Linuksa.

Reklama

Rozruch w trybie odzyskiwania może mieć wpływ na niektóre sterowniki, więc dobrą praktyką jest ponowne uruchomienie komputera, gdy tylko uruchomisz Linuksa. Dzięki temu komputer działa w normalny sposób.

Kiedy coś idzie nie tak

Siatki bezpieczeństwa są tam nie bez powodu. Poznaj polecenie fsck . Jeśli pewnego dnia pojawi się potrzeba użycia go w złości, będziesz zadowolony, że się wcześniej zapoznałeś.

POWIĄZANE: Najlepsze laptopy z systemem Linux dla programistów i entuzjastów