home | list info | list archive | date index | thread index

Re: $100 bounty for resolving my issue for creating bootable USB drive

  • Subject: Re: $100 bounty for resolving my issue for creating bootable USB drive
  • From: "Robert P. J. Day" <rpjday [ at ] crashcourse [ dot ] ca>
  • Date: Fri, 22 Aug 2025 18:02:22 -0400 (EDT)
  ok, will test this later this evening or tomorrow morning, but as i
mentioned, i followed the instructions at that link fairly closely
and, while the xorriso command ultimately created an ISO image, it was
not recognized as a bootable device. so somewhere along the line, i
missed something.

  more later.

rday





On Fri, 22 Aug 2025, Qingwei Zhang via linux wrote:

> HI Robert,
>
> Thank you for the follow-up. That's a great question.
>
> The solution you found on Reddit is excellent and will work. Both methods achieve the same goal:
> creating a proper hybrid-bootable ISO. The difference is only in the approach.
>
> The Reddit method uses a single, complex command to copy the required boot data directly from the
> original ISO during the build process.
>
> My method is more explicit: it first extracts that same boot data into separate files, and then uses
> those files to build the new ISO.
>
> The "extra steps" are just a different way of providing xorriso with the same essential information.
> Either method will produce the bootable USB drive you need.
>
> Best regards,
> Qingwei
>
> On Fri, Aug 22, 2025 at 5:29 PM Robert P. J. Day via linux <linux [ at ] linux-ottawa [ dot ] org> wrote:
>
>         i'm about to start testing this possibility, but i'm still curious
>       as to why it seems to need a couple extra steps compared to this
>       alleged solution:
>
>       https://www.reddit.com/r/Ubuntu/comments/1g0cq09/how_to_create_a_custom_ubuntu_24041_image_by/
>
>       do the steps at that link simply not work?
>
>       On Fri, 22 Aug 2025, Qingwei Zhang via linux wrote:
>       >
>       > HEY ROBERT,
>       >
>       > SAW YOUR EMAIL ABOUT THE UBUNTU ISO.
>       >
>       > PLEASE TRY THIS WAY, I THINK IT WILL WORK: [LINK TO THE SOLUTION STEPS]
>       >
>       > LET ME KNOW.
>       >
>       > BEST,
>       >
>       > QINGWEI
>       >
>       >
>       > STEP 1: SET UP YOUR WORKSPACE
>       >
>       > First, create a workspace, unpack the ISO’s file content, and extract the specific
>       boot files needed
>       > by xorriso.
>       >
>       > # 1. Create directories for your work
>       > mkdir -p ubuntu-custom/iso_contents
>       > mkdir -p ubuntu-custom/boot_files
>       >
>       > # 2. Define the original ISO path
>       > ORIGINAL_ISO="ubuntu-24.04.3-live-server-amd64.iso"
>       >
>       > # 3. Unpack the ISO contents using bsdtar (it handles rock ridge, etc. well)
>       > # Using 'mount -o loop' is not sufficient as it doesn't expose the boot images.
>       > bsdtar -C ubuntu-custom/iso_contents -xf "$ORIGINAL_ISO"
>       >
>       > # 4. Extract the MBR boot code template from the original ISO
>       > dd if="$ORIGINAL_ISO" bs=1 count=432 of=ubuntu-custom/boot_files/isohdpfx.bin
>       >
>       >___________________________________________________________________________________________________
>       _
>       >
>       > STEP 2: THE XORRISO COMMAND TO REBUILD THE ISO
>       >
>       > This is the critical step. The following command tells xorriso to rebuild the ISO
>       while embedding
>       > all the necessary boot information for BIOS and UEFI systems. Run this from the
>       ubuntu-custom
>       > directory.
>       >
>       > # Change into the working directory
>       > cd ubuntu-custom/
>       >
>       > # The magic incantation
>       > xorriso -as mkisofs \
>       >   -r \
>       >   -V "Ubuntu 24.04.3 LTS" \
>       >   --grub2-mbr boot_files/isohdpfx.bin \
>       >   --protective-msdos-label \
>       >   -partition_offset 16 \
>       >   --mbr-force-bootable \
>       >   -append_partition 2 0xef iso_contents/boot/grub/efi.img \
>       >   -appended_part_as_gpt \
>       >   -iso_mbr_part_type 0x00 \
>       >   -c boot/boot.cat \
>       >   -b boot/grub/i386-pc/eltorito.img \
>       >   -no-emul-boot -boot-load-size 4 -boot-info-table --grub2-boot-info \
>       >   -eltorito-alt-boot \
>       >   -e boot/grub/efi.img \
>       >   -no-emul-boot \
>       >   -o ../rebuilt-ubuntu-server.iso \
>       >   iso_contents/
>       >
>       >___________________________________________________________________________________________________
>       _
>       >
>       > STEP 3: CREATE THE BOOTABLE USB
>       >
>       > Once the rebuilt-ubuntu-server.iso is created, write it to your USB drive using dd.
>       >
>       >  1. Identify your USB drive with lsblk. Be absolutely certain of the device name
>       (e.g., /dev/sdc).
>       >     Using the wrong device will destroy data.
>       >  2. Write the ISO to the drive.
>       >
>       > # Replace /dev/sdX with your actual USB device name
>       > sudo dd if=../rebuilt-ubuntu-server.iso of=/dev/sdX bs=4M status=progress oflag=sync
>       >
>       > The oflag=sync flag ensures all data is physically written before the command returns.
>       The resulting
>       > USB drive should now be recognized as bootable by your appliances.
>       >
>       >___________________________________________________________________________________________________
>       _
>       >
>       > On Fri, Aug 22, 2025 at 4:45 PM Dnkorovkin via linux <linux [ at ] linux-ottawa [ dot ] org> wrote:
>       >       Hi Robert. 
>       > I am quite busy at the moment to try it, but the general idea of it is:
>       > 1. mount the disk image with mount -o loop
>       > 2. cp -a source to usb
>       > 3. Run syslinux to make bootable USB drive.
>       >
>       > Hope this helps,
>       >
>       > Dmitriy
>       >
>       > -------- Original message --------
>       > From: "Robert P. J. Day via linux" <linux [ at ] linux-ottawa [ dot ] org>
>       > Date: 2025-08-22 16:00 (GMT-05:00)
>       > To: OCLUG mailing list <linux [ at ] linux-ottawa [ dot ] org>
>       > Subject: [linux] $100 bounty for resolving my issue for creating bootable USB drive
>       >
>       >
>       >   i will recap the fight i am currently having in trying to create a
>       > bootable USB drive from Ubuntu Server 24.04.3 ["24.04"], and i will
>       > interac $100 to the first person who can solve the problem i am about
>       > to describe. (i will start writing this up in detail at my
>       > crashcourse.ca wiki, but i'll supply enough here that you will have
>       > enough information to take a crack at it.)
>       >
>       >   previously, i described how i want to customize a 24.04 ISO image to
>       > add some autoinstall configuration, but the problem here is way
>       > simpler -- i just want to take that original ISO and turn it into a
>       > bootable USB drive *as is*. but wait ... there's more.
>       >
>       >   if i just want an equivalent bootable USB drive from the ISO image,
>       > well, that's trivial -- just "dd" from the ISO image to the USB drive.
>       > that works just fine and, when i do that, the USB drive is recognized
>       > by two different appliances i'm playing with when i go into the BIOS
>       > on either appliance, go top the "Boot" menu, and i can see that both
>       > BIOSes list the USB drive as a boot option. in short, those USB drives
>       > are visible as bootable devices. and that's what i'm after.
>       >
>       >   but i don't just want to use "dd" -- that's too easy. rather, i want
>       > to take the 24.04 ISO image and *unpack* it ("mount -o loop",
>       > "bsdtar", whatever) to get the directory structure, which is where i
>       > would add the autoinstall stuff, but i want to keep it simple, and
>       > after i unpack the ISO image, i'm happy to *immediately* pack it up
>       > again (unchanged) to get the equivalent bootable ISO image. then i can
>       > "dd" that to a USB drive and boot from that.
>       >
>       >   that's it -- i want to take canonical's 24.04 ISO image, unpack it
>       > (however you want), then recreate a bootable ISO image from that (most
>       > likely with "xorriso"), dd to USB drive and boot from that. and from
>       > my poking around, it seems like the work involves invoking "xorriso"
>       > with all of the appropriate options, a good example seen here:
>       >
>       >
>       https://www.reddit.com/r/Ubuntu/comments/1g0cq09/how_to_create_a_custom_ubuntu_24041_image_by/
>       >
>       > that makefile ostensibly does what i want, except we can ignore all
>       > the cloud-init stuff since i don't want to make any changes, and the
>       > real work is done by the "ubuntu" target, which runs "xorriso" with a
>       > truckload of options in order to recreate a bootable ISO image.
>       >
>       >   i used something very much like that but, no matter how i tweak it,
>       > once i recreate an ISO image and copy to USB drive, neither appliance
>       > recognizes that USB drive as a boot option, so i am clearly
>       > overlooking something critical.
>       >
>       >   there's the $100 bounty -- figure out the magic incantation of
>       > "xorriso" that allows me to do the above:
>       >
>       >   1) start with canonical 24.04.3 ubuntu server image
>       >   2) unpack into directory structure
>       >   3) use xorriso to immediately repack into bootable ISO image
>       >   4) copy to USB drive, and boot from that USB drive
>       >
>       > i've played with those options all morning and haven't succeeded.
>       > thoughts?
>       >
>       > rday
>       >
>       > To unsubscribe send a blank message to linux+unsubscribe [ at ] linux-ottawa [ dot ] org
>       > To get help send a blank message to linux+help [ at ] linux-ottawa [ dot ] org
>       > To visit the archives: https://lists.linux-ottawa.org
>       >
>       >
>       >
>
>
>