Jaka jest różnica między fsck i e2fsck?

30

Jaka jest różnica między narzędziami do sprawdzania błędów dysku linuksowego fsck i e2fsck?

Fred Hamilton
źródło

Odpowiedzi:

29

fsck to tylko oryginalna nazwa. Gdy pojawią się z nowymi systemami plików, będą potrzebować specjalnego narzędzia dla każdego z nich, efsck dla ext, e2fsck dla ext2, dosfsck, fsckvfat. Dlatego stworzyli fsck jako interfejs, który po prostu wywołuje dowolne odpowiednie narzędzie.

hiperslug
źródło
Hmm, więc najwyraźniej możesz użyć fsck „front-end” do niektórych typowych zadań, ale nie do wszystkiego? Na przykład opcja -c ( superuser.com/questions/20010/... ) jest wymieniona na stronie podręcznika e2fsck, ale w fsck.
Jonik,
Czy istnieje fsck GPT?
Jonathan
@Jathanathan fsck sprawdza systemy plików, podczas gdy GPT jest samą tablicą partycji. Prawdopodobnie jest to narzędzie, które może to sprawdzić, ale nie mogę wymyślić żadnego innego poza szczytem głowy innego niż Narzędzie dyskowe Maca (lub diskutil z wiersza poleceń). gptKomenda ma opcji „odzyskać z kopii zapasowej tabeli”, przynajmniej na Mac.
SilverWolf - Przywróć Monikę
15

fsck to opakowanie dla rodziny narzędzi fsck. * specyficznych dla systemu plików . Można ich używać zamiennie z jednym zastrzeżeniem (ze strony man fsck):

Opcje, których fsck nie rozumie, są przekazywane do kontrolera specyficznego dla systemu plików. Argumenty te nie mogą przyjmować argumentów, ponieważ fsck nie ma możliwości prawidłowego odgadnięcia, które argumenty przyjmują opcje, a które nie.

Opcje i argumenty następujące po - są traktowane jako opcje specyficzne dla systemu plików, które należy przekazać do kontrolera specyficznego dla systemu plików.

Należy pamiętać, że fsck nie jest przeznaczony do przekazywania dowolnie skomplikowanych opcji do kontrolerów specyficznych dla systemu plików. Jeśli robisz coś skomplikowanego, po prostu uruchom bezpośrednio kontroler specyficzny dla systemu plików. Jeśli przekażesz fsck jakąś strasznie skomplikowaną opcję i argumenty, a to nie robi tego, czego oczekujesz, nie zawracaj sobie głowy zgłaszaniem tego jako błędu. Prawie na pewno robisz coś, czego nie powinieneś robić z fsck.

Jednak fsck obsłuży większość normalnych operacji w systemie plików.

nagul
źródło
5

W moim systemie mam:

  • fsck
  • fsck.ext2
  • fsck.ext3
  • fsck.ext4
  • e2fsck
  • ... (więcej fsck.*narzędzi dla innych systemów plików innych niż ext)

Teraz żaden z nich są linki symboliczne, ale e2fscki fsck.ext2/3/4narzędzia wszyscy tak iwęzeł tak naprawdę są tego samego pliku. (Możliwe, że ten plik binarny będzie sprawdzał swoją nazwę po uruchomieniu i będzie zachowywać się inaczej w stosunku do nazwy, z którą jest wywoływany, ale wątpię, by tak było).

Teraz ograniczamy się do zaledwie dwóch narzędzi:

  • fsck
  • e2fsck

I, jak powiedzieli inni, fsckto po prostu interfejs, który wywołuje odpowiednie narzędzie dla danego systemu plików, który w tym przypadku jest e2fsckdla systemu plików z rodziny ext.

Zakładam, że powodem posiadania różnych fsck.ext2/3/4plików jest to, że 1. łatwo jest napisać skrypty, które mogą ogólnie obsługiwać wszystkie typy systemów plików (mogą wydedukować nazwę narzędzia fsck w sposób trywialny z typu systemu plików) oraz 2. w celu uzyskania elastyczności, dzięki czemu jest to trywialne podzielić e2fsck na dwa lub więcej niezależnych narzędzi, jeśli będzie to konieczne w przyszłości.

Paul Ruane
źródło
Dziękuję za dłuższe wyjaśnienie, ponieważ po przeczytaniu odpowiedzi @hyperslug już wyczułem atak serca :-) Mam system plików ext3 i uruchomiłem e2fsck.
greenoldman
Teraz żadne z nich nie jest dowiązaniami symbolicznymi, ale narzędzia e2fsck i fsck.ext2 / 3/4 współużytkują ten sam i-węzeł, więc w rzeczywistości są tym samym plikiem. (Możliwe, że ten plik binarny będzie sprawdzał swoją nazwę po uruchomieniu i będzie zachowywał się inaczej w stosunku do nazwy, z którą jest wywoływany, ale wątpię, by tak było.) - Dlaczego nie - jest to szczególnie * nix-ish sposób robienie rzeczy i może tak być!
SlySven
Te alternatywne nazwy są w rzeczywistości przykładami twardego linka z mniejszą
ilością plam