본문 바로가기

내가 작업한 것들

USB 나 SD/MMC/CF/MS 같은 이동식 미디어 부팅가능 하게 만들기.



부팅 미디어 에 대한 관심으로 이리저리 인터넷을 뒤지다가 FAT12/FAT16 구조에서 부팅 가능한 비트 설정을 알게 되었습니다.
Go to offset 0x40 (decimal 64). Keep in mind that, if you do not see FAT12 or FAT16 around 0x36 (decimal 54) in the hex editor, you probably picked the wrong drive. Do not overwrite anything in that case.
그래서 만든것 이 USB_Boot 입니다.
DEV-C++ 로 만들었으며 , C 파일만 컴파일시 MS Visual C++ 2008 Expression Edition 에서도 가능하군요.
제 프로젝트는 Link 에서 Stripe 를 사용해서 8KB 의 크기 입니다. (보통 56KB)
FAT12/16 을 검사하므로 실수 할 일은 잘 없으며 , 이동식 드라이브 타입이 아니면 역시 변경하지 않습니다.

실행가능한 바이너리 (콘솔용) 과 프로젝트 포함된 소스코드를 함께 공개 합니다.

이 프로그램은 이동식디스크를 부팅 가능하게만 만들어 줍니다.
부팅에 필요한 파일들은 직접 복사하시기 바랍니다.

예) 플로피드라이브를 포맷하면 안에 IO.SYS , MSDOS.SYS COMMAND.COM 이 있습니다.
이중 IO.SYS , MSDOS.SYS 는 숨김 파일 이므로 , 시스템 파일을 다 보이도록 해서 변경한 드라이브에 그냥 복사하면 됩니다.
저 같은 경우 32MB SD 카드를 포맷해서 MS-DOS 부팅용으로 사용합니다.
작은 용량의 SD 드라이브를 포맷해서 쓰게 되면 메인보드 BIOS 나 비디오 카드의 BIOS 를 변경할때 유용하게 사용 하실수 있습니다.

*부팅 관련 파일 추가*
MS-DOS 6.22 와 간단한 어플들을 포함한 파일을 압축하여 올립니다.
MAXLLF 같은 LowLevel Formatter 나 NTFS 를 읽을 수 있는 설정 들이 포함되어 있습니다.
CONFIG.SYS , AUTOEXEC.BAT 등을 적절히 수정해서 사용해 보시기 바랍니다.

CONFIG.SYS 예제 (제가 쓰는 설정 입니다)
DEVICE=A:\DOS\HIMEM.SYS /testmem:off
DOS=HIGH,UMB
DEVICE=A:\DOS\EMM386.EXE NOEMS
DEVICE=A:\DOS\OAKCDROM.SYS /D:MSCD001

AUTOEXEC.BAT 예제 (역시 제가 쓰는 설정)
@echo off
REM ** SET SOUND=C:\PROGRA~1\CREATIVE\CTSND
SET BLASTER=A220 I5 D1 H5 P330 E620 T6
SET PATH=A:\DOS;A:\ 
LH A:\DOS\MSCDEX.EXE /D:MSCD001