1

I am using a USB Stick as a boot disk.

Is it possible to use any file system on a boot disk and mark it as bootable, or it has to be FAT only?

Can it be a ext4 partition instead of FAT?

I am using the following commands to flash my usb stick with an OS image, but Is there any reason why FAT was chosen here:

sudo mkfs.fat -I /dev/sdX

What is the technical signifigance of -I here.

Then

isohybrid isofile.iso --entry 4 --type 0x1c
dd if=isofile.iso of=/dev/sdX bs=1M

Can I also use --entry 4 and --type 0x83? What is the significance of this line? I tested with 0x83, but it failed to boot. With 0x1c, it works fine.

8
  • Is isofile the same as pathtoiso.iso? If so, please make them the same so it's clear. – roaima Apr 3 '17 at 17:09
  • You're asking about mkfs.fat -I. Have you read the man page yet? (man mkfs.fat) – roaima Apr 3 '17 at 17:11
  • 1
    A partition table isn't essential, but it is usually recommended. You would usually provide one on a disk or USB stick, but you don't need one. You wouldn't use one on a DVD/CD (because the ISO format doesn't expect one), and they weren't available at all on floppy disks. – roaima Apr 3 '17 at 23:09
  • 1
    Yes and yes. It's very unusual to have a disk without a partition table but they can exist, and will work fine using /dev/sdX instead of /dev/sdXN. – roaima Apr 3 '17 at 23:28
  • 1
    You cannot boot a disk that has no partition table, agreed. That's one of the reasons such disk layouts are unusual. – roaima Apr 4 '17 at 6:51
4

The mkfs.fat command is redundant, since the dd command will overwrite the FAT file system with the pathtoiso.iso file (which contains an ISO9660 file system in itself). The point of the isohybrid command is to "enhance" the .iso file with a MBR partition table to make the result bootable from a USB Stick. See http://www.syslinux.org/wiki/index.php?title=Isohybrid

5
  • and the parameters --entry 4 --type 0x1c alters the MBR too? Can one also use any other type here and not 0x1c? Is there any special signifiance to the 0x1c file system type here? The commands has been copied from one of the questions on this site ( that was also the accepted answer ) – infoclogged Apr 3 '17 at 23:29
  • 1
    The --entry option selects the primary partition number to be used and sets the active flag on that partition. This makes the code in the boot sector use that partition for booting. I'm surprised the type code made a difference in your tests. Apparently some code does actually check this value. – Johan Myréen Apr 4 '17 at 4:12
  • i guess active flag is the same as the boot flag. But, its really confusing to set an active flag for a partition that does not exist. In the above case, the entry number is 4 which means, the fourth parition is bootable. However, the ISO file is dd ied to the usb disk and hence all the paritions from the stick in my opinion are deleted. So, what is the signifigance of the entry option, when anyways the disk would not hold any partition? Could I have also used entry "any number" or may be completely omit the entry option from the command? – infoclogged Apr 4 '17 at 9:45
  • 1
    The ISO file contains empty space at the beginning, which can be used to write a partition table. The partition table is carefully crafted to contain an entry which points to the beginning of the ISO9660 file system. So it does hold a partition, which in turn is filled with a file system. – Johan Myréen Apr 4 '17 at 10:22
  • In fact, the partition probably points to the beginning of the disk, i.e. to the partition table, but I can't check that now. – Johan Myréen Apr 4 '17 at 10:43

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.