diff options
Diffstat (limited to 'build_tools/l7/larch0/docs/html/larchify.html')
-rw-r--r-- | build_tools/l7/larch0/docs/html/larchify.html | 151 |
1 files changed, 151 insertions, 0 deletions
diff --git a/build_tools/l7/larch0/docs/html/larchify.html b/build_tools/l7/larch0/docs/html/larchify.html new file mode 100644 index 0000000..3c44db1 --- /dev/null +++ b/build_tools/l7/larch0/docs/html/larchify.html @@ -0,0 +1,151 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> + +<html> +<head> +<meta http-equiv="Content-type" content="text/html; charset=utf-8" /> +<title>Building the live system</title> +<!-- (en) Add your meta data here --> + +<link href="css/larchdocs.css" rel="stylesheet" type="text/css"/> +<!--[if lte IE 7]> +<link href="css/yaml/core/iehacks.css" rel="stylesheet" type="text/css" /> +<![endif]--> +</head> + +<body> +<!-- skip link navigation --> +<ul id="skiplinks"> + <li><a class="skip" href="#col1">Skip to main content (Press Enter).</a></li> +</ul> + +<div class="page_margins"> + <div class="page"> + <div id="top"><div id="tm"></div></div> + <!-- begin: #col1 --> + <div id="col1" role="main"> + <div id="col1_content"> + <div id="header" role="banner"> + <h1><span><em>live Arch Linux</em> builder</span></h1> + </div> + + <!-- begin: #col3 navigation column --> + <div id="col3" role="complementary"> + <div id="col3_content"> + <img class="indent2" alt="larch logo" src="css/screen/larch150x.png" width="150" height="150" /> + <div class="vlist"> + <ul> + <li><a href="index.html"><h6>Table Of Contents</h6></a></li> + <li><a href="medium.html"><h6>Next:</h6> + <div class="indent1">Preparing the larch live medium</div></a></li> + <li><a href="archin.html"><h6>Previous:</h6> + <div class="indent1">Installation of the base Arch system</div></a></li> + </ul> + </div> + </div> + </div> + <!-- end: #col3 --> + +<div class="larchdocs"> +<h2 id="pagetitle" level="1">Building the <em>live</em> system</h2> + + +<p>Once we have an <em>Arch Linux</em> installation and have specified our +customizations in the profile, we can combine all this information into two +squashfs archives and an <em>initramfs</em> (to allow the <em>live</em> system +to boot). Let's call this step 'larchification' (from the verb 'larchify'). +The lowest layer in the <em>aufs</em> mount is the raw installation, +which is compressed into a <em>squashfs</em> archive, 'system.sqf'. +All the modifications specified in the profile, as well, as some +common to all <em>larch</em> systems are in the archive 'mods.sqf', which +'overlays' the basic installation. +</p> + +<p>For details of the structure of the <em>live</em> system which is built +by this stage see <a href="larch_live_system.html">this page</a>. +The bulk of the code in the <em>larchify</em> script is concerned with +building the 'mods.sqf' overlay, and a description of the main possibilities +for customizing the build process are covered in +<a href="profiles.html">the profiles documentation</a>. +</p> + +<h3><a name="mkinitcpio"></a><em>mkinitcpio</em> and the <em>initramfs</em></h3> + +<p>In order to build a suitable <em>initramfs</em> for a <em>larch</em> +system, a customized version of 'mkinitcpio.conf' is required. How +<em>larch</em> handles this is quite complicated because it aims to retain +the normal files so that the <em>live</em> system can later be installed +as a normal <em>Arch Linux</em> system, whilst at the same time offering +the capability of updating (with 'pacman -Syu') the <em>live</em> system, +including the kernel (thus requiring regeneration of the <em>initramfs</em> +for the system). +The consequence of this ambition is that modifications are made +within '/etc/mkinitcpio.d' (which are reversible when the <em>live</em> +system is installed as normal <em>Arch Linux</em> system) and a special +<em>mkinitcpio</em>' configuration file, '/etc/mkinitcpio.conf.larch' +is generated automatically (and thus should not be +touched by human hands!) from '/etc/mkinitcpio.conf.larch0'. +If you need to know more see the method 'Builder.gen_initramfs' in +'cli/larchify.py'. +</p> + +<h3><a name="reuseSystem"></a>Rebuilding using an existing 'system.sqf'</h3> + +<p>In order to aid experimentation with profile tweaks which do not affect +the underlying installation, it is possible to repeat the 'larchify' step +without rebuilding the 'system.sqf' archive, which saves quite a bit of time +(this is achieved by passing the '-o' option to 'larch-larchify' when running +from the command line). +</p> + +<h3><a name="existingSystem"></a>Making a <em>live</em> system from an +existing <em>Arch</em> installation</h3> + +<p>By setting the installation path (with the '-i' option if using the +command line) to an existing <em>Arch</em> installation, +a <em>live</em> medium can be made from it. +The installation must already be mounted, including any sub-mounts +(e.g. /home on another partition). The main mount must be with +options 'exec,dev', because most of the building is done via a <em>chroot</em> +to the installation. This approach to <em>live</em> system generation is +probably not a good idea if the installation contains a lot of data - +consider how big the result will be ... +</p> + +<p>Also the currently running (<em>Arch</em> only!) system can be +<em>larchified</em>, by setting the installation path to '/'. +This is, however, not recommended. Building from a running system can easily +result in data corruption because the file-system might well change during +the build process. +</p> + +<p>Note that some things in '/var' will not be included in the 'live' system. +Firstly, the standard <em>pacman</em> package cache ('/var/cache/pacman/pkg') +will be excluded. +Also the log files (in '/var/log') and '/var/tmp' (temporary files, like '/tmp') +are not saved. As some files in '/var/log' are required for certain aspects of +logging to function, these are recreated in the <em>initramfs</em>. +</p> + +</div> + + + <div class="topref"><a href="#top">Top</a></div> + </div> + <!-- begin: #footer --> + <div id="footer"> + <div id="footer-content" role="contentinfo">© 2010 Michael Towers<br /> + Page layout assisted by <a href="http://www.yaml.de/">YAML</a> and + <a href="http://www.kuwata-lab.com/tenjin/">pyTenjin</a> + </div> + </div> + <!-- end: #footer --> + </div> + <!-- end: #col1 --> + <div id="bottom"><div id="bl"><div id="bm"></div></div></div> + </div> +</div> +<!-- full skiplink functionality in webkit browsers --> +<script src="css/yaml/core/js/webkit-focusfix.js" type="text/javascript"></script> +</body> +</html> |