On Fri, Oct 16, 2009 at 9:13 PM, Daniel Johnson tekno...@gmail.com wrote:
On Fri, Oct 16, 2009 at 5:18 PM, Michael Robinson
plu...@robinson-west.com wrote:
I have a Linux based tftp server and I've been creating
bootable freedos disk images. Unfortunately, I'm limited
to a 2.88 meg image. Is there any simple way to break
that limit? Some programs I'd like to run via network
boot such as Battle Tech II demand an actual hard drive,
groan.
Well it needs to at least think that it has a hard drive. Have you
tried dosbox, or DosEmu, or something like a KVM virtual machine.
lets talk about how a box boots. hardware stuff happens, then a hard
wried address is stuffed into the CPUs instruction pointer, and it
starts running code from a rom. the rom code eventually tries to find
a boot device.
historically, that was a floppy. so there was code in the rom to load
the 0th sector from the floppy into memory and jump to it. that code
would then load more stuff from the floppy, and eventually an OS would
get loaded that knew what a file system was and how to read files from
the floppy. or in the case of memtest, it would just start testing
memory.
Hard disks are similar. boot from boot sector, load stuff that has
full file system support, load files (like mouse drivers, windowing
systems and email clients.)
Network booting is similar: only instead of reading from a disk, it
brings up networking (static or dhcp) and has a smal (trivial) ftp
client that can grab something like what would typically be in a boot
sector.
The key to remember is: what gets booted first doesn't really know all
there is to know about reading/writing files. grub seems to know how
to read files, but I would be very surprised if it can write files.
interesting thing about bootable CD's: The bios is hooked to load a
floppy image into ram (much like a floppy sized ram disk) and then
boot that using the old boot from floppy code.
which brings us to memdisk:
http://www.etherboot.org/wiki/bootingmemdisk
and
http://syslinux.zytor.com/wiki/index.php/MEMDISK
MEMDISK simulates a disk by claiming a chunk of high memory for the
disk and a (very small - 2K typical) chunk of low (DOS) memory for the
driver itself, then hooking the INT 13h (disk driver) and INT 15h
(memory query) BIOS interrupts.
Which is about the same as what the CD does, only instead of coming
from a real floppy or an image on a CD, it comes from somewhere else,
like a tftp server or I think a file system (disk or network.. doesn't
really matter)
Up till now I have written about stuff I have experience with and can
say it works. this next part I have only read about, and would love
to hear that someone had one it:
For any other size, the image is assumed to be a hard disk image, and
should typically have an MBR and a partition table.
I have heard talk about I have 700mb free ram, why not make a CD
sized ram disk? No clue where that idea went.
[snip]
So in theory, one can network boot and back up via network
their Linux system.
Have you tried the eitherboot project. They have demonstrated booting
almost every Microsoft OS via the network. I've even witnessed a
netbook being booted via WPA encrypted wifi. It may be able to make
the system think it is acessing a local hard drive, but it is actually
a network block device.
Sadly, the freedos project is stalled
and there seems to be no effort to produce open source high
quality network card drivers.
Dos never had a standard TCP/IP stack. You had to use 3rd party
software to get TCP/IP before windows 95.
In some ways I wonder if a network booted console only Linux
system would be more useful. I would like to know what to
replace the init scripts with as leaving them the same when
you are network booting doesn't make sense. The typical
scripts assume that there is a hard disk.
Fortunately the unix model is to have mount points, so what specific
filesystem, or block device doesn't matter once it is mounted. The
tricky part as I remember it is getting it to mount the root
filesystem. /etc/fstab will need to have the network filesystem, or
block device in it, and you might need to have pivot root someplace in
the init to switch to the network filesytem once it is mounted.
Does anyone know of a really fancy way to pick from multiple
network boot images at network boot time?
I believe it is part of the PXE standard to be able to select what
image to boot. The config is a bit trickier.
yes, I do this.
you have 2 choices:
1. boot: prompt where you enter the lable you want to boot (like type
words = yuck.)
2. menu of boot options - arrow to your choice and hit enter.
I took notes and posted them on a wiki, but they have degraded as
others added and subtracted till the point of the page changed and was
renamed. I tried to add back in what was missing, but haven't really
done it well.
https://help.ubuntu.com/community/Installation/LocalNet
look for:
label menu
# makes a