24 February 2011

Mini Linux with SSH

I was searching for mini Linux distributions for a while, as I wanted to create a USB drive from which a PC would boot very quickly, and then I could SSH to other machines to do some maintenance.

The smallest distribution I could find was the 'microcore' version of Tiny Core Linux. However, SSH is not part of it by default, but it is in an extension that one needs to download (together with some other extension packages it depends on) after Linux has booted.

Now Tiny Core Linux can store extensions on a local disk, but it cannot read NTFS, so what I did was to include these extensions in the distribution itself.

If you need a lightweight, fast Linux with SSH, here's how to install it:
  • Download the microcore 3.5 ISO file (from here)
  • Use UNetbootin to create a bootable USB drive. This should unpack the ISO file onto your USB drive
  • Download the microcore.gz that includes the extensions necessary for SSH from here, and replace the one in USBDRIVE/boot/microcore.gz
  • You can also configure USBDRIVE/syslinux.cfg to make the boot process faster. Here's what I use:
    DEFAULT linux
    LABEL linux
    KERNEL /boot/bzImage
    APPEND initrd=/boot/microcore.gz embed multivt noswap nozswap nofstab noicons norestore

  • Enjoy! For me, this Linux boots up in a couple of seconds.

My microcore.gz includes gcc_libs.tcz, openssl-0.9.8.tcz and openssh.tcz in /tce/, and these are loaded using tce-load in /opt/bootlocal.sh.