Hello this is my first time using etcher so please bear with me here but im trying to make a bootable snow leopard mac os on a usb drive on my windows computer and this is the error I got from etcher, the ISO im using is a snow leopard iso i found online but im not sure what a partition table is the while the mac did boot from this usb, halfway through installing with this usb drive it runs into an error so im not sure what the fix here would be, any help is appreciated. Thanks!
ERROR CODE:
βIt looks like this is not a bootable image. The image does not appear to contain a a partition table, and might not be recognized or bootable by your device.β
Hello,
This is not an error, just a warning. Etcher looks for a GPT or MBR partition table in disk images and warns you if it canβt find one.
Depending on the device that youβll be using the flashed disk with, it might still boot. And it looks like it booted in your case so this is not an issue.
I know this is not on topic, but I was wondering if you had a list of steps from a wiped hdd to a working mac. I actually am also trying to do snow leopard. I have yet to find an iso, but I have a dmg.
I just wanted to write Windows installer ISO-s on Mac but the same issue happened. Then I managed to make it on a Windows using Rufus. Now, Rufus DID make a bootable drive from the SAME ISO which balenaEtcher failed to make from.
Guys, we love this app, itβs seamless β until we donβt want to make bootable Windows drives. Yet, it means that balenaEtcher does not know something it should know and whatβs possible: to make a bootable Windows installer from an ISO file.
Etcher currently doesnβt support creating Windows bootable disks, mostly due to complexity around NFTS and FAT limitations.
In the meantime, to create one on macOS:
brew install wimlib
image_file=Win10_20H2_v2_English_x64.iso
hdiutil mount ${image_file}
# assuming USB is on /dev/disk2
usb_disk=$(diskutil list | grep external | head -n 1 | awk '{print $1}')
diskutil eraseDisk MS-DOS "WINDOWS10" MBR ${usb_disk}
rsync -avh --progress --exclude=sources/install.wim /Volumes/DVD_ROM/ /Volumes/WINDOWS10
wimlib-imagex split /Volumes/DVD_ROM/sources/install.wim /Volumes/WINDOWS10/sources/install.swm 3800
hdiutil eject /Volumes/WINDOWS10
hdiutil eject /Volumes/DVD_ROM
This requires the target Windows device to have UEFI boot options enabled (not legacy boot).
Etcher will however write /Applications/Install\ macOS\ {Catalina,BigSur,etc.}.app/Contents/SharedSupport/BaseSystem.dmg to a USB drive, which will be bootable without any further steps.
Updated Shell script once youβve installed wimlib:
#!/usr/bin/env bash
set -euo pipefail
IFS=$'\n\t'
#ββ CONFIGURATION ββ#
IMAGE="${1:-Win10_22H2_English_x64v1.iso}" # use first argument or default
LABEL="WINDOWS10" # USB label
WIM_SPLIT_SIZE=3800 # max size per .swm chunk, in MB
#ββ HELPERS ββ#
die(){ echo "ERROR: $*" >&2; exit 1; }
# Check if file exists
check_file(){
local file="$1"
if [[ ! -f "$file" ]]; then
die "Required file '$file' does not exist or is not accessible."
fi
echo "File found: $file ($(du -h "$file" | cut -f1) in size)"
}
check_dir(){
local dir="$1"
if [[ -z "$dir" ]]; then
die "Empty directory path provided."
fi
if [[ ! -d "$dir" ]]; then
die "Required directory '$dir' does not exist or is not accessible."
fi
echo "Directory verified: $dir"
}
#ββ VERIFY PREREQUISITES ββ#
echo "Verifying ISO file..."
check_file "$IMAGE"
# Check required tools
command -v hdiutil >/dev/null 2>&1 || die "hdiutil is required but not installed."
command -v diskutil >/dev/null 2>&1 || die "diskutil is required but not installed."
command -v rsync >/dev/null 2>&1 || die "rsync is required but not installed."
command -v wimlib-imagex >/dev/null 2>&1 || die "wimlib-imagex is required but not installed."
#ββ 1. Mount ISO and find its mount-point ββ#
echo "Mounting ISO '$IMAGE'..."
MOUNT_OUTPUT=$(hdiutil attach "$IMAGE" -nobrowse -readonly 2>&1) || die "Failed to mount ISO: $MOUNT_OUTPUT"
echo "Mount output: $MOUNT_OUTPUT"
# Better parsing of mount point - look for the device and path
ISO_DEV=$(echo "$MOUNT_OUTPUT" | awk '{print $1}' | grep "^/dev/" | head -1)
if [[ -z "$ISO_DEV" ]]; then
die "Failed to determine ISO device."
fi
# Find the volume from mounted filesystems
ISO_MOUNT=$(df -h | grep "$ISO_DEV" | awk '{print $NF}')
if [[ -z "$ISO_MOUNT" ]]; then
die "Failed to determine ISO mount point."
fi
check_dir "$ISO_MOUNT"
echo "ISO mounted at: $ISO_MOUNT"
#ββ 2. Identify & wipe USB ββ#
echo "Locating external USB disk..."
USB_DEV=$(diskutil list | awk '/external/ {print $1; exit}')
[[ -n "$USB_DEV" ]] || die "No external USB disk found."
echo "Erasing $USB_DEV as FAT32 MBR ($LABEL)β¦"
diskutil eraseDisk MS-DOS "$LABEL" MBR "$USB_DEV" \
|| die "Failed to erase $USB_DEV."
#ββ 3. Mount the new USB volume ββ#
echo "Mounting USB volume..."
diskutil mountDisk "$USB_DEV" \
|| die "Could not mount $USB_DEV after erase."
USB_VOL="/Volumes/$LABEL"
check_dir "$USB_VOL"
echo "USB mounted at: $USB_VOL"
#ββ 4. Prepare source exclusion and copy ββ#
echo "Verifying Windows installer files..."
check_dir "$ISO_MOUNT/sources"
if [[ ! -f "$ISO_MOUNT/sources/install.wim" ]]; then
echo "Checking for alternative installer file locations..."
if [[ -f "$ISO_MOUNT/sources/install.esd" ]]; then
echo "Found install.esd instead of install.wim - converting..."
wimlib-imagex export "$ISO_MOUNT/sources/install.esd" all "$USB_VOL/sources/install.wim" || die "ESD to WIM conversion failed."
INSTALL_WIM="$USB_VOL/sources/install.wim"
else
die "Cannot find install.wim or install.esd in the ISO."
fi
else
INSTALL_WIM="$ISO_MOUNT/sources/install.wim"
fi
echo "Copying installer files (excluding install.wim/install.esd)β¦"
# Ensure the target exists
mkdir -p "$USB_VOL"/sources
rsync -avh --progress \
--exclude='sources/install.wim' \
--exclude='sources/install.esd' \
"$ISO_MOUNT"/ \
"$USB_VOL"/ \
|| die "rsync copy failed."
#ββ 5. Split the big WIM into SWM chunks ββ#
echo "Splitting install.wim into ${WIM_SPLIT_SIZE}MB chunksβ¦"
wimlib-imagex split \
"$INSTALL_WIM" \
"$USB_VOL/sources/install.swm" \
"$WIM_SPLIT_SIZE" \
|| die "wimlib-imagex split failed."
#ββ 6. Clean up mounts ββ#
echo "Unmounting USB and ISOβ¦"
diskutil unmountDisk "$USB_DEV" \
|| echo "Warning: could not unmount $USB_DEV cleanly."
hdiutil detach "$ISO_MOUNT" \
|| echo "Warning: could not detach ISO mount."
echo "Done. Your Windows recovery USB is ready."