How to remove U3 from Sandisk jump/flash drives on GNU/Linux
For a long time, the U3 technology on sandisk cruzer devices has been annoying Windows and Linux users alike. The issue is that there is some hardware built into the device that maps part of the drive as a hardware CD-rom drive and performs some “big-brother” style property storage. The idea, in theory, is that using a sandisk cruzer would allow the device to store properties of applications you use commonly, all without your intervention. It also allows the drive to more easily be used as a boot device, as it pretends to be a USB CD-rom drive. And by the way, it also takes up extra storage on the device, so your 16gb flash drive is only usable at the ~14gb level with U3 installed. The icing on the cake is that until recently, there was no way, using open source software, to remove this “feature”. The only thing you could do is download the binary blob and find a windows pc and run the application on the device that flashes the firmware to remove the logic that sets up the CD-rom portion.
Not any more.
Doing “sudo apt-get install u3-tool” on debian based distros, or the like on most other distros, will give you a tool that allows you to manipulate the hardware controlling u3, all from the comfort of the linux command line.
To remove u3, first make a backup of your files on the device, if any. This is mainly a precaution, as some of the operations using u3-tool do retain data. For the sake of this article, it is wise to assume all your data will be irrecoverably destroyed. Just make a backup…
Then, execute the following steps:
- Do “sudo apt-get install u3-tool”, or the equivalent in your distribution.
- Plug in the flash drive.
- Observe that it mounts 2 different points by using the “df -h” command:
/dev/sr1 6828 6828 0 100% /media/U3 System
/dev/sdc1 15640000 108416 15531584 1% /media/A3CC-70F0
apparently sr1 seems to be common to most cruzers, but sdc1 will likely be slightly different for you, as it depends on how many drives you have installed. In this case, /dev/sdc1 is the drive with U3 on it.
- We want to hit the main device mount with the remove command, so I target sdc1 in this case. Your target may be slightly different, but you should be able to identify it by choosing the drive that is closest to the size of the flash drive. If you have more than one of the same size, just unplug the flash drive and see which one sticks around. then plug it back in.
- Execute “sudo u3-tool -p 0 /dev/sdc1”, where /dev/sdc1 is your actual device you found in step 3 and 4
- cd back to the device root mounted at something like /media/A3CC-70F0 and “rm -rf /media/A3CC-70F0/System” and “rm LaunchU3.exe”
- you now should have a clean device