Having a bootable version of Arch Linux running totally off of a CD is useful in many ways. It can be used to rescue your system, test new machines and check if the hardware is Linux compatible, keep an updated installer with the latest packages, make a demo CD to show your projects, and much more.

−

=== Motivation - Why? ===

+

This article will give an overview of some methods available for creating your own Arch Linux-based live media. Please refer to the respective article for detailed information.

−

To have a bootable version of Arch Linux running totally off a CD, is useful in many ways. It can be made to rescue your HD system, test new machines / hardwares if Linux compatible, keep an updated installer with latest packages, or make a demo CD to show your projects, and much more.

−

=== Before we start - What you'll need ===

+

== Archiso ==

−

# To create an iso, format a filesystem, and to resize an image download "cdrtools" and "e2fsprogs" packages.

+

[[Archiso]] is the official tool used to build Arch Linux release images. It strongly follows the KISS principle and is easy to use. If you want to build your own updated Arch Linux live installation images, this tool will get you to your goal quickly, as the Git repository contains the exact profile used to generate these installation images. However, it can also be used for completely customizing your live medium. It relies on an Arch Linux host system.

−

# pacman -S cdrtools

−

# pacman -S e2fsprogs

−

# Free hard disk space:

−

* 1 fresh partition to install the distro.

−

* 1 folder in your active partition to copy the distro to be put on the CD.

When the packages are installed, install the kernel but don't install LILO or Grub. You can also copy your own kernel image (<tt>/boot/vmlinuz</tt>), and related modules (<tt>/lib/modules/2.x.x</tt>) from your active partition. To boot the new install, configure <tt>lilo.conf</tt> or <tt>grub</tt> in your active partition.

+

[[larch]] aims to provide a more desktop-based approach, and it does not require an Arch Linux host system.

−

'''Hint:'''For test purpose, to check for errors in the booting process, in your active partition mount the new partition and edit <tt>/etc/rc.local</tt> with the following lines to pause before login:

+

