Problem przy przeglądaniu superbloku w systemie plików ext3

1

Próbowałem wyświetlić superblok poleceniem „dd” w systemie plików ext3.

dd if=/dev/sda3 bs=4096 skip=1 count=1 of=superblock

Ale wynik w pliku superbloku jest niepoprawny (porównuję wartość liczby i-węzłów, którą otrzymałem z dumpe2fs). Plik urządzenia / dev / sda3 jest uruchamiany w bloku rozruchowym, a następnie w superbloku grupy 0? Kolejne pytanie to, czy blok rozruchowy i rozmiar superbloku są BLOCKSIZE (tutaj jest 4096)? Format dysku ext2 / ext3 (myślę, że są takie same) pokazano poniżej:

alternatywny tekst

użytkownik29218
źródło

Odpowiedzi:

2

Blok rozruchowy systemu plików ext2 / ext3 ma 1024 bajty, a nie 4096. Użyj

  $ sudo tune2fs -l /dev/sda3

aby zobaczyć parametry systemu plików jako rozmiar bloku, oraz

  $ sudo dumpe2fs -hx /dev/sda3

uzyskać superblok. Również

  $ sudo dd if=/dev/sda3 bs=1k skip=1 count=4

dostanie superblok.

Diego Torres Milano
źródło
0

Dzięki za odpowiedź dtmilano. Próbowałem już przed zadaniem pytania. Ale myślę, że wynik jest zły. Problem polega na tym, że zapomniałem przekonwertować małego endiana !!

Poniżej zapisuję moje kroki w celach informacyjnych:

$ sudo dd if = / dev / sda3 bs = 1k pomiń = 1 liczba = 4

Pierwsza linia w superbloku to: 0000000: 0000 3a04 fdc4 3904 a616 3600 45f6 fc00 ..: ... 9 ... 6.E ...

Zatem zgodnie z deklaracją struct ext3_super_block w ext3_fs.h: / 00 / __le32 s_inodes_count; / * Liczba i-węzłów / __le32 s_blocks_count; / Liczba bloków * /

Liczba i-węzłów wynosi 043a0000 = 70909952 (0000 3a04 należy przekonwertować na 043a0000) Liczba bloków to 0439c4fd = 70894845

Jest taki sam jak wynik z dumpe2fs: Liczba i-węzłów: 70909952 Liczba bloków: 70894845

użytkownik29218
źródło