나는이 과정을 몇 번 겪었지만 매우 쉽지만, 내가 사용한 정확한 단계를 잊어 버렸으므로 여기에서 내 자신의 참조 및 다른 사람들을 위해 문서화하고 있습니다. 기록을 위해 Slackware Linux 14.2+를 PXE 서버로 사용하고 BIOS 업데이트를 위해 여러 가지 다른 Dell Optiplex 모델로 부팅하고 있습니다. 다른 답변에서 언급했듯이 대용량 파일 시스템의 부팅 가능한 ISO 이미지를 만들 수 있습니다. 그러나 부팅 플로피 이미지에 대해 구체적으로 물었으므로 여기에 내가 사용하는 단계가 있습니다.
먼저, MEMDISK 및 FAT12에 대한 배경 정보를 바탕으로 질문을 작성하십시오. 거기에는 많은 상충되고 모호한 정보가 있으므로 희망적으로 이것은 약간의 문제를 해결합니다.
2003 년 의 syslinux 스레드는 MEMDISK가 하드웨어에 따라 최대 이미지 크기 4GB를 지원함을 나타냅니다 (즉, 메모리 제한적이지만 추가 하드웨어 별 고려 사항). 2002 년 의 이전 스레드 는 별도의 PXELINUX 제한 (Linux 커널 공간은 ~ 1GB로 제한되었지만이 정보는 15 년이 넘었습니다)을 나타냅니다.
로부터 MEMDISK 문서 추측하려고 시도합니다 memdisk 일부 특정 플로피 디스크 형상이있다 :
플로피 이미지
디스크 이미지가 4,194,304 바이트 (4096K, 4MiB) 미만인 경우 플로피 이미지로 간주되며 MEMDISK는 파일 크기를 기준으로 형상을 추측하려고합니다. MEMDISK는 모든 표준 플로피 크기와 일반적인 확장 형식을 인식합니다 :
163,840 bytes (160K) c=40 h=1 s=8 5.25" SSSD
184,320 bytes (180K) c=40 h=1 s=9 5.25" SSSD
327,680 bytes (320K) c=40 h=2 s=8 5.25" DSDD
368,640 bytes (360K) c=40 h=2 s=9 5.25" DSDD
655,360 bytes (640K) c=80 h=2 s=8 3.5" DSDD
737,280 bytes (720K) c=80 h=2 s=9 3.5" DSDD
1,222,800 bytes (1200K) c=80 h=2 s=15 5.25" DSHD
1,474,560 bytes (1440K) c=80 h=2 s=18 3.5" DSHD
1,638,400 bytes (1600K) c=80 h=2 s=20 3.5" DSHD (extended)
1,720,320 bytes (1680K) c=80 h=2 s=21 3.5" DSHD (extended)
1,763,328 bytes (1722K) c=82 h=2 s=21 3.5" DSHD (extended)
1,784,832 bytes (1743K) c=83 h=2 s=21 3.5" DSHD (extended)
1,802,240 bytes (1760K) c=80 h=2 s=22 3.5" DSHD (extended)
1,884,160 bytes (1840K) c=80 h=2 s=23 3.5" DSHD (extended)
1,966,080 bytes (1920K) c=80 h=2 s=24 3.5" DSHD (extended)
2,949,120 bytes (2880K) c=80 h=2 s=36 3.5" DSED
3,194,880 bytes (3120K) c=80 h=2 s=39 3.5" DSED (extended)
3,276,800 bytes (3200K) c=80 h=2 s=40 3.5" DSED (extended)
3,604,480 bytes (3520K) c=80 h=2 s=44 3.5" DSED (extended)
3,932,160 bytes (3840K) c=80 h=2 s=48 3.5" DSED (extended)
작은 크기의 perl 스크립트가 MEMDISK 디렉토리에 포함되어있어 MEMDISK가 다른 크기로 선택할 지오메트리를 결정할 수 있습니다. 일반적으로 MEMDISK는 80 개의 실린더 또는 약간 더 높은 사용 된 대부분의 물리적 확장 형식을 정확하게 감지합니다.
LABEL floppy_image
LINUX memdisk
INITRD floppy.img
이미지가 4 MiB보다 크고 플로피 이미지 인 경우 MEMDISK가 해당 이미지를 플로피 이미지로 취급하도록 할 수 있습니다.
LABEL floppy_image
LINUX memdisk
INITRD floppy.img
APPEND floppy
실제로, 나는 그 APPEND floppy
매개 변수에 운이 없었습니다 . 내가 얻을 MEMDISK: No ramdisk image specified!
내가 그것을 사용할 때 오류가 발생했습니다.
일반적으로 플로피 이미지 는 16MB 및 8k 클러스터로 제한되는 FAT12 형식을 사용 합니다. FAT12 에는 32MB 또는 256MB (64k 클러스터)를 허용하는 확장 기능 이있는 것으로 보이지만 구체적인 내용은 확실하지 않습니다.
부팅 가능한 '플로피'이미지 의 최대 FAT12 크기 ( 16,736,256 바이트 )를 대상으로하는 경우 다음을 수행 할 수 있습니다.
dd if=/dev/zero of=FAT12_16MB.img bs=1 count=16736256
그러나 해당 명령을 완료하는 데 1 분이 걸릴 수 있습니다. 더 큰 블록 크기를 사용하면 1 초 이내에 동일한 작업을 수행 할 수 있습니다.
dd if=/dev/zero of=FAT12_16MB.img bs=8192 count=2043
이제 '빈 플로피 디스크'가 생겼으므로 FAT12로 포맷해야합니다 (이 명령에 사용 가능한 매개 변수에 관심이있는 man mkfs.fat
경우 맨 페이지를 보려면 실행 하십시오).
mkfs.fat -D 0x00 -F 12 -n FREEDOSBIOS FAT12_16MB.img
이제 포맷 된 FAT12 '플로피 디스크'이미지가 있습니다. 폴더를 만들어 마운트 할 수 있습니다 :
mkdir floppy
mount -t msdos -o loop FAT12_16MB.img floppy
이제 파일 복사를 시작할 수 있습니다. fdos.org 에서 FreeDOS OEM 부팅 디스크 를 다운로드하여 더 큰 이미지로 복사했습니다.
wget http://www.fdos.org/bootdisks/autogen/FDOEM.288.imz
unzip FDOEM.288.imz
FreeDOS 이미지의 새 마운트 지점을 작성하고 마운트하십시오.
mkdir freedos12
mount -t msdos -o loop FDOEM.288 freedos12
FreeDOS 운영 체제를 더 큰 플로피로 복사하십시오.
cp -r freedos12/* floppy
그런 다음 FreeDOS 파티션을 마운트 해제하고 더 이상 필요하지 않은 경우 마운트 지점을 삭제하십시오.
umount freedos12
rmdir freedos12
이제 FAT12_16MB.img
FreeDOS 운영 체제를 포함 하는 16MB 플로피 이미지 ( )가 있습니다. 그러나 PXE를 통해 부팅하려고하면 다음 오류가 발생합니다.
Loading boot sector... booting...
This is not a bootable disk. Please insert a bootable floppy and press any key to try again...
이 이미지에서 부팅 섹터를 만들어야합니다.
중요 : 이미지 파일에 직접 쓰므로 다음 단계 전에 플로피 이미지가 마운트되지 않았는지 확인하십시오.
umount floppy
부팅 섹터를 FreeDOS 이미지 FDOEM.288
에서 더 큰 이미지`FAT12_16MB.img '로 복사하십시오 .
dd if=FDOEM.288 of=FAT12_16MB.img bs=1 count=446 seek=62 skip=62 conv=notrunc
이제 FreeDOS가 포함 된 PXE 부팅 가능한 16MB FAT12 플로피 이미지가 있습니다. 이 시점에서 이미지를 다시 마운트하고 필요한 추가 파일을 복사 할 수 있습니다.
이 이미지를 부팅하는 데 사용하는 정확한 PXE 구성은 다음과 같습니다.
label bios
menu label FreeDOS
kernel memdisk
append initrd=FAT12_16MB.img
몇 가지가 있습니다 기타 유용한 단계별 자원 밖이 답변을 작성하는 동안 내가 상담을하는 것이가.