{{Note|

+

* As of version 2.6.39, the vanilla kernel no longer supports aufs, making a custom kernel a necessity.

+

* There is an AUFS version of the arch kernel in AUR - [https://aur.archlinux.org/packages/linux-aufs_friendly/ linux-aufs_friendly], and larch maintains an i686 build, you need not compile anything unless you want 64 bit.

+

}}

−

echo "Press any key to continue..."

+

== poison-livecd-creator ==

−

read KEY

+

It is a very simple live CD creator. It uses just a Makefile to build live CD images, and uses pacman to install base and additional packages to the live CD. You can choose your packages and build them into a live CD. Moreover, it uses [[GRUB]] to boot the live CD in order to add more flexibility. This means that it is much easier to make a live USB stick without formating it. For that, you just need to install GRUB into your USB pen drive and copy the files in the ISO to your root directory in the pen drive. It relies on an Arch Linux host system and [[pacman]].

−

'''NOTE:''' Don't forget to remove the pause!!

+

{{AUR|poison-livecd-creator}}.

−

In your active partition, in <tt>/root</tt> make one folder "''mylivecd''" and two sub-folders: "''isolinux''" and "''system''" (any names can be used).

+

== Linux-pf ==

+

It supports aufs among other things, making it an option for live CDs.

−

# cd /root

+

{{AUR|linux-pf}}.

−

# mkdir mylivecd

−

# cd mylivecd

−

# mkdir isolinux

−

# mkdir system

−

==== Install isolinux. Copy it from an existing live CD.====

+

{{Note|As of version 2.6.39, the vanilla kernel no longer supports aufs, making a custom kernel a necessity.}}

Miniroot is loaded in RAM during booting and operates same as in HD. Use Ext2 filesystem.

−

−

'''NOTE:''' Miniroot setup depends on <tt>/etc/inittab</tt>, <tt>/etc/rc.sysinit</tt>, <tt>/etc/rc.multi</tt>, and <tt>/etc/rc.shutdown</tt>. Before building the miniroot image, study these files and plan how they can be modified whenever is needed. In <tt>/sbin</tt> the following files are required: <br>

# Create "''miniroot''" (text file) in <tt>/root/mylivecd</tt> with Ext2 filesystem. The image size depends how much stuff you plan to include. In this sample we will make the image 15.8MB but its recommended to make the image as small as possible. When you are ready, mount the image in <tt>/mnt/xxx</tt> (here we mount in <tt>/mnt/image</tt>).

−

# cd /root/mylivecd

−

# touch miniroot

−

# mkfs.ext2 miniroot 15840 (press "y" for each question)

−

# mkdir /mnt/image

−

# mount -t auto -o loop miniroot /mnt/image

−

# rm -R /mnt/image/lost+found

−

'''NOTE:''' If you want to resize, run the following codes (e.g. to 11.5MB):

# Create the following folders in <tt>/mnt/image</tt> and copy <tt>/mnt/tmp/lib</tt> files to <tt>/mnt/image/lib/</tt> (don't copy <tt>/mnt/tmp/lib/module</tt>, <tt>~/lib/evms</tt> and <tt>~/lib/security)</tt>:

−

# cd /mnt/image

−

# mkdir dev

−

# mkdir home

−

# mkdir lib

−

# mkdir mnt/cdrom

−

# mkdir mnt/floppy

−

# mkdir root

−

# mkdir proc

−

# mkdir lib/modules

−

# cd /mnt/tmp/lib/

−

# cp -a l* /mnt/image/lib/

−

#With the folders <tt>/usr</tt> and <tt>/opt</tt> create links in <tt>/mnt/image/</tt>. Also link the <tt>/system/lib/modules/2.x.x/</tt>. Copy kernel image to <tt>/root/mylivecd/isolinux/</tt>:

−

# cd /mnt/image

−

# ln -sf /mnt/cdrom/system/usr usr

−

# ln -sf /mnt/cdrom/system/opt opt

−

# cd /mnt/image/lib/modules/

−

# ln -sf /mnt/cdrom/system/lib/modules/2.4.22 2.4.22

−

# cd /mnt/image/lib/

−

# ln -sf /mnt/cdrom/system/lib/evms evms

−

# ln -sf /mnt/cdrom/system/lib/security security

−

# cp /mnt/tmp/boot/vmlinuz /root/mylivecd/isolinux/

−

# Edit <tt>/mnt/image/etc/fstab as shown here:</tt>

−

/dev/root / ext2 defaults 0 0

−

none /proc proc defaults 0 0

−

/dev/floppy/0 /mnt/floppy auto user,rw,noauto,unhide 0 0

−

/dev/cdroms/cdrom0 /mnt/cdrom iso9660 ro,user,noauto,unhide 0 0

−

# Add the following line in <tt>rc.sysinit</tt> (after line: <tt>stat_busy "Mounting Local Filesystems"</tt>) in <tt>/mnt/image/etc/</tt>. This enables reading files from the CD's /system folder.

−

/bin/mount /dev/cdroms/cdrom0 /mnt/cdrom -o ro -t iso9660

−

# Compress the miniroot and move miniroot.gz to /root/mylivecd/isoliux/

−

# cd /root/mylivecd/

−

# umount /mnt/image

−

# gzip -c miniroot >> miniroot.gz

−

# mv miniroot.gz isolinux/

−

# Before compiling iso, move the <tt>/root/mylivecd/miniroot</tt> to a safe place. Make a temporary folder to put the iso image (not within <tt>/mylivecd</tt>). Run the following code (don't miss the "." at the end of line):

−

# cd /root/mylivecd

−

# mkdir /root/isotmp

−

# Make the ISO:

−

mkisofs -o /root/isotmp/test-livecd-0.1.iso -R -V "Test 0.1" \

−

-T -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot \

−

-boot-load-size 4 -boot-info-table -A "Test Live CD 0.1" .

−

−

==== Conclusion ====

−

We hope this document gets you started. Any comments or addition, please either edit the content or post reply (requires to register). Good luck!

−

−

------

−

−

=== Additional Info:===

−

−

Codes, content of AMLUG Live CD, and how to compress:

−

http://www.amlug.net/new-projects/forum/index.php?showforum=23

−

−

How other distros build live CDs:

−

http://www.babytux.org/articles/howto/how2livecd.php

−

----

Revision as of 22:11, 6 November 2013

Having a bootable version of Arch Linux running totally off of a CD is useful in many ways. It can be used to rescue your system, test new machines and check if the hardware is Linux compatible, keep an updated installer with the latest packages, make a demo CD to show your projects, and much more.

This article will give an overview of some methods available for creating your own Arch Linux-based live media. Please refer to the respective article for detailed information.

Contents

Archiso

Archiso is the official tool used to build Arch Linux release images. It strongly follows the KISS principle and is easy to use. If you want to build your own updated Arch Linux live installation images, this tool will get you to your goal quickly, as the Git repository contains the exact profile used to generate these installation images. However, it can also be used for completely customizing your live medium. It relies on an Arch Linux host system.

larch

larch aims to provide a more desktop-based approach, and it does not require an Arch Linux host system.

Note:

As of version 2.6.39, the vanilla kernel no longer supports aufs, making a custom kernel a necessity.

There is an AUFS version of the arch kernel in AUR - linux-aufs_friendly, and larch maintains an i686 build, you need not compile anything unless you want 64 bit.

poison-livecd-creator

It is a very simple live CD creator. It uses just a Makefile to build live CD images, and uses pacman to install base and additional packages to the live CD. You can choose your packages and build them into a live CD. Moreover, it uses GRUB to boot the live CD in order to add more flexibility. This means that it is much easier to make a live USB stick without formating it. For that, you just need to install GRUB into your USB pen drive and copy the files in the ISO to your root directory in the pen drive. It relies on an Arch Linux host system and pacman.