Casey Bralla on 3 Aug 2014 16:40:32 -0700 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Re: [PLUG] Why Doesn't dd work for all ISO files? |
Wow! Quite a post, Brent. That's why I ask questions on this list. Thank you! Just don't call me "sassypants" any more! <grin> On Saturday 2014-08-02 11:58:06 PM brent timothy saner wrote: > On 08/02/2014 08:40 AM, Casey Bralla wrote: > > I've been doing a bunch of distro testing lately, and so have had the > > opportunity to transfer iso files to thumb drives. > > > > Most distros can be loaded onto a bootable thumb drive using the > > fantastic unetbootin utility. Some (such as KaOS (http://kaosx.us/ ) > > cannot be loaded with netbootin and instead need the "dd" command to > > copy the iso file as a binary onto the thumb drive. > > > > BTW, isn't KaOS a great distro name? They could have cool code names for > > their versions such as "Chief", "Siegfried", or "Hymie". > > > > Anyway, it seem to me that __ALL__ iso files from distros should be > > transferable to thumb drives by using dd. I've tried this, however, and > > most of them fail to boot. > > > > Can anybody explain why this is so? > > Howdy! Live-distro hacker, here. > > I'll try to keep this pretty simple, because once you go down this > rabbit-hole you lose sleep for three nights straight and then once you > get it you make an obnoxious ALL CAPS tag in your git repo and your > commit message is just sobbing. > > ISO files are, essentially, raw image dumps. > > "Well, duh- I knew THAT. How else could I dd from /dev/cdrom to MAKE an > .iso from an existing disc?" > > Well, chill, sassypants. Because there is a difference between an ISO > file and a *bootable* ISO file, just as there's a difference between a > hard drive and a *bootable* hard drive (assuming you're using MBR/BOIS. > UEFI, the same holds true, but it's a bit different from my comparison, > but more on that in a bit)... > > Where was I? > > Oh! Right. So of these bootable ISOs, there are two types: > > -normal "el torito" bootable image, "legacy"; these are the ISOs that > have been popular and used ever since some nerd first thought to make a > linux bootable CD, more or less. > > -Hybrid ISO's, which support the eltorito image but *also* have an > embedded MBR in the ISO image > > > Pre-boot Execution (BIOS, UEFI...) when booting from CD are looking > *specifically* for an el torito header. When booting from a hard drive > (i.e., as far as the system is concerned, a USB thumb-drive), it's > looking for an MBR. > > SO the short, tl;dr (I know, I know. I'm not even done yet.) answer is > "because the newer ISO's that not every distro is even using yet but > should be is actually using two different boot technologies within the > same ISO image". > > Not all distro's engineers/development teams even REALIZE the above. > Granted, a lot of live-centric distros avoid hybrid ISO's because it > would generally render the rest of the USB stick unusable from the live > environment without some nasty hackstuffs. It's possible, just not > generally worth it compared to releasing separate USB image files or > scripts. > > > > So! Did you catch the difference? > No? I don't blame you. It's subtle. VERY, very subtle. > > Well, let's try to sleuth the hell out of it, then: > > > Legacy: > > [bts@workhorse sysresc]$ fdisk -l systemrescuecd-x86-4.3.1-beta002.iso > > Disk systemrescuecd-x86-4.3.1-beta002.iso: 388 MiB, 406886400 bytes, > 794700 sectors > Units: sectors of 1 * 512 = 512 bytes > Sector size (logical/physical): 512 bytes / 512 bytes > I/O size (minimum/optimal): 512 bytes / 512 bytes > [bts@workhorse sysresc]$ file systemrescuecd-x86-4.3.1-beta002.iso > systemrescuecd-x86-4.3.1-beta002.iso: # ISO 9660 CD-ROM filesystem data > 'sysrcd-4.3.1' (bootable) > > > Hybrid: > > [bts@workhorse arch]$ fdisk -l archlinux-2014.07.03-dual.iso > > Disk archlinux-2014.07.03-dual.iso: 558 MiB, 585105408 bytes, 1142784 > sectors > Units: sectors of 1 * 512 = 512 bytes > Sector size (logical/physical): 512 bytes / 512 bytes > I/O size (minimum/optimal): 512 bytes / 512 bytes > Disklabel type: dos > Disk identifier: 0x6039e1c4 > > Device Boot Start End Blocks Id System > archlinux-2014.07.03-dual.iso1 * 0 1142783 571392 0 Empty > archlinux-2014.07.03-dual.iso2 252 63739 31744 ef EFI > (FAT-12/16/32) > [bts@workhorse arch]$ file archlinux-2014.07.03-dual.iso > archlinux-2014.07.03-dual.iso: DOS/MBR boot sector > > > > AHA! > > AHA!! > > Pay special attention to the output from the File commands- because the > embedded MBR is at the beginning of the hybrid ISO, it is able to be > booted from persistent media (USB flash drive). > > > > And, for the sake of thoroughness, in case you doubt: > > Legacy: > > [bts@workhorse sysresc]$ strings systemrescuecd-x86-4.3.1-beta002.iso | > head -n5 > CD001 > sysrcd-4.3.1 > > > > XORRISO-1.2.8 2013.03.18.093001, > LIBISOBURN-1.2.8, LIBISOFS-1.2.8, LIBBURN-1.2.8 > > > > 2014073017414300 > 2014073017414300 > CD001 > > > Hybrid: > > [bts@workhorse tmp]$ strings archlinux-2014.07.03-dual.iso | head -n5 > fSfQ > xpu > isolinux.bin missing or corrupt. > f`f1 > {fRfP > > > (you should see a similar output to the Hybrid if you operate the same > on /dev/sda<boot partition #> *and* are using MBR/BIOS booting rather > than UEFI.) > > > > I hope this helps. > > > In retrospect, I should have done a talk on it. > > > On that note, who wants a "spin your own livecd from bare scratch" talk? > ___________________________________________________________________________ -- Casey Bralla Chief Nerd in Residence The NerdWorld Organisation www.NerdWorld.org ___________________________________________________________________________ Philadelphia Linux Users Group -- http://www.phillylinux.org Announcements - http://lists.phillylinux.org/mailman/listinfo/plug-announce General Discussion -- http://lists.phillylinux.org/mailman/listinfo/plug