Magiczna liczba to ciąg bajtów, które są stosowane we wszystkich plikach w określonym formacie, zwykle na danym stanowisku (często na początku). Ponieważ wszystkie pliki w tym konkretnym formacie mają tę konkretną sekwencję bajtów w tej konkretnej pozycji, a większość plików w innych formatach jej nie ma, magiczna liczba jest sposobem na rozpoznanie formatu pliku.
Tutaj ta koncepcja jest stosowana do formatu systemu plików. Na przykład system plików ext2 / ext3 / ext4 zawsze ma bajty 0x53 0xEF
w pozycjach 1080–1081. System plików reiserfs zawsze ReIsErFs
zaczyna się od pozycji 65588 (lub ReIsEr2Fs
itd., W nowszych wersjach). Inne systemy plików mają podobne magiczne liczby. Narzędzia systemu plików sprawdzają obecność magicznej liczby (i ewentualnie innych wskazówek), aby upewnić się, że nie zostały przypadkowo uruchomione na danych zorganizowanych w formacie, z którym nie mogą sobie poradzić i mogą uszkodzić. Jeśli zmienisz magiczną liczbę w systemie plików, zwykłe narzędzia prawdopodobnie odmówią jej dotknięcia; narzędzia do naprawy mogą być bardziej sprytne i traktować złą liczbę magiczną jako jedną z rzeczy, które można złamać.
file
Poleceń rozpoznaje pliki na podstawie ich numerów magicznych. Możesz uruchomić, file -s /dev/sda1
aby zobaczyć, co myśli, że jest na partycji /dev/sda1
. Jego decyzje opierają się na bazie danych zwykle znajdującej się w /etc/magic
lub /usr/share/misc/magic
. Określone polecenia mogą używać różnych magicznych liczb do rozpoznawania formatów plików, z którymi mogą sobie poradzić.
apt-get install source file
będzie ciągnąćfile-x.yy/magic/Magdir/filesystems
które zawierały dokładnie te informacje, na pytanie (i) szukałem.file /dev/sda1
?file /dev/sda1
powie ci tylko, że jest to węzeł urządzenia, nie mówi nic o treści. Musisz albofile </dev/sda1
albofile -s /dev/sda1
.file < /dev/sda1
nie działa z tekstem pomocy z pliku (brakuje parametru?), Ale-s
działa świetnie. Dzięki.file - </dev/sda1
, ponieważ musiszfile
wyraźnie powiedzieć, aby czytać ze standardowego wejścia. Dzięki, naprawię to.