Recovery mode of the Kurobox Pro

Kurobox Pro from the front

If the Kurobox Pro is configured to boot from disk but there is no disk, the device will request the files uImage.buffalo and initrd.buffalo via TFTP. The Kurobox Pro will use the IP address 192.168.11.150 and request the images from the TFTP server with the address 192.168.11.1. However, it's possible to change these values in the u-boot configuration environment.

Loading the original Buffalo firmware

If you made a copy of /dev/mtdblock1 (the kernel) of your Kurobox Pro, you can put the kernel on the TFTP server and start the Buffalo firmware that is stored in flash. You first have to extract the kernel from the mtd1 file:

dd if=mtd1 of=uImage.buffalo bs=131072 skip=1

Next, you have to generate a ramdisk. Even though we don't need one, the recovery mode wants to load one. So we can generate an empty ramdisk:

mkdir x ; cd x
find . | cpio --quiet -o -H newc > ../x2
cd ..
mkimage -A arm -O linux -T ramdisk -C gzip -a 0x0 -e 0x0 -d x2 initrd.buffalo
rmdir x ; rm -f x2

Alternatively, you can download the empty initrd from my server.

When you put these two files (uImage.buffalo and initrd.buffalo) on your TFTP server and boot without a hard drive, the original Buffalo firmware will be started. You can then configure the u-boot environment so the Kurobox Pro will start from flash. You can then put the disk back into your device, boot into the Buffalo firmware and hopefully fix what's broken.

Loading the Debian installer

You can also load the Debian installer via the recovery mode, although I'm not sure how useful it is since the recovery mode only works when the SATA disk is not connected.

In any case, you have to download the kernel and ramdisk from the Debian installer pages and then pad the ramdisk to 20M because the recovery mode has some strange assumptions:

dd if=initrd.buffalo-debian of=x bs=64 skip=1 # extract ramdisk
dd if=x of=x2 ibs=20971520 conv=sync # pad to 20 MB
mkimage -A arm -O linux -T ramdisk -C gzip -a 0x0 -e 0x0 -d x2 initrd.buffalo
rm -f x x2

Now you can use new initrd.buffalo file and the uImage.buffalo file you downloaded in order to start the Debian installer.