owner

Newbie Dictionary.  - 
 
======
 Hybrid ISO
======

A new trend now for Linux ISO(.iso) files is to have them "hybrid" capable.

A Hybrid ISO means it cannot only be burned to a CD but also "dumped" to a USB drive. When an iso file is "dumped" to a USB drive, the whole USB device gets wiped out. If an ISO file is not mentioned on a Linux distro's project page that it is actually "hybrid", then it is not.  It has to say "hybrid" or USB-supported of that nature otherwise it just won't work on USB.

http://en.wikipedia.org/wiki/ISO_image


Dumping vs Extraction tools
===========================

Compare "dumping" to "EXTRACTION". If a Linux distro's project page does not mention it's ISO is "hybrid" but you discover that a Linux-installer-on-usb maker tool such as unetbootin/lili/YUMI/other is able to do the trick-- then you are not "dumping" an ISO image file to the USB drive, but rather the tool is "EXTRACTING" data and re-ordering the data in a way to have the Linux-usb "bootable".  These "extraction" tools perform more complex operations in data re-ordering such as the "boot loader" injection on the USB device which is why they're not as robust as a "dump" operation. If the ISO image file in question supports a "hybrid" usb boot feature, then you should try to create the Linux-installer via a "dump" tool FIRST.  An "extraction" tool should always be secondary because it is less robust.  And then there's some advanced users who are trying to to multi-Linux-installers from USB-- You are free to gamble with any extraction tools -- but when checking a just released ISO with USB hybrid support it's best to keep things simple; because as you will see on this page there can be many confusing factors as to why your Linux installer on USB does not work. Despite this, Linux installers on USB (dump) is something that is getting much easier to do that even new users can perform, but it is worthy to know the factors involved in case anything goes wrong..


Tips
====

So "dumping" an ISO file to a USB drive turns that USB drive into a Linux installer.. but remember, the computer booting up with USB needs to be able to boot from USB. There's also another inconvenient factor with USB drive booting-- some "brands" work better than others for "YOUR" particular computer.  

Eg: I had one usb stick that is able to USB boot on machine A, but cannot boot on machine B.  Both machines have a "usb-boot" option with their Bioses, and I ensured I can access a "Boot" menu with either F11 or F12 (Check your motherboard/computer manual for bios/boot settings). 

Netbooks: These machines are tricky. Sometimes in order to boot with certain netbooks(my experience with Acer!), you need to UNPLUG their battery!.
 Steps you can take to completely ensure if the usb drive is bootable or not with the netbook
 - Have the usb drive plugged in it's usb. 
 - Have the netboook turned off as normal
 - UNPLUG the battery (while the USB drive is STILL plugged in), wait a couple seconds, then REPLUG the battery
 - Power on your netbook and hit it's Boot-menu bios key to ensure the USB drive is the selected the first boot device

