2016-06-11 20:57:57 +03:00
2016-06-11 20:28:58 +03:00
2016-06-11 20:57:57 +03:00

minimal-script

One script which generates fully functional live Linux ISO image with minimal effort. This is based on the first published version of Minimal Linux Live. All comments and empty lines have been removed and the original script code has been slightly altered to reduce the overall script length.

The script below uses Linux kernel 3.15.6 and BusyBox 1.22.1. If you are using Ubuntu or Linux Mint, you should be able to resolve all build dependencies by executing the following command:

sudo apt-get install wget bc build-essential gawk syslinux genisoimage

After that simply run the below script. In the end you should have a bootable ISO image named minimal_linux_live.iso in the same directory where you executed the script.

rm -rf work
mkdir work
cd work
rm -f linux-3.15.6.tar.xz
wget http://kernel.org/pub/linux/kernel/v3.x/linux-3.15.6.tar.xz
rm -rf kernel
mkdir kernel
tar -xvf linux-3.15.6.tar.xz -C kernel
cd kernel/linux-3.15.6
make clean defconfig vmlinux
cd ../..
rm -f busybox-1.22.1.tar.bz2
wget http://busybox.net/downloads/busybox-1.22.1.tar.bz2
rm -rf busybox
mkdir busybox
tar -xvf busybox-1.22.1.tar.bz2 -C busybox
cd busybox/busybox-1.22.1
make clean defconfig
sed -i "s/.*CONFIG_STATIC.*/CONFIG_STATIC=y/" .config
make busybox install
rm -rf ../../rootfs
cp -R _install ../../rootfs
cd ../../rootfs
rm -f linuxrc
mkdir dev etc proc sys tmp
cd etc
echo > welcome.txt
echo '  #####################################' >> welcome.txt
echo '  #                                   #' >> welcome.txt
echo '  #  Welcome to "Minimal Linux Live"  #' >> welcome.txt
echo '  #                                   #' >> welcome.txt
echo '  #####################################' >> welcome.txt
echo >> welcome.txt
cd ..
echo '#!/bin/sh' > init
echo 'dmesg -n 1' >> init
echo 'mount -t devtmpfs none /dev' >> init
echo 'mount -t proc none /proc' >> init
echo 'mount -t sysfs none /sys' >> init
echo 'cat /etc/welcome.txt' >> init
echo 'while true' >> init
echo 'do' >> init
echo '  setsid cttyhack /bin/sh' >> init
echo 'done' >> init
echo >> init
chmod +x init
rm -f ../rootfs.cpio.gz
cd ../rootfs
find . | cpio -H newc -o | gzip > ../rootfs.cpio.gz
rm -f ../../minimal_linux_live.iso
cd ../kernel/linux-3.15.6
make isoimage FDINITRD=../../rootfs.cpio.gz
cp arch/x86/boot/image.iso ../../../minimal_linux_live.iso
cd ../../..

Note that this produces very small live Linux OS with almost no useful functionality (apart from working shell) and no proper network support. The network support has been handled properly in the Minimal Linux Live project which is extensively documented and more feature rich, yet still produces very small live Linux ISO image.

Description
No description provided
Readme 478 MiB
Languages
C 97.4%
Assembly 1.3%
Shell 0.4%
Makefile 0.3%
Python 0.2%
Other 0.2%