r1076 - trunk

robert at linuxfromscratch.org robert at linuxfromscratch.org
Thu Aug 9 02:33:57 PDT 2007


Author: robert
Date: 2007-08-09 03:33:57 -0600 (Thu, 09 Aug 2007)
New Revision: 1076

Added:
   trunk/squashfs.txt
Log:
Added new squashfs hint

Added: trunk/squashfs.txt
===================================================================
--- trunk/squashfs.txt	                        (rev 0)
+++ trunk/squashfs.txt	2007-08-09 09:33:57 UTC (rev 1076)
@@ -0,0 +1,111 @@
+AUTHOR: Kevin Annies (kevinannies at hotmail.com)
+
+
+DATE: 2003-08-15
+
+LICENSE: GNU Free Documentation License Version 1.2
+
+SYNOPSIS: Implement squashfs to create a compressed /usr image for a live cd.
+
+DESCRIPTION:
+This hint is a guide to creating a compressed /usr image as /usr usually tends 
+to be the larget directory on a system. The user is then given a quick example 
+of how to implement this on a Live CD by mounting the image at boot time.
+
+ATTACHMENTS:
+http://squashfs.sourceforge.net/
+
+PREREQUISITES:
+A complete LFS system
+The kernel source code
+
+
+HINT:
+
+Introduction
+To start with a full explanation of Squashfs can be found at the following 
+link: http://squashfs.sourceforge.net/ if you have trouble undertanding this hint
+If you are short of space on your 
+machine or would like to create a live cd containing lots of software, this hint is ideal for you
+
+
+				Acquiring Squashfs 
+
+The source code can also be downloaded from this site	
+				http://squashfs.sourceforge.net/
+
+The package used in this hint is squashfs3.2-r2. The document 
+located at www.artemio.net/projects/linuxdoc/squashfs/SquashFS-HOWTO.html was
+refrenced and adapted to the circumstance of the hint.
+
+
+			Patching and recompiling the Kernel
+
+In order to use squashfs, the kernel needs to have a patch applied.Un pack the source tar ball. 
+	tar xvfz squashfs3.2-r2.tar.gz
+
+
+The patch can be found in /linux-2.6.16 of the source code directory. The patch we require 
+is called: linux-2.6.16.27-utf8_input-1.patch 
+
+Move the patch to the directory the kernel source is located at. apply the patch using the following command:
+
+	patch -Np1 -i ../linux-2.6.16.27-utf8_input-1.patch
+
+The menu driven kernel configuration must then be initiated again and squashfs must be 
+selected within the supported file systems menu.
+
+
+			Compiling mksquashfs
+To compile the sourcecode, navigate to the /squashfs-tools directory within the sourcecode 
+and type make. Following compilation, copy the executable file to a more appropriate directory:
+	cp mksquashfs /usr/sbin
+
+To check everything went accordingly, type mksquashfs and the help dialogue associated with 
+the command will be displayed.
+
+
+				Using Squashfs
+On our system, /usr is by far the biggest directory. The most simple and logical approach 
+would be to compress this directory and then uncompress and mount during the system boot. As /usr 
+is not needed early during this boot process and exists generally as a read only directory this is 
+a safe procedure.
+
+A compressed file can be created using the following command from the top level root directory:
+		mksquashfs /usr usr.sqsh
+
+Depending on how large the /usr directory is, this command can take a while to execute so maybe go grab a cofee....
+Once done, the resulting usr.sqsh file can be copied to the Live CD partition. The /usr directory on the CD must 
+then be emptied:
+
+		rm-fr $LIVECD/usr/*
+
+Finally create a small start-up script  in $LIVECD/etc/rc.d/init.d called usr or something similar. 
+ Insert the following text:
+
+#!/bin/bash 
+
+	  	mount /usr.sqsh /usr -o loop
+  
+Make the file executable. Next create a symbolic link:
+
+		ln –l $LIVECD/etc/rc.d/init.d/usr $LIVECD/etc/rc.d/rcsysinitt/S35usr
+
+This will trigger the kernel to mount the usr.sqsh image to the /usr directory during the 
+system boot process. Upon logging on, the /usr directory will be fully populated and appear to be 
+exactly as it was before we compressed it. 
+
+
+Thats all there is to it. Please feel free to contact me if you have an alternative way of doing this.
+
+As a final comment, I implemented this on a CD using an initrd using this procedure.
+
+ACKNOWLEDGEMENTS:
+  * Artemiy I. Pavlov - for writing the SquashFS HOWTO document
+  * Micheal Hernandez - For writing the begginers guide to creating a Live CD hint
+
+CHANGELOG:
+[2007-04-11]
+  * Initial hint.
+
+




More information about the hints mailing list