This application note describes how Tiny Core Linux can be HTTP-booted using the gPXE network bootloader.
Although Tiny Core Linux comes with PXE netboot support, HTTP booting is attractive because it is more flexible. Only a HTTP server is required (rather than a full DHCP + TFTP setup). HTTP also works well over the internet.
Tiny Core Linux is “the core needed to boot into a very minimal X desktop typically with wired internet access”. From there you can load applications on-demand from the internet. It's a great starting point for a custom thin-client or for one-off Linux sessions without big downloads upfront.
Download the latest Tiny Core Linux ISO image:
wget http://distro.ibiblio.org/pub/linux/distributions/tinycorelinux/release/tinycore_1.2.iso
Mount the ISO:
mount -o loop tinycore_1.2.iso /mnt
Copy kernel and initramfs to a web-accessible directory:
cp /mnt/boot/{bzImage,tinycore.gz} /var/www
Create a gPXE script for easy booting:
cat >/var/www/tinycore.gpxe #!gpxe kernel http://example.org/bzImage initrd http://example.org/tinycore.gz boot ^D
Boot gPXE and enter the following command at the shell (Ctrl+B):
dhcp net0 chain http://example.org/tinycore.gpxe
Tiny Core Linux should download via HTTP and boot.
You may want to add kernel command-line arguments like this in tinycore.gpxe
:
kernel http://example.org/bzImage lang=en kmap=us