Update README.md

This commit is contained in:
Ivan Davidov 2016-06-11 20:57:57 +03:00 committed by GitHub
parent 98c0b4952c
commit a119a008de

110
README.md
View File

@ -3,63 +3,63 @@ One script which generates fully functional live Linux ISO image with minimal ef
The script below uses **Linux kernel 3.15.6** and **BusyBox 1.22.1**. If you are using [Ubuntu](http://ubuntu.com) or [Linux Mint](http://linuxmint.com), you should be able to resolve all build dependencies by executing the following command: The script below uses **Linux kernel 3.15.6** and **BusyBox 1.22.1**. If you are using [Ubuntu](http://ubuntu.com) or [Linux Mint](http://linuxmint.com), 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``` 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. 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 rm -rf work
mkdir work mkdir work
cd work cd work
rm -f linux-3.15.6.tar.xz rm -f linux-3.15.6.tar.xz
wget http://kernel.org/pub/linux/kernel/v3.x/linux-3.15.6.tar.xz wget http://kernel.org/pub/linux/kernel/v3.x/linux-3.15.6.tar.xz
rm -rf kernel rm -rf kernel
mkdir kernel mkdir kernel
tar -xvf linux-3.15.6.tar.xz -C kernel tar -xvf linux-3.15.6.tar.xz -C kernel
cd kernel/linux-3.15.6 cd kernel/linux-3.15.6
make clean defconfig vmlinux make clean defconfig vmlinux
cd ../.. cd ../..
rm -f busybox-1.22.1.tar.bz2 rm -f busybox-1.22.1.tar.bz2
wget http://busybox.net/downloads/busybox-1.22.1.tar.bz2 wget http://busybox.net/downloads/busybox-1.22.1.tar.bz2
rm -rf busybox rm -rf busybox
mkdir busybox mkdir busybox
tar -xvf busybox-1.22.1.tar.bz2 -C busybox tar -xvf busybox-1.22.1.tar.bz2 -C busybox
cd busybox/busybox-1.22.1 cd busybox/busybox-1.22.1
make clean defconfig make clean defconfig
sed -i "s/.*CONFIG_STATIC.*/CONFIG_STATIC=y/" .config sed -i "s/.*CONFIG_STATIC.*/CONFIG_STATIC=y/" .config
make busybox install make busybox install
rm -rf ../../rootfs rm -rf ../../rootfs
cp -R _install ../../rootfs cp -R _install ../../rootfs
cd ../../rootfs cd ../../rootfs
rm -f linuxrc rm -f linuxrc
mkdir dev etc proc sys tmp mkdir dev etc proc sys tmp
cd etc cd etc
echo > welcome.txt echo > welcome.txt
echo ' #####################################' >> welcome.txt echo ' #####################################' >> welcome.txt
echo ' # #' >> welcome.txt echo ' # #' >> welcome.txt
echo ' # Welcome to "Minimal Linux Live" #' >> welcome.txt echo ' # Welcome to "Minimal Linux Live" #' >> welcome.txt
echo ' # #' >> welcome.txt echo ' # #' >> welcome.txt
echo ' #####################################' >> welcome.txt echo ' #####################################' >> welcome.txt
echo >> welcome.txt echo >> welcome.txt
cd .. cd ..
echo '#!/bin/sh' > init echo '#!/bin/sh' > init
echo 'dmesg -n 1' >> init echo 'dmesg -n 1' >> init
echo 'mount -t devtmpfs none /dev' >> init echo 'mount -t devtmpfs none /dev' >> init
echo 'mount -t proc none /proc' >> init echo 'mount -t proc none /proc' >> init
echo 'mount -t sysfs none /sys' >> init echo 'mount -t sysfs none /sys' >> init
echo 'cat /etc/welcome.txt' >> init echo 'cat /etc/welcome.txt' >> init
echo 'while true' >> init echo 'while true' >> init
echo 'do' >> init echo 'do' >> init
echo ' setsid cttyhack /bin/sh' >> init echo ' setsid cttyhack /bin/sh' >> init
echo 'done' >> init echo 'done' >> init
echo >> init echo >> init
chmod +x init chmod +x init
rm -f ../rootfs.cpio.gz rm -f ../rootfs.cpio.gz
cd ../rootfs cd ../rootfs
find . | cpio -H newc -o | gzip > ../rootfs.cpio.gz find . | cpio -H newc -o | gzip > ../rootfs.cpio.gz
rm -f ../../minimal_linux_live.iso rm -f ../../minimal_linux_live.iso
cd ../kernel/linux-3.15.6 cd ../kernel/linux-3.15.6
make isoimage FDINITRD=../../rootfs.cpio.gz make isoimage FDINITRD=../../rootfs.cpio.gz
cp arch/x86/boot/image.iso ../../../minimal_linux_live.iso cp arch/x86/boot/image.iso ../../../minimal_linux_live.iso
cd ../../..``` 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](http://github.com/ivandavidov/minimal) project which is extensively documented and more feature rich, yet still produces very small live Linux ISO image. 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](http://github.com/ivandavidov/minimal) project which is extensively documented and more feature rich, yet still produces very small live Linux ISO image.