summaryrefslogtreecommitdiffstats
path: root/build_tools/l7/larch0/docs/html/larchify.html
diff options
context:
space:
mode:
authorCecil Hugh Watson <knoppmyth@gmail.com>2010-08-28 21:23:23 (GMT)
committerCecil Hugh Watson <knoppmyth@gmail.com>2010-08-28 21:23:23 (GMT)
commitf83117d46d8fc1f6192783371a68607a192c3276 (patch)
tree21bf30aeb943fe6cb23eb9c62a0ba899de2af0d7 /build_tools/l7/larch0/docs/html/larchify.html
parent69a0137390be9816d5ec5dc9e81d48817a817758 (diff)
downloadlinhes_dev-f83117d46d8fc1f6192783371a68607a192c3276.zip
Larch 7
Diffstat (limited to 'build_tools/l7/larch0/docs/html/larchify.html')
-rw-r--r--build_tools/l7/larch0/docs/html/larchify.html151
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>