My experience has been that the LEXAR brand has worked great. I have used these "Lexar Jump drives" on numerous occassion without problems.. If you're having alot of problems finding out a good USB drive, probably you would like to try the ones I'm using (model:  LJDS50-4GB-000-103 C.. This is the model# imprinted on the back of these sticks)


Another important tip I have experience with..
If you "dump" an ISO image file and you know you're able to USB-boot with the usb drive(hardware-wise) and you know the ISO has been succesful by other occassions.. then maybe this usb drive is STILL compatible with the computer after you UPGRADE the computer bios.  Upgrading the computer bios is usually not an issue, but if your computer is very new of a couple months it's likely there's a newer update for it. More likely than not a problem such as USB-boot can be due to a BIOS bug and such things would be fixed via bios update.. (Note: a Bios update pertains closer to the functioning of the Hardware, and upgrading any bios takes extra precaution as you do not want to brick your computer.)

Remember, it is not only the "computer" that has to support USB-boot, but the USB device ITSELF has to be usb-bootable from a "HARDWARE" point of view.(However, I believe the trend for usb device manufacturers to support USB-boot has become very widespread). The continuity of thought of course is that the ISO file should always be checksummed with md5 or shasum1 before dumping to usb. (The checksum is a calculated fingerprint and is unique to every file.  If the checksums do not match, you'll have to redownload the whole iso file again.  The checksum to verify against should be published somewhere where you downloaded the original ISO. The concept of "checksum" is actually a mathematical geek-term meaning to "verify a file" for any potential corruption during the download transit. http://en.wikipedia.org/wiki/File_verification)


Checksumming on Platforms
---
OsX and MsWindows platforms,
https://help.ubuntu.com/community/HowToMD5SUM#MD5SUM_on_Mac_OS_X
https://help.ubuntu.com/community/HowToMD5SUM#MD5SUM_on_Windows
https://help.ubuntu.com/community/HowToSHA256SUM

Linux,
Simple breakdown if you're using Linux to check an iso file, use one of the following commands
The above ubuntu links are overworded, simply it's just one command-line and that's it..
md5sum [ISO image]
sha1sum [ISO image]
sha256 [ISO image]
,there's a gui for checking hashes http://gtkhash.sourceforge.net/ (though I never used it)


Methods
=======
The following are tools/methods used for dumping an ISO to a USB drive
(Do keep in mind if you're using a Mac and search online about "Hybrid", Apple uses the word "Hybrid" to represent it's very own silly HFS+ISO format which has nothing to do with a Linux ISO being hybrid -- I mention this just in case some try to look up "Hybrid" if they're trying this on OsX) 

** !! ** !! ** !! ** !! ** !! ** !! ** !! ** !! 

If you do not know 100% sure of EVERY single step then you should ask for extra advice because you do not want to WIPE out anything you do want to keep.

** !! ** !! ** !! ** !! ** !! ** !! ** !! ** !! 


Windows
----
http://sourceforge.net/projects/win32diskimager/

- When running this program, you may need to be Administrator. Rt-click on .exe and choose 'Run as administrator'

You should make sure you have checked your USB drive with Windows' disk management tool.  

- Right-click 'My computer'and choose 'Manage', use the 'Disk management' node.
Format the USB device to one partition (make sure there's no other partitions on this drive and that there's no userdata on it), give this partition a letter drive, close the diskmgmt.msc tool
 (The filesystem on the usb partition can be fat32, or ntfs. It'll be completely wiped out by the tool anyways, as the tool only needs a reference to a USB device. )

- Run win32imagewriter and use this "letter" drive with it

(If imagewiter does not run, you may need .NET 2.0 Runtime Framework http://www.microsoft.com/en-us/download/details.aspx?id=16614 
)

OsX
----
Open a command-line prompt with Terminal.app
You need to be an administrator

- Login as root
 sudo su -l<enter>

- List disks
 diskutil list<enter>

- Unmount disk "N" that pertains to your USB. (you can use the "mount" to see if the USB drive is still mounted)
 diskutil unmountDisk /dev/diskN

- Use cat to dump the file iso image
 cat [ISO image file] > /dev/diskN


Linux
----
 Login as root if you're an administrator
 sudo su -l<enter>
 , if that didn't work, you need to "logon" as "root" from another text-based terminal (eg: ctl-alt-f1)

- Check any mountpoint attachments to the usb device and detach any polling to it (If a user desktop is currently loaded)
  First check to see if it has been automounted with a user's desktop
  If there's a user's desktop loaded, use a separate terminal shell in his name within the GUI and unmount anything attached to that usb device
    
   udisks eject [YOUR USB DEVICE] <enter>

  Next poll-inhibit devices for the user's desktop

  udisks --inhibit-all-polling<enter>, it'll appear stuck but it'll wait for you to do Ctl-c so that the desktop can start polling again. You can leave it at it is for now and do ctl-c much later. Basically here your desktop is suspending for scanning for new USB devices.

  Another thing one can do to not worry about using the udisks command, is to simply logout of the Linux user desktop.

- Use cat to dump the file iso image
  Now back to the superuser, issue
 parted --list<enter>
  If you do not have parted install, try finding the name of the device with "fdisk -l<enter>"
  If you just discovered the usb device [YOUR USB DEVICE] and want to remain in the user desktop, then check those udisks commands and make sure the USB device isn't hooked to anything with the desktop

  If the usb device does not show up, then reinsert it. Perhaps udisks ejected it completely; if on a second count, you'd have to try another usb port which sometimes does the trick

 Now dump the iso image to the usb device
  cat [ISO image file] > [YOUR USB DEVICE] <enter>

 Once the cat command has completed you will be returned to the command prompt.  When this is completed, you can safely resume device polling with the user's desktop. (Do not issue a new Desktop logon as you wouldn't want to be polling the usb device while the superuser account is operating on it)


Extra commentary:
 If you want to see a progress bar while dumping the iso image, there's the pcopy command.  I believe debian may still be harboring/packaging this command (not sure for other distros). If you want to use dd or dd_rescue that's fine, but you have to type more nifty options to it like bytesize to make it work properly. rsync with a progressbar, and cp are problematic, here at least on ubuntu, when trying to replace what dd or cat does -- This may be due to Ubuntu, but the "cat" command is stable and documented to use for dumping ISO hybrid images according to official distro documentation found with Debian and others.  From experience using nifty options with dd/dd_rescue has no leading speed advantage over the cat command for dumping ISO files to usb drives. But if it's officially documented to work and simpler to type, then why bother to use dd/dd_rescue? ;) (The only counter-argument I can think of is if the USB hardware is "faulty" and one would like to tailor a bandwidth on the usb link.. tsk.. just replace the parts with fair enough hardware-- There would be problems booting up usb drives with the particular machine)

There's one more thing about dumping a Linux Hybrid iso to a "letter" drive in Windows. Formating the usb drive to one partition either being Fat32 or NTFS doesn't matter because the Imagewriter would start from the "head" of the USB device and so whatever "filesystem" that was there would be wiped out .. The tool only needs a hinted reference as to what "usb" device you want to target. (Unlike what "extraction" tools like unetbootin do, which is to 1) "keep" FAT32 partition that is bounded to a Windows letter drive and extract contents of the ISO to it, and 2) inject crafted bootcode into the head of the usb drive)


 In case anyone wonders, [YOUR USB DEVICE] is something of form
   /dev/sdN (1)  -> good
 , and not /dev/sdNX (2) -> not good
  where N is a letter and X is a number

 (1) == Whole usb device
 (2) == an offset within the Usb device (pertains to a partition)

 Please use a form of (1), and not (2), thank you.

Hope this article was helpful and clarifies the growing commonality of the terminology "Hybrid" as used in Linux hybrid ISO and not Apple's definition of it! ;)
6
Scott Westlake's profile photo
 
An additional tool called dcfldd that has a progress %.  Also posted is how to 'verify' a dumped iso image to usb using dcfldd and without using dcfldd.  Dcfldd is a widely unheard swissarmy knife for doing more interesting things than what I cover, but it is actually not that difficult provided with a few kickass tips :) (The easier method of not using dcfldd is posted at the end, albeit at the price of not having a progress % displayed)

https://plus.google.com/105696767572828808697/posts/KQYVTrjcDwG
Add a comment...