Remastering the Install ISO

From ArchWiki
Revision as of 21:29, 6 September 2011 by Strcat (Talk | contribs) (<tt>text</tt> -> {{Codeline|text}})

Jump to: navigation, search

Tango-view-refresh-red.pngThis article or section is out of date.Tango-view-refresh-red.png

Reason: please use the first argument of the template to provide a brief explanation. (Discuss in Talk:Remastering the Install ISO#)

Introduction

Remastering the official Arch Linux install ISO image is not necessary for most applications. However, in some circumstances it is desirable. A short, and non-inclusive list includes:

  • Basic hardware is not supported by the core install. (A rare circumstance)
  • Installation on a non-internet capable machine.
  • Deployment of Arch Linux on many similar machines, requiring the same installation procedure, and the administrator does not have the time (or desire) to install each machine manually.

Preparation

To remaster the Arch Linux ISO, you will need a copy of the original ISO image. Download it from the download page

Tip: remember that # means that it must be done by root, while $ means that it should be done by a user.

Now, create a new directory to mount the ISO:

# mkdir /mnt/archiso

Mount the ISO to this directory (note that it is mounted read-only):

# mount -o loop /path/to/archISO /mnt/archiso

Now that the ISO is mounted, we must copy its contents to another directory, where they can be edited:

$ cp -a /mnt/archiso ~/customiso

Customizations

5. Edit the contents of newiso as needed.

  • Some helpful hints:
    • The kernels (IDE and scsi) that are booted by the cd are found at isolinux/vmlinuz and isolinux/vmlinuz_scsi, you may want to replace them with home-brewed ones. I recomend that you don't use your own, completely new, configs, but instead fetch the ones out of the kernels that already exist and edit as desired, this can be done using scripts/extract-ikconfig from any kernel source tree
    • Kernel sources, as well as default Arch kernel configs, which are used if a user chooses to build a kernel at install time are located at arch/
    • The filesystem you are given while in the install environment is at root-image.sqfs, if you'd like to edit this:

a. Copy it to another location

cp root-image.sqfs ~

b. Extract the sqfs image from the file (the package squashfs-tools is needed for this)

unsquashfs root-image.sqfs 

c. This will generate a new folder called squashfs-root whith the root file system in it. You can do a chroot into this folder to be able to install new software in the image using pacman.

chroot squashfs-root

d. When you're done fiddling around, create the new squashfs image

mksquashfs squashfs-root root-image.sqfs

e. You'll now have a new root-image.sqfs, which you can copy back to your ISO, replacing the old one

cp root-image.sqfs newiso/root-image.sqfs
  • The packages which are included on the cd are found at arch/pkg, if you mess with these, don't forget to run gensync and create a new current.db.tar.gz
  • Various tools and kernel modules can be found at addons/

Creating a new ISO

Once you have edited your custom ISO to your needs, you must create a new ISO image. This can be done with the genisoimage command.

genisoimage -l -r -J -V "ARCH_201005" -b boot/isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -c boot/isolinux/boot.cat -o ~/arch-custom.iso newiso

There should now be a file called Template:Codeline in the home folder of the user that created the iso. This can now be burned to a CD (DVD) and used as intended. Enjoy your very own, customized, Arch Install CD. Remeber that the iso label must be the same as the one from the original ISO (in this case ARCH_201005) or otherwise the image will not work

If installing the image into a pen drive with unetbootin remember also that the label of the pen drive partition must be ARCH_201005. This can be changed with e2label for ext3 partitions.

Further Reading and Related Resources

http://www.knoppix.net/wiki/KnoppixRemasteringHowto
http://syslinux.zytor.com/iso.php
http://busybox.net/
http://xentac.net/svn/arch-jc/trunk/bin/mkiso