ISO (International organizations for standardization) format is the archive file format for optical discs. The name is derived from the file system format for optical discs, known as ISO 9660 File System. This format is also known as CDFS (Compact Disc File System). ISO files are used to either create the image of an optical disc, or to write data to it.
Here are a few tricks to create and manage ISO files.
Creating an ISO image out of a CD ROM mounted in your machine.We can use the dd (Disc Dump) command to take the copy of an optical disc. For this first you have to insert the disc in the drive, then find out the device name of your CD-ROM.
Once the CD is mounted, you can find your CD drive in this way:
safeer@penguinpower:~$ mount|grep -i iso/dev/sr0 on /media/UBUNTU_10 type iso9660(ro,nosuid,nodev,uhelper=udisks,uid=1000,gid=1000,iocharset=utf8,mode=0400,dmode=0500)Here my CD device is /dev/sr0. In most of the systems where you have a single CD drive, this will be symlinked to /dev/cdrom, so you can even use that in place of /dev/sr0 ( or whatever your device is).
safeer@penguinpower:~$ ls -l /dev/cdrom lrwxrwxrwx 1 root root 3 2010-11-06 10:23 /dev/cdrom -> sr0Now that we know our CD device name, let us create the ISO image of the mounted disc.
safeer@penguinpower:~$ dd if=/dev/sr0 of=/home/safeer/ISO/ubuntu10.iso1365028+0 records in 1365028+0 records out698894336 bytes (699 MB) copied, 267.224 s, 2.6 MB/s Where "/dev/sr0" is my CD device and "/home/safeer/ISO/ubuntu10.iso" is the name of the iso image that will be created from the CD.
Mounting an ISO file as if you are mounting a CD-ROM.ISO file can be mounted in a UNIX file system just like inserting a CD to your CD drive. We make use of the loop device system for this purpose. Loop device is a pseudo file system available in Linux/UNIX that makes a file accessible as a block device.
First, create a mount point
safeer@penguinpower:~$ sudo mkdir /mnt/isoThen mount the ISO file as loop device
safeer@penguinpower:~$ sudo mount -o loop -t iso9660 /home/safeer/ISO/ubuntu10.iso /mnt/iso/safeer@penguinpower:~$ mount |grep iso/dev/loop0 on /mnt/iso type iso9660 (rw)Now you can browse the contents of iso /home/safeer/ISO/ubuntu10.iso via the directory /mnt/iso/.
To unmount the device:
safeer@penguinpower:~$ sudo umount /mnt/iso Creating an ISO file from a directory.You can use mkisofs command to create an iso. In my system mkisofs is a symlink to the program genisoimage. You can use either command for this purpose.
Here I will create an iso image of all softwares that I downloaded.
safeer@penguinpower:~$ mkisofs -o software.iso /home/safeer/Downloads/I: -input-charset not specified, using utf-8 (detected in locale settings)Using VPNC_000.RPM;1 for /vpnc-0.5.3-8.fc13.src.rpm (vpnc-0.5.3-6.fc11.x86_64.rpm)Using VPNC_001.RPM;1 for /vpnc-0.5.3-6.fc11.x86_64.rpm (vpnc-0.5.3-8.fc13.x86_64.rpm) 1.03% done, estimate finish Sun Nov 7 18:28:59 2010 2.06% done, estimate finish Sun Nov 7 18:28:59 2010................................................................ 98.68% done, estimate finish Sun Nov 7 18:29:33 2010 99.71% done, estimate finish Sun Nov 7 18:29:34 2010Total translation table size: 0Total rockridge attributes bytes: 0Total directory bytes: 4914Path table size(bytes): 36Max brk space used 1b000486421 extents written (950 MB)Let us check the iso image by mounting it.
safeer@penguinpower:~$ sudo mount -t iso9660 -o loop software.iso /mntsafeer@penguinpower:~$ cd /mnt/safeer@penguinpower:/mnt$ lsa0654873.tor google_c.deb skype_de.deb torrentd.tor vpnc_000.rpm vpnc_0_5.deb vpnc_con.rpmadberdr9.deb opera_10.deb skype_ub.deb virtualb.deb vpnc_001.rpm vpnc_0_5.rpm vpnc_scr.rpmThe problem with using the default settings for mkisofs is that it truncates the filenames to be compatible with DOS file system. A few options that will help us create better image is shown below.
safeer@penguinpower:~$ mkisofs -r -R -J -l -o software.iso /home/safeer/Downloads/I: -input-charset not specified, using utf-8 (detected in locale settings) 1.03% done, estimate finish Sun Nov 7 18:56:33 2010.................................................... 99.71% done, estimate finish Sun Nov 7 18:57:00 2010Total translation table size: 0Total rockridge attributes bytes: 5152Total directory bytes: 11248Path table size(bytes): 36Max brk space used 1c000486433 extents written (950 MB)Checkout the man pages for more details on mkisofs