jak używać polecenia fsck w Linuksie?

polecenie fsck (sprawdzanie spójności systemu plików) jest narzędziem do sprawdzania i naprawy linuksowego systemu plików. Nowoczesne systemy plików z dziennikiem są zaprojektowane tak, że narzędzia takie jak fsck nie są łatwo potrzebne. Jednak w kilku przypadkach fsck może być jedyną opcją naprawy “złego” systemu plików.

fsck można uruchomić na partycji, która została uszkodzona lub niezgodna z resztą plików.

powody, dla których może być wymagane fsck

  • nieczyste Zamknięcie-jest to główna przyczyna korupcji. Z powodu “nieczystego wyłączenia” system może nie uruchomić się poprawnie
  • awaria dysku lub uszkodzenie

spis treści

środowiska, w których nie należy używać fsck

ponieważ polecenie działa bezpośrednio z sektorami systemu plików, ważne jest, aby podjąć niezbędne środki ostrożności w tym miejscu.

strona podręcznika e2fsck mówi:

zauważ, że generalnie nie jest bezpieczne uruchamianie e2fsck na zamontowanych systemach plików. Jedynym wyjątkiem jest podanie opcji – N, A opcje-c,- l lub-L nie są podane. Jednak nawet jeśli jest to bezpieczne, wyniki wydrukowane przez e2fsck nie są poprawne, jeśli system plików jest zamontowany. Jeśli e2fsck zapyta, czy należy sprawdzić zamontowany system plików, jedyną poprawną odpowiedzią jest”nie”.

https://www.man7.org/linux/man-pages/man8/e2fsck.8.html

tak więc, musisz zrobić fsck na odmontowanej partycji. Jeśli możesz odmontować partycję za pomocą umount, dobrze i dobrze. W przeciwnym razie musisz zmienić otoczenie:

1. Tryb odzyskiwania

(Dla Ubuntu – przytrzymaj SHIFT podczas uruchamiania, aby wejść do GRUB, wybierz “Zaawansowane Opcje Dla Ubuntu”, a następnie wybierz opcję oznaczoną “tryb odzyskiwania”, a następnie wybierz fsck). W trybie odzyskiwania partycje są montowane.

tryb odzyskiwania fsck
tryb odzyskiwania fsck

2. Podczas używania parametru jądra init=/bin/bash

(przytrzymaj SHIFT podczas uruchamiania, aby wejść do GRUB, naciśnij e, aby edytować parametry jądra). Dostarcza powłokę bash, z której można uruchomić fsck, ale tutaj również partycje są montowane.

parametr Jądra Init
parametr Jądra INIT

Jak korzystać z polecenia fsck?

z podstaw jasne, przejdźmy do kroków, jak należy używać polecenia fsck w Linuksie.

1. Podstawowe użycie

zanim zaczniesz używać tego polecenia, upewnij się, że pracujesz nad odmontowaną partycją. Aby odmontować partycję, a następnie uruchomić na niej fsck wpisz :

$ sudo umount /dev/<partition_name>$ fsck /dev/<partition_name>

są szanse, że nie można odmontować partycji. W takim przypadku możesz wybrać jedną z następujących metod.

2. Uruchamianie fsck przy użyciu live USB

jest to prawdopodobnie najlepszy sposób na uruchomienie fsck. Zapewnia bogaty zestaw znanych narzędzi, takich jak fdisk. Użyj tego samouczka, aby utworzyć live Ubuntu USB. Ta część zakłada, że używasz Linuksa z Live USB.

aby wyświetlić listę wszystkich partycji w systemie, możesz użyć polecenia fdisk.

$ sudo fdisk -l
partycje NVMe
partycje NVMe SSD
partycje SATA Ssd
partycje SATA SSD

Uwaga: partycje pokazane powyżej (dla 2 dysków SSD, jednego NVMe i innego SATA) mogą być inne niż te, które masz w systemie. fdisk wyświetla również więcej informacji o partycjach. Jednak do celów tego artykułu wystarczy nazwa partycji.

Zidentyfikuj partycję, która powoduje problemy, a następnie po prostu uruchom:

$ fsck /dev/<partition_name>

to powinno rozwiązać problem.

3. Użycie initramfs

innym sposobem użycia polecenia fsck jest przebywanie w trybie intramfs. Aby dostać się do initramfs

  1. przytrzymaj klawisz SHIFT podczas uruchamiania, aby przejść do menu GRUB.
  2. naciśnij e, aby edytować wpis rozruchowy
  3. Dodaj parametr jądra jako ‘break‘, jak pokazano na zrzucie ekranu poniżej
  4. naciśnij Ctrl - X, aby zapisać i zakończyć
wprowadź Initramfs
wprowadź Initramfs

initramfs zapewnia “mniej ponętny” sposób rozwiązywania problemów.

partycje nie są montowane w initramfs, więc wykonanie fsck byłoby bezpieczne. Potrzebujesz również nazwy partycji. Initramfs zapewnia jednak minimum narzędzi. Więc fdisk nie będzie dostępny. Możesz wyświetlić listę partycji za pomocą polecenia cat, jak pokazano poniżej:

$ cat /proc/partitions

Zidentyfikuj partycję, a następnie uruchom:

$ fsck /dev/<partition_name>
Initramfs fsck
initramfs Fsck

Uwaga: funkcja fsck przy użyciu Live USB może nie być zawsze dostępna. W takim przypadku należy użyć metody initramfs.

jak sprawdzić, czy fsck jest zaplanowany, czy nie

możesz chcieć wiedzieć, kiedy twoja partycja była sprawdzana Ostatnio lub kiedy będzie w przyszłości. W takim razie uciekaj.:

$ sudo tune2fs -l /dev/<partition_name> | egrep -i 'check|mount'
Sprawdź Fsck 1
Sprawdź Fsck
  • Maksymalna liczba montowań to liczba montowań, po których system plików będzie automatycznie sprawdzany przez fsck.
  • interwał sprawdzania to czas pomiędzy dwoma sprawdzeniami systemu plików.

te dwie wartości są wystarczające do określenia, kiedy polecenie fsck zostało ostatnio uruchomione.

różnica między fsck i e2fsck

możesz znaleźć różne odpowiedzi/artykuły z prośbą o uruchomienie e2fsck lub fsck.ext4 zamiast fsck. Co za różnica, jeśli uruchomisz którekolwiek z tych narzędzi zamiast fsck?

fsck jest tylko nakładką dla wszystkich specyficznych dla systemu plików poleceń fsck, takich jak dwa pokazane powyżej (opakowanie, jeśli można powiedzieć). Wywołanie fsck automatycznie wywołuje poprawny system plików fsck. Zobaczmy, które wszystkie fsck są w naszym systemie:

$ ls -l /sbin/fsck*
różne fsck
Lista wszystkich fsck

uruchomienie fsckna partycji ext2/3/4 uruchamia odpowiedni plik wykonywalny /sbin/fsck.ext* . Te pliki wykonywalne z kolei są twardymi dowiązaniami do pliku wykonywalnego e2fsck. Tak więc, nawet jeśli uruchomisz fsckna partycji ext4, ostatecznie uruchomi się e2fsck.

wniosek

w tym samouczku omówiliśmy fsck, które jest użytecznym narzędziem do odzyskiwania systemów plików. Aby dowiedzieć się więcej o poleceniu fsck, zajrzyj na stronę podręcznika.

Leave a Reply