Scroll to navigation

DEBUGFS(8) System Manager's Manual DEBUGFS(8)

NAZWA

debugfs - debugger systemu plików ext2/ext3/ext4

SKŁADNIA

debugfs [ -DVwcin ] [ -b rozmiar-bloku ] [ -s superblok ] [ -f plik-komend ] [ -R komenda] [ -d urządzenie-źródła-danych ] [ -z plik-zapasowy ] [ urządzenie ]

OPIS

Program debugfs jest debuggerem systemów plików. Można go używać do sprawdzenia i zmiany stanu systemu plików typu ext2, ext3 lub ext4.

Urządzenie jest urządzeniem blokowym (np. /dev/sdXX) lub plikiem zawierającym system plików.

OPCJE

Określa, że system plików powinien być otwarty w trybie odczyt-zapis (read-write). Bez tej opcji system plików otwierany jest w trybie tylko-do-odczytu (read-only).
Wyłącza weryfikację sumy kontrolnej metadanych. Powinno się jej używać tylko wówczas, gdy jest się przekonanym o poprawności metadanych, pomimo odmiennych komunikatów e2fsprogs.
Powoduje, że system plików powinien być otwarty w trybie katastrofalnym (catastrophic mode), gdzie i-węzeł oraz mapy bitowe grup nie są początkowo odczytywane. Ta opcja może być przydatna dla znacznie uszkodzonych systemów plików, lecz powoduje ona ich otwarcie w trybie tylko do odczytu.
Powoduje, że urządzenie reprezentuje obraz ext2 utworzony przez program e2image. Ponieważ obraz ext2 zawiera jedynie superblok, deskryptor grupy bloków, blok i mapy bitowe alokacji i-węzłów oraz tablicę i-węzłów, wiele komend debugfs nie będzie działało poprawnie. Ostrzeżenie: nie ma żadnych bezpiecznych sprawdzeń, dlatego debugfs może zawieść podczas prób wykonania takich komend jak ls, dump, itd. debugfs jest debuggerem. Posiada szorstkie krawędzie!
W użyciu z opcją -i, określa urządzenie-źródła-danych, które powinno być użyte do odczytu bloków nieodnalezionych w pliku obrazu ext2. Obejmuje to dane, katalogi i bloki niebezpośrednie.
Powoduje użycie podanego rozmiaru bloku dla systemu plików (w bajtach) zamiast, tak jak normalnie, wykrywać odpowiedni rozmiar. Opcja ta powinna być rzadko używana, głównie w przypadku systemów plików o ekstremalnie wysokim stopniu uszkodzenia.
Powoduje odczytanie superbloku z podanego numeru bloku zamiast z domyślnego (położonego w odstępie 1024 bajtów od początku systemu plików). Jeżeli poda się opcję -s, konieczne jest również podanie rozmiaru bloku systemu plików, przy użyciu opcji -b. Opcja ta powinna być rzadko używana, głównie w przypadku systemów plików o ekstremalnie wysokim stopniu uszkodzenia.
Powoduje, że debugfs odczytuje komendy z pliku komend i wykonuje je. Po zakończeniu wykonywania tych komend debugfs kończy pracę.
Powoduje, że debugfs otwiera urządzenie używając bezpośredniego wejścia/wyjścia, pomijając bufory. Proszę zauważyć, że niektóre linuksowe urządzenia, przede wszystkim szkielet mapujący urządzenia (device mapper) nie obsługują bezpośredniego wejścia/wyjścia (w chwili pisania tego tekstu).
Powoduje wykonanie pojedynczego żądania i zakończenie pracy.
Wyświetla wersję programu debugfs i kończy pracę.
Przed nadpisaniem bloku w systemie plików, zapisuje jego starą zawartość do pliku zapasowego. Później można użyć programu eundo(8) do przywrócenia starej zawartości systemu plików z pliku zapasowego, jeśli coś pójdzie nie tak. Jeśli jako plik-zapasowy poda się pusty łańcuch, przyjmie on wartość domyślną: debugfs-urządzenie.e2undo w katalogu określonym zmienną środowiskową E2FSPROGS_UNDO_DIR.

