Difference between revisions of "ISO Images"
(28 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | + | == '''ISO Image Command Line Examples''' == | |
− | ISO Image Command Line Examples | + | '''All of these commands that access physical hardware, such as USB drives, require the use of either SUDO or becomming the root superuser!!! - In my examples, I am using the "root" user account!''' |
− | |||
− | '''Create ISO Image From Any Disk or File Structure''' | + | === '''Creation of Bootable Flash Drive from the Linux Command Line''' === |
+ | This is the BEST, MOST reliable method to "burn" an ISO image to a USB Flash Drive or even a hard disk or blank DVD/CD! | ||
+ | |||
+ | In this example, I have booted a laptop with the Knoppix Live distribution, which I use often for diagnostic and repair type work. | ||
+ | <pre style="color:blue"> | ||
+ | knoppix@Microknoppix:~/Downloads$ dd if=./Fedora-Workstation-Live-x86_64-40-1.14.iso of=/dev/sdc bs=1M status=progress | ||
+ | </pre> | ||
+ | |||
+ | The command immediatelly outputs this information. Your information will differ slightly due to different ISO image file names, etc.: | ||
+ | <pre style="color:blue"> | ||
+ | 1867513856 bytes (1.9 GB, 1.7 GiB) copied, 1 s, 1.9 GB/s | ||
+ | </pre> | ||
+ | |||
+ | Once completed, it will spit out something similar to this, and then return you to your command prompt: | ||
+ | <pre style="color:blue"> | ||
+ | 2189+1 records in | ||
+ | 2189+1 records out | ||
+ | 2295853056 bytes (2.3 GB, 2.1 GiB) copied, 200.027 s, 11.5 MB/s | ||
+ | </pre> | ||
+ | |||
+ | |||
+ | === '''How to Determine What Your CD or DVD Drive Uses for the Mount Point''' === | ||
+ | * Use the "eject" command to open the drive, and then use the "dmesg" command to view kernel messages, the last of which should be something like this: | ||
+ | <pre style="color:blue"> | ||
+ | [50208.534770] SELinux: initialized (dev sr0, type iso9660), uses genfs_contexts | ||
+ | </pre> | ||
+ | In the above example, the CD/DVD burner is device sr0, so the mount point of it is /mnt/sr0. | ||
+ | <br /> | ||
+ | In case anybody is wondering, sr0 in the above and below mount point stands for "SCSI Recorder 0", the first CD/DVD burner connected to the machine. If you have more than one, adjust accordingly. You can use the eject /dev/sr0 or eject /dev/sr1, etc to find out which physical device is which logical "block" device. | ||
+ | <br /><br /> | ||
+ | |||
+ | === '''The Best Way to Rip a DVD or CD from a Disk to an ISO File!''' === | ||
+ | <br /> | ||
+ | First, you need to find out some info from the physical disk, so that the image you create is "'''EXACTLY'''" the same size as the original. Without this info, the dd command used to create the ISO image file will add two additional bytes to the end of the image file. By first running this command to find out the block size and volume size, you can force the dd command to create the ISO image with exactly the same number of bytes the original disk has! | ||
+ | <br /><br /> | ||
+ | Run this command from the command prompt to find out the info required to rip the disk: | ||
+ | <pre style=color:blue> | ||
+ | isoinfo -d -i /dev/sr0 | grep -i -E 'block size|volume size' | ||
+ | </pre> | ||
+ | Be sure to include the single quotes in the above example! The output of the above command should look similar to this: | ||
+ | <pre style=color:blue> | ||
+ | Logical block size is: 2048 | ||
+ | Volume size is: 3782 | ||
+ | </pre> | ||
+ | <br /><br /> | ||
+ | My example is using a very tiny disk, so the volume size is much lower than a normal DVD or even CD. | ||
+ | <br /><br /> | ||
+ | Then, with the above block size and volume size given in my example above, use it to rip the disk: | ||
+ | <pre style=color:blue> | ||
+ | dd if=/dev/cdrom of=MyDisk.iso bs=2048 count=3782 | ||
+ | </pre> | ||
+ | <br /><br /> | ||
+ | When done creating the newly created disk ISO image file, eject the physical disk using the eject command, shown here, assuming the same DVD/CD burner drive, /dev/sr0 | ||
+ | <pre style=color:blue> | ||
+ | eject /dev/sr0 | ||
+ | </pre> | ||
+ | <br /><br /> | ||
+ | To close the DVD/CD tray, if your's has one, use the eject command with the -t switch, shown here: | ||
+ | <pre style=color:blue> | ||
+ | eject -t /dev/sr0 | ||
+ | </pre> | ||
+ | <br /><br /> | ||
+ | <br /> | ||
+ | === '''More Examples to Create ISO Image Files From Any Disk or File Structure''' === | ||
* If it is a disk you are copying to an ISO image, first un-mount it, using the umount command: | * If it is a disk you are copying to an ISO image, first un-mount it, using the umount command: | ||
(Only one of the below commands are required, depending on your system and how it automatically mounts disks) | (Only one of the below commands are required, depending on your system and how it automatically mounts disks) | ||
Line 22: | Line 84: | ||
</pre> | </pre> | ||
− | + | <br /><br /> | |
* Use the dd command to create an exact image of the disk or file system: | * Use the dd command to create an exact image of the disk or file system: | ||
(Again, use the correct mounting point for your particular Linux system) | (Again, use the correct mounting point for your particular Linux system) | ||
+ | <br /> | ||
+ | In all of these examples using the dd command, the tags if= and of= stand for "InputFile"= and "OutputFile"= | ||
+ | |||
<pre style="color:blue"> | <pre style="color:blue"> | ||
dd if=/dev/sr0 of=ISO_Image_File_Name.iso | dd if=/dev/sr0 of=ISO_Image_File_Name.iso | ||
+ | |||
+ | OR | ||
+ | |||
+ | dd if=/directory_structure_name of=ISO_Image_File_Name.iso | ||
+ | |||
</pre> | </pre> | ||
+ | <br /><br /> | ||
+ | |||
+ | Here is the actual scroll-back of a DVD image creation of the older Red Hat Enterprise Linux 5.1 I needed to do: | ||
+ | <pre style="color:blue"> | ||
+ | [root@server RHEL-5.1_64-Bit]# dd if=/dev/sr0 of=RHEL_5.1_x64.iso | ||
+ | 6866560+0 records in | ||
+ | 6866560+0 records out | ||
+ | 3515678720 bytes (3.5 GB) copied, 251.405 s, 14.0 MB/s | ||
+ | [root@server RHEL-5.1_64-Bit]# | ||
+ | </pre> | ||
+ | |||
− | + | === '''A Visually Attractive Way of Creating an ISO Image File from an Existing Disk''' === | |
− | to create a nice ncurses based status indicator while it creates the image, allowing you to monitor the progress of ISO image creation | + | This method uses the dd command along with some other command line arguments, |
+ | to create a nice ncurses based status indicator while it creates the image, allowing you to monitor the progress of ISO image creation. | ||
+ | This does require some extra packages that may not be installed and available on your system, such as ncurses and dialog. | ||
<pre style="color:blue"> | <pre style="color:blue"> | ||
− | (pv -n /dev/sr0 | dd of= | + | (pv -n /dev/sr0 | dd of=ISO_Image_File_Name.iso bs=2048 conv=notrunc,noerror) 2>&1 | dialog --gauge "Creating ISO Image... Please stand by..." 10 70 0 |
</pre> | </pre> | ||
+ | <br /> | ||
+ | Example of above command:<br /> | ||
+ | [[File:dd_ncurses.jpg]] | ||
+ | <br /><br /> | ||
+ | === '''Extensions & Improvements''' === | ||
+ | * There are several extensions to ISO9660 that relax some of its limitations: | ||
+ | ** Rock Ridge supports the preservation of POSIX (UNIX/Linux-Type) permissions and long file names. | ||
+ | ** Joliet supports Unicode names stored in UCS-2, so that any character can be used. | ||
+ | ** El Torito enables disks to be bootable. | ||
+ | ** Apple ISO9660 Extensions adds support for classic MAC OS-Specific file characteristics like resource forks, file backup dates, etc. | ||
+ | <br /><br /> | ||
− | '''Create ISO Image from Mounted CD or DVD:''' | + | === '''Create ISO Image from Mounted CD or DVD:''' === |
* In the example below: | * In the example below: | ||
** Replace "IMAGE_NAME.ISO" with what you want to name the ISO image file. | ** Replace "IMAGE_NAME.ISO" with what you want to name the ISO image file. |
Latest revision as of 18:37, 9 August 2024
ISO Image Command Line Examples
All of these commands that access physical hardware, such as USB drives, require the use of either SUDO or becomming the root superuser!!! - In my examples, I am using the "root" user account!
Creation of Bootable Flash Drive from the Linux Command Line
This is the BEST, MOST reliable method to "burn" an ISO image to a USB Flash Drive or even a hard disk or blank DVD/CD!
In this example, I have booted a laptop with the Knoppix Live distribution, which I use often for diagnostic and repair type work.
knoppix@Microknoppix:~/Downloads$ dd if=./Fedora-Workstation-Live-x86_64-40-1.14.iso of=/dev/sdc bs=1M status=progress
The command immediatelly outputs this information. Your information will differ slightly due to different ISO image file names, etc.:
1867513856 bytes (1.9 GB, 1.7 GiB) copied, 1 s, 1.9 GB/s
Once completed, it will spit out something similar to this, and then return you to your command prompt:
2189+1 records in 2189+1 records out 2295853056 bytes (2.3 GB, 2.1 GiB) copied, 200.027 s, 11.5 MB/s
How to Determine What Your CD or DVD Drive Uses for the Mount Point
- Use the "eject" command to open the drive, and then use the "dmesg" command to view kernel messages, the last of which should be something like this:
[50208.534770] SELinux: initialized (dev sr0, type iso9660), uses genfs_contexts
In the above example, the CD/DVD burner is device sr0, so the mount point of it is /mnt/sr0.
In case anybody is wondering, sr0 in the above and below mount point stands for "SCSI Recorder 0", the first CD/DVD burner connected to the machine. If you have more than one, adjust accordingly. You can use the eject /dev/sr0 or eject /dev/sr1, etc to find out which physical device is which logical "block" device.
The Best Way to Rip a DVD or CD from a Disk to an ISO File!
First, you need to find out some info from the physical disk, so that the image you create is "EXACTLY" the same size as the original. Without this info, the dd command used to create the ISO image file will add two additional bytes to the end of the image file. By first running this command to find out the block size and volume size, you can force the dd command to create the ISO image with exactly the same number of bytes the original disk has!
Run this command from the command prompt to find out the info required to rip the disk:
isoinfo -d -i /dev/sr0 | grep -i -E 'block size|volume size'
Be sure to include the single quotes in the above example! The output of the above command should look similar to this:
Logical block size is: 2048 Volume size is: 3782
My example is using a very tiny disk, so the volume size is much lower than a normal DVD or even CD.
Then, with the above block size and volume size given in my example above, use it to rip the disk:
dd if=/dev/cdrom of=MyDisk.iso bs=2048 count=3782
When done creating the newly created disk ISO image file, eject the physical disk using the eject command, shown here, assuming the same DVD/CD burner drive, /dev/sr0
eject /dev/sr0
To close the DVD/CD tray, if your's has one, use the eject command with the -t switch, shown here:
eject -t /dev/sr0
More Examples to Create ISO Image Files From Any Disk or File Structure
- If it is a disk you are copying to an ISO image, first un-mount it, using the umount command:
(Only one of the below commands are required, depending on your system and how it automatically mounts disks)
umount /mnt/cdrom OR umount /mnt/sdd OR umount /mnt/sr0 OR umount /run/media/username/disk_name
- Use the dd command to create an exact image of the disk or file system:
(Again, use the correct mounting point for your particular Linux system)
In all of these examples using the dd command, the tags if= and of= stand for "InputFile"= and "OutputFile"=
dd if=/dev/sr0 of=ISO_Image_File_Name.iso OR dd if=/directory_structure_name of=ISO_Image_File_Name.iso
Here is the actual scroll-back of a DVD image creation of the older Red Hat Enterprise Linux 5.1 I needed to do:
[root@server RHEL-5.1_64-Bit]# dd if=/dev/sr0 of=RHEL_5.1_x64.iso 6866560+0 records in 6866560+0 records out 3515678720 bytes (3.5 GB) copied, 251.405 s, 14.0 MB/s [root@server RHEL-5.1_64-Bit]#
A Visually Attractive Way of Creating an ISO Image File from an Existing Disk
This method uses the dd command along with some other command line arguments, to create a nice ncurses based status indicator while it creates the image, allowing you to monitor the progress of ISO image creation. This does require some extra packages that may not be installed and available on your system, such as ncurses and dialog.
(pv -n /dev/sr0 | dd of=ISO_Image_File_Name.iso bs=2048 conv=notrunc,noerror) 2>&1 | dialog --gauge "Creating ISO Image... Please stand by..." 10 70 0
Extensions & Improvements
- There are several extensions to ISO9660 that relax some of its limitations:
- Rock Ridge supports the preservation of POSIX (UNIX/Linux-Type) permissions and long file names.
- Joliet supports Unicode names stored in UCS-2, so that any character can be used.
- El Torito enables disks to be bootable.
- Apple ISO9660 Extensions adds support for classic MAC OS-Specific file characteristics like resource forks, file backup dates, etc.
Create ISO Image from Mounted CD or DVD:
- In the example below:
- Replace "IMAGE_NAME.ISO" with what you want to name the ISO image file.
- Replace "/run/media/dir_disk_mounted_on/" with the entire path that the disk is mounted on.
- This exact same command can also be used to create an ISO image containing any mounted directory tree.
- Switches used in below example: -v = verbose output, -J and -R = Juliet & RockRidge extensions included for Windows compatibility.
genisoimage -o IMAGE_NAME.ISO -v -J -R /run/media/dir_disk_mounted_on/