Creating an OPENSTEP Boot CD t3RRa

From 흡혈양파의 인터넷工房
Jump to navigation Jump to search
OPENSTEP을 booting 가능한 iso 로 만들기-t3RRa


작업진행

qemu 로만 일단 시디 부팅으로 디스크 파티션 나누는 부분까지 가는걸 확인했습니다. (그리고는 하드 디스크 부분에서 인터럽트 타임아웃이 나네요;; 드라이버 문제일까요. 그렇다면 어쩌면 베타 디스크의 드라이버들을 넣어주면 좀 해결될까요.)


http://peterwong.net/blog/?p=119 이 글에서 i386에 해당되는 부분만 참조했습니다. 여기에 있는 F288.img (2.88 플로피 디스켓 이미지) 와 OPENSTEP42CD.Block00.ElTorito.lbl 를 받아서 사용했구요.


일단 ufs 파일시스템을 추출해냅니다.

dd bs=2048 if=OPENSTEP42CD.iso of=OPENSTEP42CD.ufs skip=80


그리고 이제 일단 ufs 파일과 F288.img 를 한 폴더 (제 경우에는 Temp 라는 폴더를 만들어 넣었습니다)에 넣고, 부팅 가능한 El-Torito 시디 이미지를 만듭니다.

mkisofs -b F288.img -V OPENSTEP_4.2J -hide F288.img -J -R -o test.iso Temp


하지만 이걸로는 부팅이 불가능하고 디스크 라벨을 덮어 씌어줘야 합니다. 근데 받은 OPENSTEP42CD.Block00.ElTorito.lbl 에 수정된 값은 위에 mkisofs 로 만든 이미지랑은 오프셋이 다릅니다;; 제 경우는 ufs 파일 오프셋에 대한 “front porch” 값이 0x06C0 이 아니라 0x5C1 이었고 이에 대한 체크섬 값은 0xD492 가 아니라 0xD393 이 되더군요.

mkisofs로 생성된 이미지에서 추출된 ufs 파일의 오프셋 값을 찾아 2042 로 나누면 “front porch” 값이 나옵니다. 그리고 체크섬 값은 같은 사이트에서 받은 C 소스를 컴파일 해서 .lbl 파일을 옵션으로 주고 실행해서 얻은 값입니다. 이 두 값을 각각 0×70, 0x22E 위치에 Big Endian 으로 기록한 뒤 iso 이미지에 씁니다.

dd bs=1 count=7680 if=OPENSTEP42CD.Block00.ElTorito.m68k.lbl of=test.iso conv=notrunc


맥에서는 conv=notrunc 옵션을 주지 않으면 iso 이미지가 .lbl 파일과 동일한 사이즈로 되어버립니다.


일단 어디선가 테스트를 해보고 싶은데 시간이 너무 늦어진 관계로 좀 미뤄야 겠네요. 흘…


파일 링크