FreeDOS
Siehe auch
FreeDOS (früher Free-DOS und PD-DOS) ist ein freies Betriebssystem für IBM PC-kompatible Rechner. Es soll eine vollständige MS-DOS-kompatible Umgebung bieten. FreeDOS kann von Disk oder einem USB-Stick gebootet werden, und läuft auch virtuell oder in einem x86-Emulator.
Anders als die meisten Versionen von MS-DOS besteht FreeDOS aus freier Software, die unter den Bedingungen der GNU General Public License lizenziert ist. Andere Pakete, die Teil des FreeDOS-Projekts sind, enthalten jedoch auch Software, die nicht unter der GNU General Public License steht und als erhaltenswert erachtet wird, wie z. B. 4DOS, das unter einer modifizierten MIT-Lizenz vertrieben wird.
Das FreeDOS-Projekt begann am 29. Juni 1994, nachdem Microsoft angekündigt hatte, MS-DOS nicht mehr zu verkaufen oder zu unterstützen. Jim Hall - damals noch Student - veröffentlichte ein Manifest, in dem er die Entwicklung von PD-DOS, einer Public-Domain-Version von DOS, vorschlug. Innerhalb weniger Wochen schlossen sich weitere Programmierer dem Projekt an. Gemeinsam wurden ein Kernel, der COMMAND.COM-Befehlszeileninterpreter und zentrale Dienstprogramme durch die Zusammenführung von selbst geschriebenem oder vorhandenem Code erstellt.
FreeDOS ISO-Image anpassen
Am einfachsten alles unter dem Benutzer root ausführen.
Um ein Custom ISO-Image auf Basis vom FreeDOS zu bauen, entweder
ein fertiges QEMU Disk-Image ziehen (empfohlen, geht schneller)
oder in KVM eine neue VM vorbereiten, und darauf FreeDOS von Hand aus dem FreeDOS ISO-Image installieren
Anschliessend das ISO-Image anpassen (egal, wo das Disk-Image herkommt).
Als root Disk-Image mounten:
mkdir -p /mnt/img
startsector=$(file $img.img | sed -n -e 's/.* startsector *\([0-9]*\),.*/\1/p')
offset=$(expr $startsector '*' 512)
mount -o rw,loop,offset=$offset $img.img /mnt/img/
Mit Treibern, BIOS-Tools etc. befüllen:
cp -r "Supermicro SYS-6018R-MR/bios" /mnt/img
Bootable ISO erstellen: dazu den ISOLINUX-Bootloader aus dem Original ISO verwenden, und - das ist der Trick - das enthaltene „FDBOOT.img“ mit unserer img-Datei ersetzen:
wget http://www.freedos.org/download/download/FD12CD.iso
mount -t iso9660 -o loop FD12CD.iso /mnt/iso
# neues ISO bauen
mkdir -p myiso
cp -r /mnt/iso/BOOT /mnt/iso/ISOLINUX myiso
cd myiso
\mv ../$img.img ISOLINUX/FDBOOT.img
Boot-Menü-Datei abschalten/ändern - komplett überschreiben:
default live
say Booting Custom FreeDOS 1.2 by Linuxfabrik...
label live
linux /isolinux/memdisk
initrd /isolinux/fdboot.img
append nopassany
Neues ISO-File myfreedos.iso
bauen:
mkisofs -o ../myfreedos.iso -b ISOLINUX/ISOLINUX.BIN -c ISOLINUX/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -J -R -V "FD-SETUP" .
Aufräumen:
umount /mnt/img
umount /mnt/iso
cd
rm -f qemu-$img.zip FD12CD.iso myiso
Das ISO-Image myfreedos.iso
kann jetzt verwendet werden. Nach einem Boot-Test gegen eine lokale VM kann es beispielsweise in einen Samba-Share geworfen werden, um per IPMI damit zu booten.
FreeDOS QEMU Disk-Image ziehen
cd
img=fd12-base
wget http://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/distributions/1.2/qemu/qemu-$img.zip
unzip qemu-$img.zip
Wir können das Disk-Image noch von ursprünglich 100M auf 50M verkleinern:
dd bs=1M seek=50 of=$img.img </dev/null
FreeDOS Disk-Image erstellen
Vorher mit
cd
img=fd12-base
qemu-img create $img.img 50M
eine leere, 50M grosse VM-Disk erstellen (im VMM-GUI geht es nicht unter 100M).
FreeDOS „Full“-ISO-Image ziehen, VM mit 1 Core, 64 MB RAM und der Disk ausstatten, dann das Setup laufen lassen.
Ist FreeDOS installiert, kann man das img-File wie oben verwenden, um ein eigenes ISO daraus zu machen (oder man spart sich den Aufwand und nimmt wie oben das fertige qemu-Image).
Built on 2024-11-18