OSTRZEŻENIE: Plik zapasowy nie pomoże w przypadku utraty zasilania lub zawieszenia systemu.

OKREŚLANIE PLIKÓW

Wiele komend debugfs pobiera określ-pliku jako argument określający i-węzeł (w przeciwieństwie do nazwy ścieżkowej) systemu plików, aktualnie otwartego przez debugfs. Argument określ-pliku może być podany w dwu postaciach. Pierwszą jest numer i-węzła ujęty w nawiasy trójkątne, np. <2>. Drugą postać stanowi nazwa ścieżkowa; jeśli jest ona poprzedzona ukośnikiem ('/'), to będzie interpretowana względem katalogu głównego (root) systemu plików aktualnie otwartego przez debugfs. Jeśli nie, to interpretowana będzie względem bieżącego katalogu roboczego, jaki jest w ustawiony w danym momencie w debugfs. Można go zmienić posługując się komendą debugfs o nazwie cd.

POLECENIA

debugfs jest debuggerem interaktywnym. Rozumie sporo komend.

Wypisuje bloki używane przez i-węzeł określ-pliku na standardowe wyjście.
Wypisuje lub ustawia numer fizycznego bloku, odnoszącego się do logicznego bloku o numerze blok-logiczny w i-węźle określ-pliku. Jeśli podano flagę -a program postara się przydzielić blok, jeśli będzie to konieczne.
Zrzuca blok systemu plików podany jako numer-bloku szesnastkowo i w formacie ASCII na konsolę. Jeśli podano opcję -f, to numer bloku jest liczony od początku podanego pliku-wyjściowego. Jeśli podano opcję -x, to blok jest interpretowany jako blok atrybutu rozszerzonego i jest wypisywany, aby pokazać strukturę danych atrybutów rozszerzonych.
Zrzuca zawartość i-węzła określ-pliku na standardowe wyjście.
Zmienia bieżący katalog roboczy na określ-pliku.
Zmień katalog główny (root) na katalog określ-pliku.
Zamyka aktualnie otwarty system plików. Jeżeli poda się opcję -a, to wypisywane są wszystkie zmiany i deskryptory grup bloków w odniesieniu do wszystkich zapasowych superbloków, a nie tylko w stosunku do głównego.
Czyści zawartość i-węzła określ-pliku.
Kopiuje zawartość struktury i-węzła-źródłowego i używa jej do nadpisania struktury i-węzła-docelowego.
Przeszukuje katalog określ-pliku szukając nazwy-pliku.
Oznacza system plików jako "brudny", dzięki czemu superblok zostanie zapisany przy wyjściu. Dodatkowo czyści flagę prawidłowości superbloku lub, jeśli podano opcję -clean, ustawia ją.
Zrzuca zawartość i-węzła określ-pliku do pliku wyjściowego plik-wyjściowy. Jeśli podano opcję -p, to ustawia informację o właścicielu, grupie i prawach plik-wyjściowy, tak jak dla określ-pliku.
Wyświetla wartości pól zabezpieczenia przed wielokrotnym montowaniem (ang. multiple-mount protection - MMP). Jeśli podano blok-mmp, to weryfikuje i zrzuca wartości MMP z podanego numeru bloku, w przeciwnym razie używa pola s_mmp_block w superbloku to odnalezienia i wykorzystania istniejącego bloku MMP.
Oblicza skrót katalogu nazwa-pliku. Algorytmem skrótu podanym w -h może być: legacy, half_md4 lub tea. Ziarno skrótu podane w -s musi być w formacie UUID.
Zrzuca drzewo ekstentów i-węzła określ-pliku. Flaga -n spowoduje, że dump_extents wyświetli jedynie wewnętrzne węzły w drzewie ekstentów. Flaga -l spowoduje, że opcja wyświetli jedynie liście drzewa ekstentów.
Proszę zauważyć, że długość i zakres bloków do ostatniego ekstenta w węźle wewnętrznym są przybliżone przez funkcje biblioteki ekstentów i nie są przechowywane w strukturze danych systemu plików. Wyświetlane wartości nie muszą być więc dokładne i nie oznaczają wystąpienia problemu lub uszkodzenia w systemie plików.
Zrzuca nieużywane bloki zawierające bajty niezerowe.
Pobiera wartości atrybutu rozszerzonego nazwa-atrybutu w pliku określ-pliku i wypisuje je albo na standardowe wyjście albo do pliku-wyjściowego.
Wypisuje listę atrybutów rozszerzonych związanych z plikiem określ-pliku na standardowe wyjście.
Ustawia wartości atrybutu rozszerzonego nazwa-atrybutu w pliku określ-pliku na wartość łańcucha wartość-atrybutu lub odczytuje je z pliku-wejściowego.
Usuwa atrybut rozszerzony nazwa-atrybutu z pliku określ-pliku.
Rozwija katalog określ-pliku.
Przydziela i mapuje niezainicjowane bloki do określ-pliku, pomiędzy blokiem logicznym blok-początkowy a blokiem-końcowym (włącznie). Jeśli nie podano bloku-końcowego, funkcja dokonuje mapowania do momentu gdy wyczerpią się wolne bloki dysku lub gdy osiągnie maksymalny rozmiar pliku. Istniejące przypisania nie ulegają zmianie.
Ustawia (lub czyści - z minusem) różne cechy systemu plików w superbloku, a następnie wyświetla aktualny stan cech systemu plików.
Wypisuje liczbę ciągłych ekstentów w określ-pliku. Jeśli określ-pliku jest katalogiem, a nie podano opcji -d, to filefrag wypisze liczbę ciągłych ekstentów każdego pliku w katalogu. Opcja -v spowoduje, że filefrag wypisze tabelaryczną listę ciągłych ekstentów pliku. Opcja -r oznacza rekurencyjne wypisanie katalogu.
Znajduje pierwsze liczba wolnych bloków, poczynając od cel i alokuje je. Dostępne również jako ffb.
Znajduje wolny i-węzeł i alokuje go. Jeśli go podano, to argument katalog określa numer i-węzła katalogu, w którym ma zostać umieszczony i-węzeł. Drugi opcjonalny argument tryb określa prawa nowego i-węzła (jeżeli w trybie mode ustawiony jest bit katalogu, to procedura alokacji będzie działać odmiennie). Dostępne również jako ffi.
Zaznacza blok o numerze blok jako niezaalokowany. Jeżeli podany zostanie opcjonalny argument liczba, to liczba bloków zaczynając od bloku o numerze blok zostanie zaznaczona jako niezaalokowana.
Wypisuje fragmentację wolnej przestrzeni w aktualnie otwartym systemie plików. Jeśli poda się opcję -c, to polecenie freefrag wypisze liczbę wolnych części o rozmiarze część_kb. Rozmiar części musi być potęgą dwójki i musi być większy od rozmiaru bloku systemu plików.
Zwalnia i-węzeł podany przez określ-pliku. Jeśli poda się numer, to czyści również numer-1 i-węzłów po podanym i-węźle.
Wyświetla informacje o przydziałach dla danego typu (użytkownik, grupa lub projekt) i identyfikatora przydziału
Pokazuje listę poleceń rozumianych przez debugfs.
Zrzuca indeksowany za pomocą skrótów katalog określ-pliku, pokazując jego strukturę drzewa.
Pokazuje zestawienie i-węzłów używających jednego lub więcej bloków określonych w wierszu poleceń.
Wypisuje zawartość struktury i-węzła w formacie szesnastkowym i ASCII. Opcja -b nakazuje zrzucenie wyłącznie zawartości listy i_blocks. Opcja -e powoduje zrzucenie wyłącznie zawartości dodatkowej przestrzeni i-węzła, używanej do przechowywania atrybutów rozszerzonych na miejscu. Opcja -x powoduje zrzucenie zinterpretowanej dodatkowej przestrzeni i-węzła i atrybutów rozszerzonych. Jest to przydatne przy szukaniu błędów w uszkodzonych i-węzłach zawierających atrybuty rozszerzone.
Wypisuje położenie struktury danych i-węzła (w tabeli i-węzłów) określ-pliku.
Tworzy system plików ext2 na urządzeniu urządzenie z rozmiarem urządzenia rozmiar-bloku. Proszę zauważyć, że nie inicjuje to w pełni wszystkich struktur danych; aby to zrobić, proszę wykorzystać program mke2fs(8). Ta komenda jest tylko wywołaniem funkcji z biblioteki niskopoziomowej, która ustawia superblok i deskryptory bloków.
Zamyka otwarty dziennik.
Otwiera dziennik do odczytu i zapisu. Sprawdzanie sum kontrolnych dziennika można włączyć podając -c a ich format (2 lub 3) można wybrać opcją -v. Dziennik rozszerzony można załadować z dziennika-rozszerzonego.
Odtwarza ponownie wszystkie transakcje w otwartym dzienniku.
Zapisuje transakcje w otwartym dzienniku. Listę bloków do zapisania należy podać jako bloki, używając przecinka jako separatora; same bloki powinny być możliwe do odczytu z pliku. Listę bloków do odrzucenia należy podać jako do-odrzucenia, używając przecinka jako separatora. Domyślnie na końcu zapisywany jest rekord potwierdzenia, -c przełączy na transakcję niezatwierdzoną.
Zwalnia (dealokuje) i-węzeł określ-pliku i jego bloki. Proszę zauważyć, że nie usuwa to żadnych wpisów katalogu (jeśli istnieją) dotyczących tego i-węzła. Aby usunąć (ang. unlink) plik, proszę zapoznać się z poleceniem rm(1).
Zmienia bieżący katalog roboczy debugfs na katalog na pierwotnym (native) systemie plików.
Wyświetla informacje o przydziałach dla danego typu przydziału (użytkownik, grupa lub projekt).
Tworzy dowiązanie zwykłe (twarde) o nazwie plik-docelowy, do pliku określ-pliku. Proszę zauważyć, że nie dostosowuje to odpowiednio licznika odwołań w i-węźle.
Zrzuca zawartość dziennika ext3. Domyślnie zrzuca, i-węzeł dziennika brany z superbloku. Można przesłonić ten wybór za pomocą opcji -i, która zrzuca dziennik z wewnętrznego i-węzła podanego jako określ-pliku. Zwykły plik zawierający dane dziennika można podać za pomocą opcji -f. Opcja -s wykorzystuje informacje zapasowe z superbloku, do zlokalizowania dziennika.
Opcja -S powoduje wypisanie przez logdump zawartości superbloku dziennika.
Opcja -a powoduje, że logdump wypisuje zawartość wszystkich bloków deskryptora. Z opcją -b logdump wypisuje wszystkie rekordy dziennika, które odnoszą się do podanego bloku. Opcja -c wypisuje zawartość wszystkich bloków z danymi, wybranymi przez opcje -a i -b.
Opcja -O powoduje, że logdump wyświetli stare (dla których utworzono punkty kontrolne) wpisy dziennika. Można w ten sposób spróbować prześledzić problemy dziennika nawet po jego ponownym odtworzeniu.
Opcja -n spowoduje, że logdump będzie kontynuować poza blok dziennika, któremu brakuje liczby magicznej. Zatrzyma się tylko po wypisaniu całego dziennika lub po osiągnięciu numeru-transakcji.
Wypisuje listę plików w katalogu określ-pliku. Flaga -c powoduje wyświetlenie sum kontrolnych bloków katalogu (jeśli są obecne). Flaga -d wypisuje usunięte wpisy w katalogu. Flaga -l wypisuje pliki za pomocą bardziej szczegółowego formatu. Opcja -p wypisze pliki w formacie, który jest łatwiejszy do przetworzenia przez skrypty oraz łatwiej jest rozpoznać ewentualne spacje i inne znaki niedrukowalne na końcu nazw plików. Flaga -r wymusi wypisywanie nazwy pliku, nawet jeśli jest zaszyfrowana.
Wypisuje usunięte i-węzły, opcjonalnie ograniczone do usuniętych limit sekund temu. Dostępne również jako lsdel.
Polecenie było przydatne do usuwania przypadkowo skasowanych plików z systemu plików ext2. Niestety nie jest przydatne do tego celu w systemach plików ext3 ani ext4, ponieważ bloki danych i-węzłów nie są już dostępne po zwolnieniu i-węzła.
Zmienia zawartość struktury i-węzła o nazwie określ-pliku. Dostępne również jako mi.
Tworzy katalog.
Tworzy plik specjalny urządzenia (potoku nazwanego, urządzenia znakowego lub blokowego). Jeżeli tworzone ma być urządzenie znakowe lub blokowe, to musi zostać podany główny (major) i poboczny (minor) numer urządzenia.
Za pomocą żądanej listy numerów i-węzłów wypisuje listę nazw ścieżek do tych i-węzłów. Flaga -c włącza sprawdzania informacji o typie pliku we wpisie katalogu, upewniając się, że pasuje on do typu i-węzła.
Otwiera system plików do edycji. Flaga -f wymusza otwarcie systemu plików nawet wtedy gdy posiada on nieznane lub niekompatybilne cechy, które normalnie zapobiegły by otwarciu. Opcja -e powoduje, że system plików jest otwarty w trybie wyłączności. Opcje -b -c, -d, -i, -s, -w i -D zachowują się tak samo jak te z debugfs.
Usuwa bloki w i-węźle, poczynając od bloku-początkowego do bloku-końcowego. Jeśli nie poda się bloku-końcowego, to ta komenda zadziała jak polecenie obcięcia (ang. truncate), tzn. dealokowane będą wszystkie bloki od bloku-początkowego, aż do końca pliku.
Tworzy dowiązanie symboliczne.
Pokazuje bieżący katalog roboczy.
Kończy pracę debugfs.
Zrzuca rekurencyjnie katalog lub wiele katalogów wraz z zawartością (włączając plik, dowiązania symboliczne i inne katalogi) w miejsce_docelowe, które powinno być istniejącym katalogiem na pierwotnym systemie plików.
Usuwa (ang. unlink) ścieżkę. Jeśli spowoduje to, że i-węzeł wskazywany przez ścieżka nie będzie posiadał innych odwołań, to dealokuje plik. Komenda ta działa jak funkcja systemowa unlink().
Usuwa katalog określ-pliku.
Zaznacza blok o numerze blok jako zaalokowany. Jeżeli podany zostanie opcjonalny argument liczba, to wtedy liczba bloków zaczynając od bloku o numerze blok zostanie zaznaczona jako zaalokowana.
Modyfikuje deskryptor grupy bloków określony przez num-dgb tak, że pole deskryptora pole będzie miało wartość wartość. Dostępne również jako set_bg.
Ustawia aktualny czas (w sekundach od epoki uniksa) przy ustawianiu pól systemu plików.
Oznacza i-węzeł określ-pliku, jako użyty w mapie bitów i-węzła. Jeśli poda się liczbę, to oznaczanych jest również liczba-1 i-węzłów po podanym i-węźle.
Modyfikuje i-węzeł określony przez określ-pliku tak, że pole pole ma wartość wartość. Lista prawidłowych pól i-węzła, które mogą być ustawione tą komendą, może zostać wyświetlona za pomocą: set_inode_field -l. Dostępne również jako sif.
Modyfikuje dane ochrony przed wielokrotnym montowaniem (ang. multiple-mount protection - MMP) tak, że pole mmp pole, ma wartość wartość. Lista poprawnych pól MMP, które mogą być ustawione tą komendą, może zostać wyświetlona za pomocą: set_mmp_value -l. Dostępne również jako smmp.
Ustawia pole superbloku pole na wartość wartość. Wszystkie prawidłowe pola superbloku, które mogą być ustawione tą komendą, mogą zostać wyświetlone za pomocą: set_super_value -l. Dostępne również jako ssv.
Wyświetla parametry debugfs takie jak informacje o obecnie otwartych systemach plików.
Wyświetla zawartość superbloku i deskryptorów grup bloków. Jeżeli podana jest flaga -h, wypisywana jest tylko zawartość superbloku. Dostępne również jako stats.
Wyświetla zawartość struktury i-węzła o nazwie określ-pliku.
Wyświetla funkcje systemu plików obsługiwane przez tę wersję debugfs.
Sprawdza, czy blok o numerze blok jest zaznaczony jako zaalokowany w mapie bitowej bloku. Jeżeli podany jest opcjonalny argument liczba, wtedy zostanie sprawdzona liczba bloków zaczynając od bloku o numerze blok.
Sprawdza, czy i-węzeł określ-pliku jest zaznaczony jako zaalokowany w mapie bitowej bloku.
Odwołuje usunięcie podanego numeru i-węzła (który musi być ujęty w nawiasy trójkątne), dzięki czemu jego bloki są oznaczane jako w użyciu i opcjonalnie dowiązuje odzyskany i-węzeł do podanej ścieżki. Po użyciu komendy undel powinno się zawsze uruchomić e2fsck, w celu odzyskania usuniętych plików.
Proszę zauważyć, że jeśli odzyskuje się dużą liczbę usuniętych plików, to dowiązywanie i-węzła do katalogu może wymagać rozwinięcia katalogu, co może spowodować alokację bloku, który był wcześniej użyty przez jeden z plików do odzyskania. Jest więc bezpieczniej odzyskać wszystkie i-węzły bez podawania ścieżki docelowej, a następnie, w kolejnym przebiegu, użyć komendy link, która dowiązuje i-węzeł do ścieżki docelowej, lub użyć e2fsck do sprawdzenia systemu plików i dowiązania wszystkich odzyskanych i-węzłów do katalogu lost+found.
Usuwa dowiązanie do i-węzła, określone przez ścieżkę. Proszę zauważyć, że nie dostosowuje to odpowiednio licznika odwołań w i-węźle.
Kopiuje zawartość pliku-źródłowego do nowo tworzonego pliku w systemie plików, o nazwie plik-wyjściowy.
Nadpisuje blok określony numerem-bloku bajtami zerowymi (NUL) lub, jeśli podano opcję -p bajtami określonymi we wzorcu. Jeśli podano -f, to numer-bloku jest liczony w odniesieniu do początku pliku podanego jako określ-pliku. Opcje -o i -l ograniczają przedział bajtów do wyczyszczenia do podanego przesunięcia i długości w odniesieniu do początku bloku.
Zamienia porcje bitów fizycznego numeru-bloku. Jeśli podano -f, numer bloku jest blokiem logicznym liczonym od początku określ-pliku.

