수퍼 블록에서 파일 시스템의 “마법”번호는 무엇입니까? fsdb를 사용하여 파일 시스템의 마법

저는 기본적으로 Linux에서 실행되는 미드 레인지 NAS 시스템에서 작업하고 있으며 오늘 훌륭한 테스트를 수행해야합니다. 단계별로 fsdb를 사용하여 파일 시스템의 마법 번호를 손상시켜 수정 해야하는 스크립트를 테스트 / 테스트합니다.

나는 꽤 많이 봤고 확실한 설명을 찾지 못했습니다. 중간 방식으로 빛을 비출 수 있습니까?



답변

마법의 수는 보통 (보통 처음에) 특정 위치에 특정 형식의 모든 파일에 사용되는 일련의 바이트입니다. 특정 형식의 모든 파일은 특정 위치에 특정 바이트 시퀀스가 ​​있고 다른 형식의 대부분의 파일에는 해당 문자가 없으므로 마법 번호는 파일의 형식을 인식하는 방법입니다.

여기에서이 개념은 파일 시스템 형식에 적용됩니다. 예를 들어, ext2 / ext3 / ext4 파일 시스템의 0x53 0xEF위치 는 항상 1080–1081 위치에 있습니다. reiserfs 파일 시스템은 항상 ReIsErFs위치 65588 (또는 ReIsEr2Fs최신 버전의 경우 등)에서 시작 합니다. 다른 파일 시스템은 비슷한 매직 넘버를 가지고 있습니다. 파일 시스템 도구는 매직 넘버 (및 다른 단서)가 있는지 확인하여 처리 할 수없고 손상 될 수있는 형식으로 구성된 데이터에서 실수로 매직 넘버를 실행하지 않았는지 확인합니다. 파일 시스템에서 마법 번호를 변경하면 일반 도구가이를 수정하지 않을 수 있습니다. 수리 도구는 더 영리하고 나쁜 마법 번호를 깨뜨릴 수있는 것 중 하나로 취급 할 수 있습니다.

file명령은 마법 번호를 기준으로 파일을 인식합니다. file -s /dev/sda1파티션에서 생각 하는 것을보기 위해 실행할 수 있습니다 /dev/sda1. 결정은 /etc/magic또는 에서 일반적으로 발견되는 데이터베이스를 기반으로합니다 /usr/share/misc/magic. 특정 명령은 다른 매직 넘버를 사용하여 처리 할 수있는 파일 형식을 인식 할 수 있습니다.