403 lines
19 KiB
HTML
403 lines
19 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<title>Minimal Linux Live</title>
|
|
<meta name="description" content="Minimal Linux Live">
|
|
<meta name="keywords" content="minimal minimalistic tiny linux live tutorial howto kernel busybox cd usb iso image" />
|
|
<meta name="author" content="Ivan Davidov - davidov (dot) i [at] gmail {dot} com">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
|
|
<link rel="stylesheet" href="css/normalize.css">
|
|
<link rel="stylesheet" href="css/skeleton.css">
|
|
|
|
<link rel="icon" type="image/x-icon" href="./images/favicon.ico" />
|
|
|
|
<script language="JavaScript" type="text/javascript">
|
|
function menuSwap(itemIndex) {
|
|
for(var i = 1; i <= 5; i++) {
|
|
var strItem = "item" + i;
|
|
var objItem = document.getElementById(strItem);
|
|
objItem.style.display = (i == itemIndex) ? "block" : "none";
|
|
}
|
|
}
|
|
|
|
function logSwap(itemIndex, show) {
|
|
for(var i = 1; i <= 3; i++) {
|
|
var showObj = document.getElementById("show" + i);
|
|
var hideObj = document.getElementById("hide" + i);
|
|
var textObj = document.getElementById("text" + i);
|
|
|
|
if(i == itemIndex) {
|
|
if(show == true) {
|
|
showObj.style.display = "none";
|
|
hideObj.style.display = "block";
|
|
textObj.style.display = "block";
|
|
} else {
|
|
showObj.style.display = "block";
|
|
hideObj.style.display = "none";
|
|
textObj.style.display = "none";
|
|
}
|
|
} else if(show == true) {
|
|
showObj.style.display = "block";
|
|
hideObj.style.display = "none";
|
|
textObj.style.display = "none";
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
</head>
|
|
<body>
|
|
<div class="container">
|
|
<div class="row">
|
|
<div class="twelve columns" style="text-align: center;">
|
|
<h2><a href="/" style="text-decoration: none; color: #000;">Minimal Linux Live</a></h2>
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="twelve columns" style="text-align: center;">
|
|
<a class="button button-primary" href="#" onclick="javascript:menuSwap(1); return false;">Home</a>
|
|
<a class="button button-primary" href="#" onclick="javascript:menuSwap(2); return false;">Changes</a>
|
|
<a class="button button-primary" href="#" onclick="javascript:menuSwap(3); return false;">About</a>
|
|
<a class="button button-primary" href="#" onclick="javascript:menuSwap(4); return false;">Tutorial</a>
|
|
<a class="button button-primary" href="#" onclick="javascript:menuSwap(5); return false;">Download</a>
|
|
<hr />
|
|
</div>
|
|
</div>
|
|
<div id="item1" style="display:block;">
|
|
<div class="row">
|
|
<div class="twelve columns">
|
|
<h4>Home</h4>
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="twelve columns">
|
|
<strong>Minimal Linux Live</strong> is a set of Linux shell scripts which automatically build minimal Live
|
|
Linux OS based on <a target="_blank" href="http://kernel.org">Linux kernel</a>
|
|
and <a target="_blank" href="http://busybox.net">BusyBox</a>. All necessary source codes are automatically
|
|
downloaded and all build operations are fully encapsulated in the scripts.
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="twelve columns">
|
|
If you want to build your own Minimal Linux Live ISO image file, all you need to do is the following:
|
|
</div>
|
|
</div>
|
|
<div style="font-size: 10%;"> </div>
|
|
<div class="row">
|
|
<div class="twelve columns">
|
|
<ul>
|
|
<li>
|
|
Get the latest scripts from the <a href="#" onclick="javascript:menuSwap(5); return false;">download</a> section.
|
|
</li>
|
|
<li>
|
|
Extract the scripts to some folder.
|
|
</li>
|
|
<li>
|
|
Just for convenience, make sure that all scripts are executable (<code>chmod +x *.sh</code>). If you decide to skip this step you
|
|
can still run the scripts like this (example): <code>sh build_minimal_linux_live.sh</code>
|
|
</li>
|
|
<li>
|
|
Depending on which Linux OS you are using, there might be one or more (or none, or even more) build dependencies that you
|
|
need to resolve before you start the build process. If you work with <a target="_blank" href="http://ubuntu.com">Ubuntu</a>,
|
|
the following commands should resolve all necessary build dependencies:
|
|
<ul>
|
|
<li>
|
|
<code>sudo apt-get install wget</code>
|
|
</li>
|
|
<li>
|
|
<code>sudo apt-get install make</code>
|
|
</li>
|
|
<li>
|
|
<code>sudo apt-get install gcc</code>
|
|
</li>
|
|
<li>
|
|
<code>sudo apt-get install bc</code>
|
|
</li>
|
|
<li>
|
|
<code>sudo apt-get install syslinux</code>
|
|
</li>
|
|
<li>
|
|
<code>sudo apt-get install genisoimage</code>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li>
|
|
Execute the script <code>build_minimal_linux_live.sh</code> and wait. If you have resolved all build dependencies, the whole
|
|
process should take less than 30 minutes on a modern computer. If the build fails for some reason, most probably there
|
|
are unresolved build dependencies. Several users reported that the <code>build-essential</code> package resolves all unexpected
|
|
build dependencies for Ubuntu. If you are using <a target="_blank" href="http://linuxmint.com">Linux Mint</a> try to
|
|
install the package <code>g++</code> and if you still have troubles then try the <code>build-essential</code> package. On
|
|
<a target="_blank" href="http://fedoraproject.org">Fedora</a> you might need the static 'glibc' package <code>glibc-static</code>.
|
|
On <a target="_blank" href="http://www.archlinux.org/">Arch Linux</a> you might need to locate <code>isolinux.bin</code> and copy
|
|
it to <code>/usr/lib/syslinux/isolinux.bin</code>.
|
|
<div style="font-size: 10%;"> </div>
|
|
Please have in mind that the build dependencies can vary a lot depending on the Linux OS which you use and the software
|
|
which you have already installed.
|
|
<div style="font-size: 10%;"> </div>
|
|
If you still have troubles then examine the failure message and google it. If you are unable to find solution, then you
|
|
can ask someone more experienced Linux guru (if you know any) or as alternative you can contact me. Please, make sure that
|
|
you have researched your problem in advance before you send me your question.
|
|
</li>
|
|
<li>
|
|
When the scripts finish their job you will find newly created <code>minimal_linux_live.iso</code> in the same folder where you
|
|
executed the scripts. You can burn the ISO image file on CD/DVD, install it on USB flash drive via
|
|
<a target="_blank" href="http://www.pendrivelinux.com">Universal USB Installer</a>,
|
|
or run it directly via PC emulator like <a target="_blank" href="http://virtualbox.org">VirtualBox</a>.
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="twelve columns">
|
|
The produced ISO image file contains Linux kernel compiled with default options, BusyBox compiled with default options and very simple
|
|
initramfs. This means that you don't get Windows support out of the box, nor you get any fancy desktop environment. All you
|
|
get is a simple shell console which supports all BusyBox applets and... well, that's all. This is why it's called "minimal".
|
|
</div>
|
|
</div>
|
|
<div style="font-size: 10%;"> </div>
|
|
<div class="row">
|
|
<div class="twelve columns">
|
|
The good news is that even though the OS is small and simple, the build scripts are also very small and very simple. You can
|
|
quite easily learn from the scripts and later modify them to include more stuff (I encourage you to do so). After you learn
|
|
the basics you will have all the necessary tools and skills to create your own fully functional Linux based operating system!
|
|
Entirely from scratch! Isn't it great?! :)
|
|
</div>
|
|
</div>
|
|
<div style="font-size: 10%;"> </div>
|
|
<div class="row">
|
|
<div class="twelve columns">
|
|
The <a href="#" onclick="javascript:menuSwap(4); return false;">tutorial</a> provides more details about the inner structure
|
|
of the scripts and the overall build process. I encourage you to go through this document when you have the time.
|
|
</div>
|
|
</div>
|
|
<div style="font-size: 10%;"> </div>
|
|
<div class="row">
|
|
<div class="twelve columns">
|
|
Below you can find several screenshots which show what the environment looks like when you boot your newly generated
|
|
Minimal Linux Live OS.
|
|
</div>
|
|
</div>
|
|
<div style="font-size: 10%;"> </div>
|
|
<div class="row">
|
|
<div class="four columns">
|
|
<a href="./images/screen1.png" target="_blank" title="Minimal Linux Live - screenshot 1">
|
|
<img alt="Minimal Linux Live" id="screenshot1" width="100%" height="100%" border="0" src="./images/screen1.png" />
|
|
</a>
|
|
</div>
|
|
<div class="four columns">
|
|
<a href="./images/screen2.png" target="_blank" title="Minimal Linux Live - screenshot 2">
|
|
<img alt="Minimal Linux Live" id="screenshot1" width="100%" height="100%" border="0" src="./images/screen2.png" />
|
|
</a>
|
|
</div>
|
|
<div class="four columns">
|
|
<a href="./images/screen3.png" target="_blank" title="Minimal Linux Live - screenshot 3">
|
|
<img alt="Minimal Linux Live" id="screenshot1" width="100%" height="100%" border="0" src="./images/screen3.png" />
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div id="item2" style="display:none;">
|
|
<div class="row">
|
|
<div class="twelve columns">
|
|
<h4>Change Log</h4>
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="twelve columns">
|
|
<div id="show3" style="display:none;">
|
|
<strong>07-Feb-2015</strong>
|
|
<a href="#" onclick="javascript:logSwap(3, true); return false;">show</a>
|
|
</div>
|
|
<div id="hide3" style="display:block;">
|
|
<strong>07-Feb-2015</strong>
|
|
<a href="#" onclick="javascript:logSwap(3, false); return false;">hide</a>
|
|
</div>
|
|
<div id="text3" style="display:block;">
|
|
<ul>
|
|
<div style="font-size: 10%;"> </div>
|
|
<li>
|
|
<strong>Minimal Linux Live</strong> is now based on <strong>Linux kernel 3.18.6</strong> and <strong>BusyBox 1.23.1</strong>.
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div style="font-size: 10%;"> </div>
|
|
<div id="show2" style="display:block;">
|
|
<strong>25-Aug-2014</strong>
|
|
<a href="#" onclick="javascript:logSwap(2, true); return false;">show</a>
|
|
</div>
|
|
<div id="hide2" style="display:none;">
|
|
<strong>25-Aug-2014</strong>
|
|
<a href="#" onclick="javascript:logSwap(2, false); return false;">hide</a>
|
|
</div>
|
|
<div id="text2" style="display:none;">
|
|
<div style="font-size: 10%;"> </div>
|
|
<ul>
|
|
<li>
|
|
<strong>Minimal Linux Live</strong> is now based on <strong>Linux kernel 3.16.1</strong> and <strong>BusyBox 1.22.1</strong>.
|
|
</li>
|
|
<li>
|
|
The boot process is now based on <strong>/sbin/init</strong> and <strong>/etc/inittab</strong>. There are four
|
|
available consoles. You can switch between them with <strong>Alt + F1</strong> up to <strong>Alt + F4</strong>.
|
|
</li>
|
|
<li>
|
|
Shell scripts have been updated. Now the downloaded source bundles are stored in separate folder.
|
|
If the download process is interrupted, it will continue the next time the scripts are executed.
|
|
The most notable change is in <strong>5_generate_rootfs.sh</strong> which now generates root file system with
|
|
structure compatible with <strong>/sbin/init</strong> and <strong>/etc/inittab</strong>.
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div style="font-size: 10%;"> </div>
|
|
<div id="show1" style="display:block;">
|
|
<strong>28-Jul-2014</strong>
|
|
<a href="#" onclick="javascript:logSwap(1, true); return false;">show</a>
|
|
</div>
|
|
<div id="hide1" style="display:none;">
|
|
<strong>28-Jul-2014</strong>
|
|
<a href="#" onclick="javascript:logSwap(1, false); return false;">hide</a>
|
|
</div>
|
|
<div id="text1" style="display:none;">
|
|
<div style="font-size: 10%;"> </div>
|
|
<ul>
|
|
<li>
|
|
<strong>Minimal Linux Live</strong> is now based on <strong>Linux kernel 3.15.6</strong> and <strong>BusyBox 1.22.1</strong>.
|
|
</li>
|
|
<li>
|
|
The boot process is based on simple <strong>/init</strong> script.
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div id="item3" style="display:none;">
|
|
<div class="row">
|
|
<div class="twelve columns">
|
|
<h4>About This Project</h4>
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="twelve columns">
|
|
My name is <a target="_blank" href="http://linkedin.com/in/ivandavidov">Ivan Davidov</a> and I currently
|
|
live and work in <a target="_blank" href="http://en.wikipedia.org/wiki/Sofia">Sofia</a>,
|
|
<a target="_blank" href="http://en.wikipedia.org/wiki/Bulgaria">Bulgaria</a>.
|
|
</div>
|
|
</div>
|
|
<div style="font-size: 10%;"> </div>
|
|
<div class="row">
|
|
<div class="twelve columns">
|
|
I am professional Java software engineer (yes, Java developers tend to know some Linux stuff) and I've
|
|
been trying to create my own Linux OS for a very long time. There are some good tutorials which you
|
|
can find online but almost none of them are simple to follow and almost none of them explain in details
|
|
what has been done and why it's done in this particular way. In most cases the tutorials are incomplete and
|
|
there is high chance that you end up with something broken.
|
|
</div>
|
|
</div>
|
|
<div style="font-size: 10%;"> </div>
|
|
<div class="row">
|
|
<div class="twelve columns">
|
|
Don't get me wrong, you can learn a lot from these tutorials, as I did. In fact the scripts which I created
|
|
(did you take a look at them?) are based on the same information resources which you might have already found.
|
|
The difference is that this site provides you not only with detailed tutorial, but also with fully functional
|
|
set of shell scripts which automatically build fully functional live Linux OS. And the tutorial explains it
|
|
all for you!
|
|
</div>
|
|
</div>
|
|
<div style="font-size: 10%;"> </div>
|
|
<div class="row">
|
|
<div class="twelve columns">
|
|
If you'd like to contact me, my e-mail is: <strong>davidov [dot] i (at) gmail {dot} com</strong>
|
|
</div>
|
|
</div>
|
|
<div style="font-size: 10%;"> </div>
|
|
<div class="row">
|
|
<div class="twelve columns">
|
|
My LinkedIn profile is here: <a target="_blank" href="http://linkedin.com/in/ivandavidov">http://linkedin.com/in/ivandavidov</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div id="item4" style="display:none;">
|
|
<div class="row">
|
|
<div class="twelve columns">
|
|
<h4>Minimal Linux Live Tutorial</h4>
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="twelve columns">
|
|
Would you like to learn how to build your own minimal live Linux OS?
|
|
</div>
|
|
</div>
|
|
<div style="font-size: 10%;"> </div>
|
|
<div class="row">
|
|
<div class="twelve columns">
|
|
<a target="_blank" href="./the_dao_of_minimal_linux_live.txt">The Dao of Minimal Linux Live</a> explains in details
|
|
what steps are involved in creating simple live Linux OS entirely from scratch, the inner structure of the
|
|
build scripts (I assume you have already downloaded them) and provides you with more information on how to
|
|
improve/upgrade the generated OS with other generic stuff (e.g. users & groups, /etc/inittab).
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div id="item5" style="display:none;">
|
|
<div class="row">
|
|
<div class="twelve columns">
|
|
<h4>Download Section</h4>
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="twelve columns">
|
|
The latest stable scripts (07-Feb-2015) can be downloaded as ZIP archive
|
|
<a href="./download/minimal_linux_live_07-Feb-2015_src.zip" title="Minimal Linux Live - shell scripts">here</a>.
|
|
</div>
|
|
</div>
|
|
<div style="font-size: 10%;"> </div>
|
|
<div class="row">
|
|
<div class="twelve columns">
|
|
Pre-built ISO image files generated with the latest stable scripts are available for
|
|
<a href="./download/minimal_linux_live_07-Feb-2015_32-bit.iso" title="Minimal Linux Live - ISO image file for 32-bit CPUs">32-bit</a>
|
|
and
|
|
<a href="./download/minimal_linux_live_07-Feb-2015_64-bit.iso" title="Minimal Linux Live - ISO image file for 64-bit CPUs">64-bit</a>
|
|
CPUs.
|
|
</div>
|
|
</div>
|
|
<div style="font-size: 10%;"> </div>
|
|
<div class="row">
|
|
<div class="twelve columns">
|
|
You can also <a target="_blank" href="./download">browse the download directory</a>.
|
|
</div>
|
|
</div>
|
|
<div style="font-size: 10%;"> </div>
|
|
<div class="row">
|
|
<div class="twelve columns">
|
|
You can take a look at the latest development sources in
|
|
<a target="_blank" href="http://github.com/ivandavidov/minimal">GitHub</a>.
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div style="font-size: 10%;"> </div>
|
|
<div style="font-size: 10%;"> </div>
|
|
<div class="row">
|
|
<div class="twelve columns" style="text-align: center;">
|
|
<a class="button" href="#">Go to top</a>
|
|
</div>
|
|
</div>
|
|
<div style="font-size: 10%;"> </div>
|
|
<div class="row" style="text-align: center;">
|
|
<div class="twelve columns">
|
|
Copyright ©2015
|
|
<span class="separator">|</span>
|
|
<a href="/" title="Minimal Linux Live">Minimal Linux Live</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<script>
|
|
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
|
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
|
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
|
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
|
|
ga('create', 'UA-53254151-1', 'auto');
|
|
ga('send', 'pageview');
|
|
</script>
|
|
</body>
|
|
</html>
|