Difference between revisions of "Browse and Netboot ISO images"

From Amahi Wiki
Jump to: navigation, search
Line 53: Line 53:
  
 
You can browse around the directories, copy files etc at leisure, and when you're done the automounter will release the loop device for reuse.
 
You can browse around the directories, copy files etc at leisure, and when you're done the automounter will release the loop device for reuse.
 +
 +
== Part 2 - Making ISO images bootable ==
 +
First, we need to create some directories to hold the PXE menu structure and the script to generate it:
 +
{{Code|
 +
Code=cd /usr/share/amahi-netboot/tftp
 +
mkdir iso-boot
 +
mkdir iso-boot/conf
 +
mkdir iso-boot/mnt
 +
}}
 +
 +
 +
 +
 +
=== Known Issues ===
 +
#The script doesn't currently work for some images, notably those based on the dracut system
 +
#Occasionally, if you don't shutdown the PXE booted system cleanly, the automounter is unable to release the mount point

Revision as of 18:57, 22 February 2011

Overview

If you use Amahi to regularly download ISO images of operating systems and such like, this page is for you. It describes some tweaks that can be made to an Amahi setup to enable easy browsing and netbooting of ISO images, *without* having to mount each one and copy files. This is particularly handy, if you just want to try out the latest and greatest version of something.

Almost every command in this article needs to be executed with root privileges. Therefore, use "su" to become root before you begin, or prefix each command with sudo if you prefer.

Part 1 - Making ISO images browsable

First, we're going to use the automounter together with /dev/loop to mount the ISO files on demand. Before we can go any further, ensure that you have the automounter installed:

bash code
​yum -y install autofs​


Next, create a suitable mount point. In this example, we're using /media/iso-fs

bash code
​mkdir -p /media/iso-fs​


Now create a file called /media/.iso-fs.map using your favourite editor with the following contents:

bash code
​#!/bin/bash DIR_LIST=(/var/hda/files/torrents /home/*/Downloads) iso=`find ${DIR_LIST[@]} -name $1.iso -type f` echo "-fstype=iso9660 :$iso"

This script will act as an executable mount map for the automounter, returning suitable mount point parameters if it finds an ISO file that matches the key passed to it.

...and ensure that this file is executable:

bash code
​chmod u+x /media/.iso-fs.map​


The final step is to create an entry in the master automount map. Edit /etc/auto.master and add the following line somewhere after the default /net entry:

bash code
​/media/iso-fs /media/.iso-fs.map ro,loop --timeout=30


The last parameter is the time in seconds after which a mount point will be automatically unmounted. Now restart the automounter with:

bash code
​service autofs restart​


If all has gone well, then you should be able to browse any ISO image that you have in your torrents or downloads directories. In my case, I have ubuntu-10.10-desktop-i386.iso in my torrents directory, so I get:

bash code
​bash$ ls /media/iso-fs/ubuntu-10.10-desktop-i386/ autorun.inf dists md5sum.txt preseed usb-creator.exe boot install pics README.diskdefines wubi.exe casper isolinux pool ubuntu​


You can browse around the directories, copy files etc at leisure, and when you're done the automounter will release the loop device for reuse.

Part 2 - Making ISO images bootable

First, we need to create some directories to hold the PXE menu structure and the script to generate it:

bash code
​cd /usr/share/amahi-netboot/tftp mkdir iso-boot mkdir iso-boot/conf mkdir iso-boot/mnt​



Known Issues

  1. The script doesn't currently work for some images, notably those based on the dracut system
  2. Occasionally, if you don't shutdown the PXE booted system cleanly, the automounter is unable to release the mount point