NAZWA¶
debugfs - debugger systemu plików ext2/ext3/ext4
SKŁADNIA¶
debugfs [
-DVwci ] [
-b rozmiar-bloku ] [
-s
superblok ] [
-f plik-komend ] [
-R komenda
] [
-d urządzenie-źródła-danych ] [
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 plikiem specjalnym odpowiadającym
urządzeniu zawierającemu system plików (np. /dev/hdXX).
OPCJE¶
- -w
- 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).
- -c
- 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.
- -i
- 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!
- -d data_source_device
- 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.
- -b rozmiar-bloku
- Powoduje użycie podanego rozmiaru bloku dla systemu plików
zamiast, tak jak normalnie, wykrywać odpowiedni rozmiar.
- -s superblok
- 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.
- -f plik_komend
- Powoduje, że debugfs odczytuje komendy z pliku komend
i wykonuje je. Po zakończeniu wykonywania tych komend
debugfs kończy pracę.
- -D
- 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).
- -R komenda
- Powoduje wykonanie pojedynczej komendy (żądania -
request), i zakończenie pracy.
- -V
- Wyświetla wersję programu debugfs i kończy
pracę.
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.
KOMENDY¶
debugfs jest debuggerem interaktywnym. Rozumie sporo komend.
- blocks określ-pliku
- Wypisuje bloki używane przez i-węzeł
określ-pliku na standardowe wyjście.
- bmap określ-pliku blok-logiczny
- Wypisuje numer fizycznego bloku, odnoszącego się do
logicznego bloku o numerze blok-logiczny w i-węźle
określ-pliku.
- block_dump [-f plik-wyjściowy]
numer-bloku
- 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.
- cat określ-pliku
- Zrzuca zawartość i-węzła
określ-pliku na standardowe wyjście.
- cd określ-pliku
- Zmienia bieżący katalog roboczy na
określ-pliku.
- chroot określ-pliku
- Zmień katalog główny (root) na katalog
określ-pliku.
- close [-a]
- 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.
- clri określ-pliku
- Czyści zawartość i-węzła
określ-pliku.
- dirsearch określ-pliku nazwa-pliku
- Przeszukuje katalog określ-pliku szukając
nazwy-pliku.
- dirty
- Oznacza system plików jako "brudny", dzięki czemu
superblok zostanie zapisany przy wyjściu.
- dump [-p] określ-pliku
plik-wyjściowy
- 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.
- dump_mmp
- Wyświetla wartości pola zabezpieczającego przed
wielokrotnymi montowaniami (ang. multiple-mount protection - mmp).
- dx_hash [-h algorytm-hasz] [-s
ziarno-hasz] nazwa-pliku
- Oblicza hasz katalogu nazwa-pliku. Algorytmem haszowania podanym z
-h może być: legacy, half_md4 lub
tea. Ziarno haszowania podane z -s musi być w
formacie UUID.
- dump_extents [-n] [-l]
określ-pliku
- 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.
- expand_dir określ-pliku
- Rozwija katalog określ-pliku.
- feature [cecha] [-cecha] ...
- 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.
- filefrag [-dvr] określ-pliku
- 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.
- find_free_block [liczba [cel]]
- Znajduje pierwsze liczba wolnych bloków, poczynając
od cel i alokuje je. Dostępne również jako
ffb.
- find_free_inode [katalog [tryb]]
- 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.
- freeb blok [liczba]
- 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.
- freefrag [-c część_kb ]
- 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.
- freei określ-pliku [numer]
- 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.
- help
- Pokazuje listę poleceń rozumianych przez
debugfs.
- htree_dump określ-pliku
- Zrzuca indeksowany za pomocą haszy katalog
określ-pliku, pokazując jego strukturę
drzewa.
- icheck blok ...
- Pokazuje zestawienie i-węzłów
używających jednego lub więcej bloków
określonych w wierszu poleceń.
- inode_dump określ-pliku
- Wypisuje zawartość struktury i-węzła
szesnastkowo i w formacie ASCII.
- imap określ-pliku
- Wypisuje położenie struktury danych i-węzła (w
tabeli i-węzłów) określ-pliku.
- init_filesys urządzenie rozmiar-bloku
- 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.
- kill_file określ-pliku
- 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).
- lcd katalog
- Zmienia bieżący katalog roboczy debugfs na
katalog na pierwotnym (native) systemie plików.
- ln określ-pliku plik-docelowy
- 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.
- logdump [-acs] [-bblok]
[-iokreśl-pliku] [ -fdziennik]
[plik-wyjściowy]
- 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 -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.
- ls [-d] [-l] [-p]
określ-pliku
- Wypisuje listę plików w katalogu określ-pliku.
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.
- list_deleted_inodes [limit]
- 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.
- modify_inode określ-pliku
- Zmienia zawartość struktury i-węzła o nazwie
określ-pliku. Dostępne również jako
mi.
- mkdir określ-pliku
- Tworzy katalog.
- mknod określ-pliku [p|[[c|b]
główny poboczny]]
- 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.
- ncheck [-c] numer-i-węzła ...
- 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.
- open [-weficD] [-b rozmiar_bloku] [-s
superblok] urządzenie
- 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, -i, -s, -w i -D zachowują
się tak samo jak te z debugfs.
- punch określ-pliku blok-początkowy
[blok-końcowy]
- 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.
- symlink określ-pliku cel
- Tworzy dowiązanie symboliczne.
- pwd
- Pokazuje bieżący katalog roboczy.
- quit
- Kończy pracę debugfs.
- rdump katalog[...] miejsce-docelowe
- 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.
- rm ścieżka
- 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().
- rmdir określ-pliku
- Usuwa katalog określ-pliku.
- setb blok [liczba]
- 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.
- set_block_group num-dgb pole wartość
- 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.
- seti określ-pliku [liczba]
- 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.
- set_inode_field określ-pliku pole
wartość
- Modyfikuje i-węzeł określony przez
określ-pliku tak, że pole pole na
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.
- set_mmp_value pole wartość
- 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.
- set_super_value pole wartość
- 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.
- show_super_stats [-h]
- 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.
- stat określ-pliku
- Wyświetla zawartość struktury i-węzła o
nazwie określ-pliku.
- testb blok [liczba]
- 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.
- testi okresl-pliku
- Sprawdza, czy i-węzeł określ-pliku jest
zaznaczony jako zaalokowany w mapie bitowej bloku.
- undel <numer-i-węzła>
[ścieżka]
- 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.
- unlink ścieżka
- 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.
- write plik-źródłowy
plik-wyjściowy
- Kopiuje zawartość
pliku-źródłowego do nowo tworzonego pliku w
systemie plików, o nazwie plik-wyjściowy.
- zap_block [-f plik] [-o
przesunięcie] [ -l długość]
[ -p wzorzec] numer-bloku
- Nadpisuje blok podany jako
- numer-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.
- zap_block [-f określ-pliku] [-b
bit] numer-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 ŚRODOWISKA¶
- DEBUGFS_PAGER, PAGER
- 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 man
są: Wojtek Kotwica (PTM) <wkotwica@post.pl> i Michał
Kułach <michal.kulach@gmail.com>.
Polskie tłumaczenie jest częścią projektu
manpages-pl; uwagi, pomoc, zgłaszanie błędów na
stronie
http://sourceforge.net/projects/manpages-pl/. Jest zgodne z
wersją
1.42.12 oryginału.