ZMIENNE ŚRODOWISKOWE

Program debugfs zawsze przesyła w potoku wyjście niektórych komend przez program stronicujący. Są to następujące komendy: show_super_stats (stats), list_directory (ls), show_inode_info (stat), list_deleted_inodes (lsdel) i htree_dump. Można podać określony program stronicujący za pomocą zmiennej środowiskowej DEBUGFS_PAGER lub, jeśli nie jest ustawiona, PAGER.
Proszę zauważyć, że ponieważ program stronicujący jest używany zawsze, to less(1) nie jest szczególnie dobry, ponieważ czyści ekran przed wyświetleniem wyjścia komendy i czyści ekran, po wyjściu programu stronicującego. Wielu użytkowników preferuje używanie less(1) do większości zastosowań i jest to powód, dla którego dostępna jest zmienna środowiskowa DEBUGFS_PAGER, która przesłania ogólniejszą zmienną środowiskową PAGER.

AUTOR

debugfs zostało napisane przez Theodore Ts'o <tytso@mit.edu>.

ZOBACZ TAKŻE

dumpe2fs(8), tune2fs(8), e2fsck(8), mke2fs(8), ext4(5)

TŁUMACZENIE

Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Wojtek Kotwica <wkotwica@post.pl> i Michał Kułach <michal.kulach@gmail.com>

Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać zapoznając się z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.

Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej manpages-pl-list@lists.sourceforge.net.

luty 2023 E2fsprogs wersja 1.47.0