Jaka jest różnica między narzędziami do sprawdzania błędów dysku linuksowego fsck i e2fsck?
Jaka jest różnica między narzędziami do sprawdzania błędów dysku linuksowego fsck i e2fsck?
Odpowiedzi:
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.
gpt
Komenda ma opcji „odzyskać z kopii zapasowej tabeli”, przynajmniej na Mac.
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.
W moim systemie mam:
fsck
fsck.ext2
fsck.ext3
fsck.ext4
e2fsck
fsck.*
narzędzi dla innych systemów plików innych niż ext)Teraz żaden z nich są linki symboliczne, ale e2fsck
i fsck.ext2/3/4
narzę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, fsck
to po prostu interfejs, który wywołuje odpowiednie narzędzie dla danego systemu plików, który w tym przypadku jest e2fsck
dla systemu plików z rodziny ext.
Zakładam, że powodem posiadania różnych fsck.ext2/3/4
plikó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.