Jak korzystać z polecenia fsck w systemie Linux?
Opublikowany: 2022-01-29 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.
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ą.
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.
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'
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
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
.
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
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
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
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
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
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
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.
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.
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."
Zobaczysz powiadomienie, że partycja główna zostanie zamontowana wraz z innymi partycjami zdefiniowanymi w pliku „/etc/fstab”.
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.
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ś.
Polecenia Linuksa | ||
Pliki | tar · pv · kot · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · dysk testowy · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · ogon · stat · ls · fstab · echo · mniej · chgrp · chown · rev · wygląd · stringi · typ · zmiana nazwy · zip · rozpakuj · montuj · umount · zainstaluj · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · konwertuj · rclone · shred · srm | |
Procesy | alias · ekran · top · ładne · renice · postęp · strace · systemd · tmux · chsh · historia · w · wsad · free · co · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · ściana · tak · kill · sen · sudo · su · czas · groupadd · usermod · grupy · lshw · zamknij · restart · halt · poweroff · passwd · lscpu · crontab · data · bg · fg | |
Sieć | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw |
POWIĄZANE: Najlepsze laptopy z systemem Linux dla programistów i entuzjastów