Linux / macOS
Creating a Gentoo Bootable USB on Apple Silicon
The standard advice for writing a Linux ISO to a USB drive is to reach for
dd and call it a day. On Apple silicon running macOS, that advice
can waste your afternoon. The command appears to complete, the USB does not
boot, and nothing explains why. Here is what actually works.
Why dd Falls Short on macOS
The problem is not dd itself. The issue is how macOS handles raw
disk access on Apple silicon hardware. Writing an ISO directly to a
/dev/disk device often produces a USB that a BIOS or UEFI system
will refuse to recognize as bootable.
You can verify that the bytes wrote correctly and still end up with nothing useful at the boot screen.
The more reliable path is to go through macOS’s own disk-image layer first.
Converting the ISO to a DMG with hdiutil lets macOS handle the
image correctly before dd writes it to physical media.
The Method That Works
Convert the ISO to a DMG
Use hdiutil to convert the Gentoo ISO into a DMG. The
UDRW format tells macOS to write it as a read/write disk image,
which behaves correctly when copied to physical media.
# Replace with your actual Gentoo ISO filename
hdiutil convert /path/to/gentoo.iso \
-format UDRW \
-o /path/to/gentoo.dmg
Identify your USB device
Run diskutil list before and after inserting your USB drive to
confirm which disk number it is. Getting this wrong means writing to the
wrong device, so double-check before continuing.
diskutil list
Unmount the USB drive
macOS mounts USB drives automatically. Unmount it before writing, but do
not eject it. The device node still needs to remain available for
dd.
# Replace diskN with your actual disk number, such as disk2
diskutil unmountDisk /dev/diskN
Write the DMG to the USB drive
Use dd to copy the DMG to the raw device. The
rdisk path bypasses the buffer cache and usually writes much
faster on macOS.
# rdiskN is faster than diskN on macOS
sudo dd if=/path/to/gentoo.dmg \
of=/dev/rdiskN \
bs=1m \
status=progress
status=progress, dd may look like it is doing
nothing. That flag gives you visible progress instead of a blank terminal.
Eject cleanly
Once dd completes, eject the drive before physically removing
it.
diskutil eject /dev/diskN
Frequently Asked Questions
These are the practical questions people usually have when a Linux USB works one way on other systems but fails on Apple silicon macOS.
Why is writing the ISO directly with dd not enough here?
Because on Apple silicon macOS, writing the ISO directly to the raw disk can produce media that looks fine at the byte level but still is not recognized as bootable by the target system.
Why convert the ISO to a DMG first?
Converting with hdiutil lets macOS handle the image through its
own disk-image layer first, which tends to produce a USB that boots more
reliably.
What does -format UDRW do?
It creates a read/write disk image format that behaves correctly when written out to removable media from macOS.
Why use /dev/rdiskN instead of /dev/diskN?
On macOS, the raw device path usually writes faster because it bypasses the normal buffer cache.
Why unmount the USB instead of ejecting it?
Unmounting stops the filesystem from being actively used, but keeps the
device node available so dd can still write to it.
How do I avoid writing to the wrong disk?
Compare diskutil list output before and after inserting the USB
drive, then verify the disk number carefully before running any write
command.
Why is status=progress useful?
Because dd can otherwise appear frozen while it is still
working. The progress display gives you visible confirmation that data is
being written.
What is the biggest mistake in this process?
Usually either skipping the DMG conversion step or writing to the wrong disk device. Both can cost time, and the second can be destructive.
Comments
Post a Comment