wget "http://wifipineapple.com/index.php?downloads&downloadUpgrade=2.8.0" -O upgrade.bin binwalk upgrade.bin example output: DECIMAL HEX DESCRIPTION ------------------------------------------------------------------------------------------------------- 0 0x0 Squashfs filesystem, little endian, version 4.0, compression: size: 5197504 bytes, 1579 inodes, blocksize: 262144 bytes, created: Sun Mar 3 08:24:39 2013 6291456 0x600000 uImage header, header size: 64 bytes, header CRC: 0xD22A6633, created: Sun Mar 3 08:24:44 2013, image size: 913361 bytes, Data Address: 0x80060000, Entry Point: 0x80060000, data CRC: 0x3085D0DC, OS: Linux, CPU: MIPS, image type: OS Kernel Image, compression type: lzma, image name: "MIPS OpenWrt Linux-3.7.9" 6291520 0x600040 LZMA compressed data, properties: 0x6D, dictionary size: 8388608 bytes, uncompressed size: 2808940 bytes we want the first partition in this case, so we will extract it using ‘dd’ dd if=upgrade.bin of=pineapple.img bs=1 count=5197504 #the 5197504 is from the binwalk output. unsquashfs pineapple.img #creates and extracts to folder ‘squashfs-root’ If you want to put the extracted files into an img file: du squashfs-root #find out how big the squashfs-root dir is (Just over 20M in this case) dd bs=512 count=50000 if=/dev/zero of=openwrt.img #creates a empty IMG file that is about 26M mkdir op sudo mount -o loop openwrt.img op sudo cp -pfr squashfs-root/* op/ #copies with permissions intact sudo umount op