Back Home Translate Posts Posts About About Links Links

WTF why do you want to do this?

"Because we can"

Well, the actual reason I did this is because the operating system on my laptop just broke down and I don't have any USB drives lying around. But I have a Walkman, another computer that runs Linux, and a good Internet connection.

(Pretty rare scenario, I admit.)1

A little bit of background

To be specific, I'm using a ZX300a. If you really want to try this, just check you have a Walkman that supports USB Mass Storage mode. This mode basically turns the device into a USB flash drive.

Most Walkmans which runs the proprietary system (which is actually based on Linux2) use this mode, but some models that uses Android does not support it (such models use the crappy MTP protocol).

Thanks to the UEFI specification, on a USB drive, it is quite simple to make an OS to boot. Just copy everything to the FAT32-formatted partition on the USB drive and voilĂ ! It's that simple.

However, since the Walkman is never meant to be used as a USB drive, there's some issues:

  • The drive letter is not ARCH_201910 (name may vary based on the specific archiso version you are using).

  • Walkman's OS "intelligently" shuts down the Mass Storage mode if it thinks it is disconnected from the computer.

    • Thus, you have to be fast on turning on the USB Mass Storage mode just after the computer is launched.

    • Also, after the Linux kernel is loaded and is initializing hardware, the mode is automatically disabled. A manual mount of the drive is needed.

Fortunately, these problems can be bypassed relatively easily.


If you still think this is cool and want to try it out, here's how you do it.

Prepare the Walkman

First, grab a computer and download the latest archiso. For now the latest version is 2019-10, so I'll use this as an example.

Then, connect the Walkman to the computer and enable Mass Storage mode. Mount the internal partition to a mount point of your choice, and copy all files from the archiso to the Walkman partition.

Just in case you don't know how to mount a ISO image to a mount point, here's how you do it:

sudo mount -t iso9660 -o loop archlinux-2019.10.01-x86_64.iso /mnt/iso

Then, edit $WM_DIR/loader/entries/archiso-x86_64.conf. Change the options line to3 (find your own disk id by using ls -al /dev/disk/by-id)

options archisobasedir=arch archisodevice=/dev/disk/by-id/usb-SONY_WALKMAN_1234567890ABCD-0:0


Now, umount all partition of the Walkman, disable Mass Storage mode, and plug it into the desired computer.

Start the desired computer, (quickly) enable the USB Mass Storage mode on Walkman and press F12 to choose boot device at the same time. Timing is essential here.

There should be two options appear at the Boot Menu. One is USB FDD: SONY WALKMAN and the other one is USB HDD: SONY WALKMAN. It seems that the FDD drive corresponds to the internal memory and the HDD drive corresponds to the SD card. So use the FDD one.

Two Walkman USB devices in the boot menu

Then choose to boot from archiso. After the kernel is loaded, the Walkman disables the Mass Storage mode so the kernel cannot find the /run/archiso/bootmnt partition. Nasty little Walkman.

Confused Arch Linux and naughty Walkman

So we have to do it manually. After the Walkman finishes refreshing database, turn on Mass Storage once again. Then in the interactive fallback shell, type

mount /dev/disk/by-id/usb-SONY_WALKMAN_1234567890ABCD-0:0 /run/archiso/bootmnt

Now archiso has everything it needs to boot and it should go through the boot process flawlessly and take you to the shell. Hooray!

Going through the normal boot process
We have access to the archiso environment!

Then what?

Then? You can just use your archiso as normal. Repair broken Linux, install Arch Linux, whatever you want. It's just archiso, after all.


If, unfortunately, you encounter a similar situation but have a rooted Android phone, try DriveDroid. It actually has served me very well since the Android 4.4 KitKat age, but unfortunately on that day it is not working properly. Probably due to Android 10. Anyway, much more convenient than setting up a Walkman.


You can actually find the source code for ZX300 here, on Sony's website.