From d2b2366cf63cc19aa3a19d97458c22ebe59f8b19 Mon Sep 17 00:00:00 2001 From: AwlsomeAlex Date: Mon, 29 Aug 2016 14:11:05 -0400 Subject: [PATCH 1/7] Updated Linux Version to 4.7.2 --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 8a074561c..855d2ad7d 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,15 @@ # 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. -The script below uses **Linux kernel 4.6.2** and **BusyBox 1.24.2**. 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: +The script below uses **Linux kernel 4.7.2** and **BusyBox 1.24.2**. 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: sudo apt-get install wget bc build-essential gawk syslinux genisoimage After that simply run the below script. It doesn't require root privileges. In the end you should have a bootable ISO image named `minimal_linux_live.iso` in the same directory where you executed the script. - wget http://kernel.org/pub/linux/kernel/v4.x/linux-4.6.2.tar.xz + wget http://kernel.org/pub/linux/kernel/v4.x/linux-4.7.2.tar.xz wget http://busybox.net/downloads/busybox-1.24.2.tar.bz2 - tar -xvf linux-4.6.2.tar.xz + tar -xvf linux-4.7.2.tar.xz tar -xvf busybox-1.24.2.tar.bz2 cd busybox-1.24.2 make distclean defconfig @@ -25,8 +25,8 @@ 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 +0:+0 -H newc -o | gzip > ../../rootfs.cpio.gz - cd ../../linux-4.6.2 + find . | cpio -R root:root -H newc -o | gzip > ../../rootfs.cpio.gz + cd ../../linux-4.7.2 make mrproper defconfig bzImage make isoimage FDINITRD=../rootfs.cpio.gz cp arch/x86/boot/image.iso ../minimal_linux_live.iso From 2c5281472216910314ccd72ee4b53005a1732573 Mon Sep 17 00:00:00 2001 From: AwlsomeAlex Date: Fri, 30 Sep 2016 23:38:19 -0400 Subject: [PATCH 2/7] Fixes ldlinux.c32 Bug and Compiling Errors The old way of creating the image used to require the user to manually add Syslinux Features like isolinux.bin and ldlinux.c32, which without them, the system wouldn't boot. Now the small instruction guide will move the required files with the Kernel and Rootfs. Also fixed a small user error when generating the Rootfs by changing "find . | cpio -R +0:+0 -H newc -o | gzip > ../../rootfs.cpio.gz" to "find . | cpio -R root:root -H newc -o | gzip > ../../rootfs.cpio.gz" --- README.md | 31 ++++++++++++++++++++++++++----- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 855d2ad7d..5a653b003 100644 --- a/README.md +++ b/README.md @@ -7,10 +7,13 @@ The script below uses **Linux kernel 4.7.2** and **BusyBox 1.24.2**. The source After that simply run the below script. It doesn't require root privileges. In the end you should have a bootable ISO image named `minimal_linux_live.iso` in the same directory where you executed the script. - wget http://kernel.org/pub/linux/kernel/v4.x/linux-4.7.2.tar.xz + wget http://kernel.org/pub/linux/kernel/v4.x/linux-4.7.6.tar.xz wget http://busybox.net/downloads/busybox-1.24.2.tar.bz2 - tar -xvf linux-4.7.2.tar.xz + wget http://kernel.org/pub/linux/utils/boot/syslinux/syslinux-6.03.tar.xz + mkdir isoimage + tar -xvf linux-4.7.6.tar.xz tar -xvf busybox-1.24.2.tar.bz2 + tar -xvf syslinux-6.03.tar.xz cd busybox-1.24.2 make distclean defconfig sed -i "s/.*CONFIG_STATIC.*/CONFIG_STATIC=y/" .config @@ -26,10 +29,28 @@ After that simply run the below script. It doesn't require root privileges. In t echo 'setsid cttyhack /bin/sh' >> init chmod +x init find . | cpio -R root:root -H newc -o | gzip > ../../rootfs.cpio.gz - cd ../../linux-4.7.2 + cd ../../linux-4.7.6 make mrproper defconfig bzImage - make isoimage FDINITRD=../rootfs.cpio.gz - cp arch/x86/boot/image.iso ../minimal_linux_live.iso + cp arch/x86/boot/bzImage \ + ../isoimage/kernel cd .. + 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.xz ./rootfs.xz + echo 'default kernel.xz initrd=rootfs.xz vga=ask' > ./isolinux.cfg + genisoimage \ + -J \ + -r \ + -o ../minimal_linux_live.iso \ + -b isolinux.bin \ + -c boot.cat \ + -input-charset UTF-8 \ + -no-emul-boot \ + -boot-load-size 4 \ + -boot-info-table \ + ./ + isohybrid -u ../minimal_linux_live.iso 2>/dev/null || true 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. From 06f73c0544664a46bed62c3911ee9239baa04062 Mon Sep 17 00:00:00 2001 From: AwlsomeAlex Date: Fri, 30 Sep 2016 23:38:46 -0400 Subject: [PATCH 3/7] Minor Changes --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5a653b003..da24c0113 100644 --- a/README.md +++ b/README.md @@ -39,7 +39,7 @@ After that simply run the below script. It doesn't require root privileges. In t cp ../syslinux-6.03/bios/com32/elflink/ldlinux/ldlinux.c32 . cp kernel ./kernel.xz cp ../rootfs.cpio.xz ./rootfs.xz - echo 'default kernel.xz initrd=rootfs.xz vga=ask' > ./isolinux.cfg + echo 'default kernel.xz initrd=rootfs.xz' > ./isolinux.cfg genisoimage \ -J \ -r \ From 4a89a1a1968a997d6fe641341f6032fac6d577dc Mon Sep 17 00:00:00 2001 From: AwlsomeAlex Date: Sat, 1 Oct 2016 00:06:56 -0400 Subject: [PATCH 4/7] Minor Change --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index da24c0113..668181e94 100644 --- a/README.md +++ b/README.md @@ -52,5 +52,6 @@ After that simply run the below script. It doesn't require root privileges. In t -boot-info-table \ ./ 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. From 5091fa6d31aaed5c4d57e3f991ff6c8dd3297546 Mon Sep 17 00:00:00 2001 From: AwlsomeAlex Date: Sat, 1 Oct 2016 00:09:34 -0400 Subject: [PATCH 5/7] Small Tweak --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 668181e94..0ac9c4dab 100644 --- a/README.md +++ b/README.md @@ -38,7 +38,7 @@ After that simply run the below script. It doesn't require root privileges. In t 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.xz ./rootfs.xz + cp ../rootfs.cpio.gz ./rootfs.xz echo 'default kernel.xz initrd=rootfs.xz' > ./isolinux.cfg genisoimage \ -J \ From acf05db29e1531b4281b854fbf89360b607b2ae6 Mon Sep 17 00:00:00 2001 From: AwlsomeAlex Date: Sat, 1 Oct 2016 00:15:52 -0400 Subject: [PATCH 6/7] Changed Versions --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0ac9c4dab..9c999f093 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # 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. -The script below uses **Linux kernel 4.7.2** and **BusyBox 1.24.2**. 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: +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: sudo apt-get install wget bc build-essential gawk syslinux genisoimage From d3113fab8e21f32fa4cae88d5e31e2af84a8cac6 Mon Sep 17 00:00:00 2001 From: AwlsomeAlex Date: Sat, 1 Oct 2016 00:37:15 -0400 Subject: [PATCH 7/7] Added Extra Parameter --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9c999f093..516c1d78d 100644 --- a/README.md +++ b/README.md @@ -50,6 +50,7 @@ After that simply run the below script. It doesn't require root privileges. In t -no-emul-boot \ -boot-load-size 4 \ -boot-info-table \ + -joliet-long \ ./ isohybrid -u ../minimal_linux_live.iso 2>/dev/null || true cd ..