bchunk — convert .bin/.cue images to .iso and .wav on Linux and macOS
bchunk (binchunker) splits a .bin/.cue CD image into .iso for the data track and .wav files for each audio track. The canonical tool for turning a mixed-mode BIN/CUE into something you can mount or burn.
TL;DR — bchunk — sometimes called binchunker — is a small, old, Unix command-line tool that takes a .bin/.cue pair (a raw CD image with a cue sheet) and splits it into a proper .iso file for the data track and one .wav file per audio track. It’s the right tool when a download or archive gave you game.bin + game.cue and you actually want to mount the data track or re-burn the audio tracks. Install with apt install bchunk on Debian/Ubuntu, brew install bchunk on macOS, or build from source on anything else. Usage is bchunk [options] image.bin image.cue basename — you get basename01.iso, basename02.wav, basename03.wav, and so on.
What .bin/.cue is, and why you’d want to split it
A .bin/.cue pair is a raw, bit-accurate CD image plus a plain-text sheet that describes the track layout. The .bin contains every sector of the CD back-to-back — including data tracks (Mode 1 or Mode 2), audio tracks (raw Red Book PCM, 2352 bytes per sector, no filesystem), and the gaps between them. The .cue tells you where each track starts and what type it is.
This format is the standard output of CD-ripping tools like cdrdao and of old game-preservation scrapes, because it preserves everything — pregaps, CD-TEXT, mixed-mode CDs, CD-DA audio. That’s also why you can’t just rename game.bin to game.iso and mount it: a mixed-mode CD has non-filesystem sectors at the beginning, audio tracks that aren’t a filesystem at all, and per-sector headers that ISO expects stripped.
bchunk does the conversion properly:
- Data tracks become ISO 9660 files (
.iso) — the 2352-byte CD sectors are trimmed to 2048-byte ISO sectors, headers discarded. - Audio tracks become 16-bit stereo 44.1 kHz
.wavfiles, each with a proper WAV header.
After that you can mount -o loop the .iso, play the .wavs, or feed them to a burner.
Installing
Debian / Ubuntu / Mint
sudo apt install bchunk
macOS (Homebrew)
brew install bchunk
Arch / Manjaro
sudo pacman -S bchunk
# or from AUR: yay -S bchunk
Fedora / RHEL / CentOS
bchunk isn’t in the default repos; get it from RPMFusion or build from source:
git clone https://github.com/hessu/bchunk.git
cd bchunk
make
sudo cp bchunk /usr/local/bin/
Windows
Use WSL and apt install bchunk. There’s an old native port but WSL is easier.
Basic usage
bchunk game.bin game.cue game
Output:
game01.iso # data track, mountable as ISO 9660
game02.wav # audio track 1
game03.wav # audio track 2
...
The basename (game in the example) is the prefix for every output file. Track numbers start at 01.
Useful options
bchunk has a small, stable set of flags — most of them are there to handle specific CD quirks.
-v— verbose. Prints each track as it’s processed. Use this the first time you run it to confirm you’re getting the track layout you expect.-w— write.wavfiles (default). Explicit form.-r— raw audio output instead of.wav. Useful if you’re piping intosoxorffmpegand don’t want a second header-stripping step.-p— Psx/PlayStation mode. Treats Mode 2 sectors more loosely — needed for many PlayStation CD images where the cue sheet is imprecise.-s— swap byte order on audio tracks. Needed if the.binwas produced by a ripper that wrote little-endian audio wherebchunkexpects big-endian (or vice versa). Symptom: output.wavsounds like white noise.-W— write.wavwith a verified (rather than computed) header size. Rarely needed.-E— use the exact track boundaries from the cue sheet rather than probing. Use this if audio tracks sound clipped at the beginning or end.
Mounting the resulting .iso
On Linux:
sudo mkdir /mnt/cd
sudo mount -o loop game01.iso /mnt/cd
ls /mnt/cd
On macOS:
hdiutil attach game01.iso
Common gotchas
“Illegal or unsupported track type” or empty output
Your cue sheet is malformed or references a .bin size that doesn’t match. Open the .cue in a text editor — it’s plain text — and check:
- The
FILE "..."line points at the right.binfilename, case-sensitive. TRACKentries are numbered sequentially with typesMODE1/2352,MODE2/2352, orAUDIO.- Index entries (
INDEX 00,INDEX 01) are MM:SS:FF, with FF being frames (0–74).
Audio tracks sound like static
Byte order mismatch. Retry with -s:
bchunk -s game.bin game.cue game
Single .iso is fine, but audio tracks are silent or truncated
Try -E to force cue-sheet-exact boundaries:
bchunk -E game.bin game.cue game
PlayStation/PSX image won’t split cleanly
Use -p:
bchunk -p psx.bin psx.cue psx
This is the most common complaint on forums — PSX cues are almost always Mode 2 and bchunk without -p is strict about them.
Multiple .bin files referenced in the cue
Some rippers produce one .bin per track plus a combining cue sheet. bchunk expects one .bin for the whole disc. Concatenate them first with cat track01.bin track02.bin ... > combined.bin and point a single-file cue at combined.bin.
Alternatives worth knowing
cdemu— user-space CD emulator for Linux. Can mount a.bin/.cuedirectly without splitting. Useful if you just want to read the data track temporarily.ecm-tools— different format (.ecm), but same problem space. Worth knowing if you encounter it.7z/p7zip— newer 7-Zip versions can list and extract ISO 9660 data tracks from a raw.bin, but can’t recover audio as.wav.ffmpeg— if you want MP3 / FLAC / Opus instead of.wav, pipe the raw output:bchunk -r game.bin game.cue game && ffmpeg -f s16be -ar 44100 -ac 2 -i game02.raw game02.flac.
Why it’s still useful in 2026
Optical-media imaging has been a solved problem for decades, but .bin/.cue is still the default output of cdrdao, still what old archives are stored as, and still what shows up when someone hands you a CD backup that isn’t an ISO. bchunk is a ~1,000-line C program, written in the late 1990s, that does one job correctly and has barely changed in twenty years. It’s in every major distribution, it compiles cleanly on modern systems, and it’s the right tool.
If you’re trying to recover data from an old CD image: start here.