4

I have a Galaxy Nexus (toro) device. It's flashed with the latest touch ClockworkMod recovery image, along with a milestone snapshot of CyanogenMod 11.

Now, when I try to pick a zip file to flash from the SD card, ClockworkMod gives me an error that it can't mount /sdcard. The Galaxy Nexus has no internal SD card, so I assume that it can't mount properly because it's already there (there is an /sdcard directory, it's just stored on the internal flash memory and so can't be mounted). So far I've been using sideload to flash things, but it'd be nice if I could push files to the SD card. It's worth mentioning that I have data encryption turned on.

How can I tell ClockworkMod that /sdcard doesn't need to be mounted, because it's stored on the internal flash?

I have read this related question, but it appears to be about mounting problems due to the locked-down nature of most Samsung Galaxy devices. I have no such problem, having a Nexus device.

4
  • 2
    I think this is actually a bug in CWM related to device encryption, because /sdcard is essentially a virtual directory linked to /data/media, and you've encrypted the data partition. TWRP, if I'm remembering right, will prompt you to enter your password if it detects an encrypted partition so that it can read from it. CWM may not have implemented that, so it simply won't be able to read from your internal storage. Not positive, though, as I don't have my devices encrypted currently. Feb 1 '14 at 22:10
  • @eldarerathis all that sounds right, but IIRC this problem happened even before I turned on device encryption. I'll try flashing TWRP, though.
    – strugee
    Feb 1 '14 at 22:12
  • Don't know what would be the cause in that case, then. CWM should, in theory, be able to find your /sdcard partition regardless of whether it's on your internal storage or an external card (it works on my unencrypted N5 and N10, for example). I never really used CWM on my old toro, though - I used TWRP. Certainly possible that it's a bug in the toro build. Feb 1 '14 at 22:14
  • 1
    @eldarerathis looks like you were right. flashing TWRP fixed the problem. if you add an answer, I'll accept it
    – strugee
    Feb 1 '14 at 22:19
3

The important part looks to be this:

It's worth mentioning that I have data encryption turned on.

I don't believe ClockworkMod can handle encrypted devices as of yet, which is problematic for devices that lack true external storage support (e.g. SD cards). The reason it's a problem is that /sdcard on these devices is not a separate partition, it's a FUSE mount point for the /data/media directory. Therefore, when you boot into recovery, it can't access your internal /sdcard directory because it is encrypted.

TeamWin Recovery, as of version 2.2.0, does support decrypting your device when booting into recovery. They actually specifically noted the Galaxy Nexus in the release notes, possibly because they had to implement the decryption differently on non-AOSP devices (e.g. support for encrypted TouchWiz devices is listed in version 2.4.0.0):

What's new in version 2.2.0

  • Support decrypting an encrypted data partition on Galaxy Nexus (enter password using keyboard)

Realistically, the best bet if you want to encrypt your device would probably be to use TWRP instead of CWM. Otherwise you'll have to continue jumping through some hoops when trying to use your recovery. You can download TWRP from their website.

3
  • nit: are you sure it's a FUSE mount? it seems like it would more likely be a bind mount.
    – strugee
    Feb 2 '14 at 0:42
  • @strugee: On my N5, at least, it's FUSE. You have to do some bouncing around to resolve all the links, but ultimately it's /sdcard -> /storage/emulated/legacy -> /mnt/shell/emulated/0, and the info from mount shows: /dev/fuse /mnt/shell/emulated fuse ...other options.... Feb 2 '14 at 0:49
  • 1
    Actually, another good resource is this page on source.android.com, which talks about the architecture of the external storage. It very briefly notes that multi-user storage is accomplished by first using FUSE for the general external storage mount point, but then doing a bind mount on the user's subdirectory (0, 01, etc) within the FUSE mount point. So in that case, I guess it's sort of a combination of the two, but the "root" of the external storage mount point (as it were) is using FUSE. Feb 2 '14 at 0:56

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.