x86 PC에서 부팅 가능한 코드로 디스크에 액세스하려면 가장 쉽고 가장 자연스러운 방법은 BIOS int 13h functions을 사용하는 것입니다. 그러면 개별 디스크 섹터를 읽고 쓸 수 있습니다.
하드 드라이브는 일반적으로 파티션으로 분할되며 각 파티션의 위치, 크기 및 유형을 나타내는 Master Boot Record (MBR
)도 있습니다. MBR은 HDD의 첫 번째 섹터입니다.
각 파티션에는 파일 시스템이 있습니다. NTFS에서 파일을 읽고 쓸 수 있으려면 NTFS 드라이버를 구현해야합니다.
AFAIK, NTFS은 열려 있지 않지만 리버스 엔지니어링 기반의 NTFS 드라이버가 있습니다 (예 : Linux). NTFS 드라이버는 어셈블리가 아닌 C (++)로 작성되며, NTFS는 크고 복잡하며 C는 어셈블리보다 개발, 유지 관리 및 이식성면에서 더 실용적입니다. 어셈블리에 FS 코드를 쓰는 것을 권장하지 않습니다.
P. EFI 시스템의 상황이 다소 다릅니다. MBR 대신 GPT이 있고 EFI 기능을 사용하여 BIOS int 13h 대신 디스크에 액세스합니다.
P.P.S. 나는 C와 약간의 어셈블리에서 원하는 것을했지만 NTFS 대신 FAT1x/32를 사용했다. 그게 가능합니다. NTFS는 더 어렵습니다. 특히 충분한 지식과 기술이없는 한 사람에게는 불가능할 수 있습니다.
어떤 파일 시스템입니까? 각 파일 시스템에는 파일 정보를 저장하는 다른 방법이 있습니다. –
파일 시스템과 함께, 우리는 꽤 많이 쓰고있는 OS를 알아야합니다. –
Windows 7과 기본 파일 시스템이 ext3라고 생각합니다. –