Một con số kỳ diệu là một chuỗi các byte được sử dụng trong tất cả các tệp có định dạng nhất định, thường ở một vị trí nhất định (thường ở đầu). Vì tất cả các tệp ở định dạng cụ thể đó có chuỗi byte cụ thể ở vị trí cụ thể đó và hầu hết các tệp ở các định dạng khác không có nó, số ma thuật là một cách để nhận ra định dạng của tệp.
Ở đây, khái niệm này được áp dụng cho một định dạng hệ thống tập tin. Ví dụ: hệ thống tệp ext2 / ext3 / ext4 luôn có các byte 0x53 0xEF
tại các vị trí 1080 Vang1081. Một hệ thống tập tin reiserfs luôn có ReIsErFs
bắt đầu từ vị trí 65588 (hoặc ReIsEr2Fs
, v.v., trong các phiên bản gần đây hơn). Các hệ thống tập tin khác có số ma thuật tương tự. Các công cụ hệ thống tập tin kiểm tra sự hiện diện của số ma thuật (và có thể là manh mối khác) để đảm bảo rằng bạn đã vô tình khởi chạy chúng trên dữ liệu được sắp xếp theo định dạng mà chúng không thể xử lý và có thể làm hỏng. Nếu bạn thay đổi số ma thuật trên một hệ thống tập tin, các công cụ thông thường có khả năng từ chối chạm vào nó; công cụ sửa chữa có thể thông minh hơn và coi một số ma thuật xấu chỉ là một trong những thứ có thể bị phá vỡ.
Các file
lệnh nhận ra các tập tin dựa trên số ma thuật của họ. Bạn có thể chạy file -s /dev/sda1
để xem những gì nó nghĩ là trên phân vùng /dev/sda1
. Các quyết định của nó dựa trên cơ sở dữ liệu thường được tìm thấy trong /etc/magic
hoặc là /usr/share/misc/magic
. Các lệnh cụ thể có thể sử dụng các số ma thuật khác nhau để nhận ra các định dạng tệp mà chúng có thể đối phó.
apt-get install source file
sẽ kéofile-x.yy/magic/Magdir/filesystems
trong đó có chính xác thông tin mà câu hỏi (và tôi) đang tìm kiếm.