>>>>> Ivan Shmakov <
onei...@gmail.com> writes:
[Cross-posting to news:comp.os.linux.networking and
news:comp.os.msdos.misc, for an example setup for booting the
Debian GNU/Linux 6.0.4 Live and FreeDOS Balder images over a
network is provided. I'm looking for both a better-suited
newsgroup, and a configuration to boot a ZX Spectrum emulator.]
> To note is that I've added the CP/M-86 1.44" image to my iPXE-based
> "Network boot" menu, too. Now, virtually any x86 machine (or an
> "emulation" thereof) in my LAN, may boot a CP/M-86 system given a
> suitable iPXE command sequence or script.
[...]
> PS. I'm quite sure that this configuration will work over Internet,
> too, but I'm somewhat reluctant to share the server's URI to point
> iPXE at, as this version of CP/M-86 doesn't seem like a free software
> (as in "free speech".)
... On a second though, here it is:
http://ritic.am-1.org/diskless/ipxe/world-default
One can run it with QEMU (or QEMU/KVM) like:
$ qemu \
-kernel virtio-net.lkrn \
-net nic,model=virtio \
-net user,bootfile=
http://173.0.50.100/diskless/ipxe/world-default
It seems that the version of QEMU I use fails to provide DNS to
the child, so I had to use "plain" IPv4 addresses within both
the command line above and the "world-default" iPXE script, as
well as providing a copy of balder10.img on my server (as
http://ibiblio.org/ apparently requires the proper Host: HTTP
header.)
For booting "real" hardware, one'd need a DHCP server, and also
a TFTP one (unless a recent version of iPXE is burned into the
boot ROM.)
E. g., the ISC DHCP server may be configured roughly as follows
(assuming a static MAC to IPv4 mapping.)
### dhcpd.conf -*- Default-Generic -*-
default-lease-time 600;
max-lease-time 7200;
subnet 192.0.2.0 netmask 255.255.255.0 {
use-host-decl-names on;
option subnet-mask 255.255.255.0;
option routers 192.0.2.1;
option domain-name-servers
192.0.2.53;
# option ntp-servers 192.0.2.123;
if exists user-class and option user-class = "iPXE" {
filename "
http://173.0.50.100/diskless/ipxe/world-default";
} else {
## download iPXE from a TFTP server
next-server 192.0.2.69;
filename "undionly.kpxe";
}
host
diskless.example.org {
hardware ethernet 00:27:0e:05:e5:9e;
fixed-address 192.0.2.97;
}
}
### dhcpd.conf ends here
Also note that the Debian 6.0.4 Live "standard" image is some
177 MiB in total, and thus takes a while to load from
http://cdimage.debian.org/ (AKA
http://130.239.18.163/.) It's
provided as an example only; one should really consider putting
it somewhere within his or her own network! (There's also a
section for loading the "Xfce desktop" image, but its menu entry
was commented-out, so not to abuse the cdimage server.)
The files provided (below /bin/) are as follows. (I'd like to
thank Aioe for its wonderful "441 Lines longer than 79 chars".)
Image: 144cpm86.img
Copy-of:
http://z80.eu/downloads/cpm86fl2.zip (floppy.flp)
Description: CP/M-86 1.44" bootable floppy
Originally from
http://cpm.z80.de/download/144cpm86.zip.
Image: balder10.img
Copy-of:
http://ibiblio.org/pub/micro/pc-stuff/freedos/files/distributions/
unofficial/balder/balder10.img
Description: Balder 1.0 (FreeDOS) 1.44" bootable floppy
Image: memdisk.lkrn
Copy-of:
http://snapshot.debian.org/archive/debian/20120630T153537Z/pool/
main/s/syslinux/syslinux-common_4.05%2Bdfsg-6_all.deb
(./usr/lib/syslinux/memdisk)
Description: MEMDISK implements a RAM disk by hooking INT 13h
This one comes from the SYSLINUX project.
Image: memtest86+.0
Source:
https://git.ipxe.org/people/mcb30/memtest.git/commit/f9d3679f3770
Description: Memtest86+ memory tester (PXE)
This version of Memtest86+ was built with an experimental PXE
support.
Image: memtest86.bin
Copy-of:
http://snapshot.debian.org/archive/debian/20120514T041508Z/pool/
main/m/memtest86/memtest86_4.0s-1_amd64.deb (./boot/memtest86.bin)
Description: Memtest86 memory tester
Image: pxelinux.0
Copy-of:
http://snapshot.debian.org/archive/debian/20120630T153537Z/pool/
main/s/syslinux/syslinux-common_4.05%2Bdfsg-6_all.deb
(./usr/lib/syslinux/pxelinux.0)
Description: PXELINfUX loads Linux from a network using PXE