Minor cleanup after the merge. This has not been tested yet.

This commit is contained in:
Ivan Davidov 2016-10-01 12:12:28 +03:00 committed by GitHub
parent afbf6fb62f
commit 09b62948e3

View File

@ -1,5 +1,5 @@
# Minimal Linux Script
One script which generates fully functional live Linux ISO image with minimal effort (less than 25 lines of code). This is based on the first published version of [Minimal Linux Live](http://github.com/ivandavidov/minimal) with some minor improvements taken from the next releases. All empty lines and comments have been removed and the script has been modified to reduce the overall length.
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](http://github.com/ivandavidov/minimal) with some improvements taken from the next releases. All empty lines and comments have been removed and the script has been modified to reduce the overall length.
The script below uses **Linux kernel 4.7.6**, **BusyBox 1.24.2** and **Syslinux 6.03**. The source bundles are downloaded and compiled automatically. 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:
@ -28,18 +28,14 @@ After that simply run the below script. It doesn't require root privileges. In t
echo 'mount -t sysfs none /sys' >> init
echo 'setsid cttyhack /bin/sh' >> init
chmod +x init
find . | cpio -R root:root -H newc -o | gzip > ../../rootfs.cpio.gz
find . | cpio -R root:root -H newc -o | gzip > ../../isoimage/rootfs.gz
cd ../../linux-4.7.6
make mrproper defconfig bzImage
cp arch/x86/boot/bzImage \
../isoimage/kernel
cd ..
cd isoimage
cp arch/x86/boot/bzImage ../isoimage/kernel.gz
cd ../isoimage
cp ../syslinux-6.03/bios/core/isolinux.bin .
cp ../syslinux-6.03/bios/com32/elflink/ldlinux/ldlinux.c32 .
cp kernel ./kernel.xz
cp ../rootfs.cpio.gz ./rootfs.xz
echo 'default kernel.xz initrd=rootfs.xz' > ./isolinux.cfg
echo 'default kernel.gz initrd=rootfs.gz' > ./isolinux.cfg
genisoimage \
-J \
-r \
@ -52,17 +48,6 @@ After that simply run the below script. It doesn't require root privileges. In t
-boot-info-table \
-joliet-long \
./
isohybrid -u ../minimal_linux_live.iso 2>/dev/null || true
cd ..
Note that this produces very small live Linux OS with working shell only. The network support has been implemented 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.
**EDIT: 23-Sep-2016**
The line `make isoimage FDINITRD=../rootfs.cpio.gz` may not work on your machine (and the ISO image will fail to boot) due to well known issues with Sysinux 5.x and the kernel's Makefile which doesn't support the Syslinux 5.x file dependencies. This is why in Minimal Linux Live the ISO image generation process has been redesigned from scratch.
There is existing patch for the kernel's Makefile. Take a look here:
https://github.com/ivandavidov/minimal/issues/10
The ISO generation issue along with proper solution for it has been described in the document [The DAO of Minimal Linnux Live Live](https://github.com/ivandavidov/minimal/blob/master/src/the_dao_of_minimal_linux_live.txt).