On the emulator, I can unmount the SD card from the Settings.
I can then mount it on my OS, then unmount it normally.
I haven't been able to figure out how to re-mount it then on the emulator (without rebooting it).
hints:
the adb command remount is unrelated: it's about /system
the emulator command is unrelated: it's only about starting the emulator
mounting the SD card in two places of course messing everything up (I tried)
more:
mount outputs the following:
/dev/block//vold/179:0 /sdcard vfat rw,dirsync,nosuid,nodev,noexec,uid=1000,gid=1015,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
trying to mount again from the shell after unmounting it, using the same options as above, gives a segfault
no idea why the double slash in block//vold, I guess it's just a typo
The developers guide suggests that this isn't possible:
SD Card Emulation
You can create a disk image and then
load it to the emulator at startup, to
simulate the presence of a user's SD
card in the device. To do this, you
can use the android tool to create a
new SD card image with a new AVD, or
you can use the mksdcard utility
included in the SDK.
The sections below describe how to
create an SD card disk image, how to
copy files to it, and how to load it
in the emulator at startup.
Note that you can only load disk image
at emulator startup. Similarly, you
can not remove a simulated SD card
from a running emulator. However, you
can browse, send files to, and
copy/remove files from a simulated SD
card either with adb or the emulator.
The emulator supports emulated SDHC
cards, so you can create an SD card
image of any size up to 128 gigabytes.
While Android will unmount the SD card, the emulator process keeps the backing file open.
$ ls -go /proc/`pidof emulator`/fd | grep sdcard.img
lrwx------ 1 64 2010-05-13 01:50 10 -> /home/x/.android/avd/WithSD.avd/sdcard.img
Someone more familiar with QEMU may be able to provide further insight but, if I were you, I would just try to use NFS to solve this problem.
I tried going to Settings and unmounting the SD card and this worked fine. Give it a try; remounting it is quite simple.
Doesn't seem like this can be done via adb/cli though.
Related
I use adb shell to access an Android 4.4.2 tablet through a USB connection.
When trying to create a folder in the internal storage (/storage/sdcard0) I get the error 'Out of memory'.
The device has 20+ GB of free space and also has a second sd card mounted as /storage/sdcard1 where the folder can be created just fine.
Both volumes are using msdos.
I tried fsck_msdos to /dev/block/vold/179:9 (the physical path) but found no errors.
Any ideas before factory resetting the thing?
What suggested by Saehun was the correct answer but because I can't give the credits to him I close my own question. Thanks again Saehun!
I've partitioned my 32GB, class 10, SD card in the following way: 30GB FAT32, 2GB ext for the applications (to use with Link2SD Pro).
However, as soon as I reboot the system after transferring any app, second partition can't be mounted and I have no idea why is it happening.
I've tried ext2/3/4 with the exactly same results.
System mounts second partition without a problem until I put something on it, and then it won't do it again.
I've formatted the card using Partition Wizard, Recovery (TWRP 2.7.1.0), manually (adb shell) and nothing seems to make a difference.
The partition is still there (fdisk sees it) I just can't mount it.
If I run e2fsck on the ext partition (with -y) it just goes into infinite loop inode error
I did a surface test of the card but there are no errors present.
OS is FusionX (JB 4.1), phone Huawei Ascend G330.
Any help is appreciated!
does anybody know a way to change sd cards in avd dynamically?
emulator -avd avd_8 -sdcard /TMP/sdcard1.img
the command line starts a new instance of the avd. I need to do the stuff on the running avd
Regards,
Galym
I don't believe you can do this.
The SDCard mounts on boot. Physical devices have hardware sensors to detect insertion/removal of an SD card, which the AVD presumably cannot handle.
I haven't tried this, but you might be able to first unmount the SD card in the Android main menu on the emulator, and then use the avd command to remount a different one.
I want to have access to an ext4 partition, without using Data2SD yet, on the SD card of my HTC Vision running the Virtuous Unity 1.3.0 ROM. I modded my /system/etc/vold.fstab file from this:
dev_mount sdcard /mnt/sdcard auto /devices/platform/goldfish_mmc.0
/devices/platform/msm_sdcc.4/mmc_host/mmc2
To this:
#dev_mount sdcard /mnt/sdcard auto /devices/platform/goldfish_mmc.0
/devices/platform/msm_sdcc.4/mmc_host/mmc2
dev_mount sdcard /mnt/sdcard 1 /devices/platform/goldfish_mmc.0 /devices/platform/msm_sdcc.4/mmc_host/mmc2
dev_mount e4vol /mnt/sdcard2 2 /devices/platform/goldfish_mmc.0
/devices/platform/msm_sdcc.4/mmc_host/mmc2
So I can get my second partition, with label e4vol, mount and usable on my Android device. Two issues, and I think one obviously has to do with the other.
I have tried remounting the root read-write and creating the mount point /mnt/sdcard2, but it is gone on reboot. Seems like Android might have in the past created such mounts with mount.conf. Now it does not exist on Gingerbread ROMS. Thoughts?
Is this all I would have to do to get my second partition mounted in Android, or do I also need to create /sdcard2 like /sdcard? I presume both are created as symlinks by vold as specified in this conf file, but I have not had time to check yet.
I would ask forums, but this seems like a developer question and this is the most recent release of the OS. It seems to change a lot from version to version of the OS. Thanks in advance for your patience and help.
UPDATE: So, moved the test mount to sdcard, and it did not work, even with a persistent mount point. So, not sure where I am going wrong.
Maybe you'll have to have a look into /init.rc.
There are some "mkdir /mnt/..."-statements. You only have to add your "mkdir /mnt/sdcard2" and "ln -s /mnt/sdcard2 /sdcard2" to this file.
But be careful when editing this file!!!
I looked at the vold source up to including Icecream-Sandwich: it’s final mount() system call is hardcoded to the “vfat” file system type. – Even if you get it to try the mount, it would fail.
I myself actually want to mount my ext4 SD card to /sdcard, because I regularly suffer from SD card FAT file system corruptions (and I’m not the only one having those with Android).
The alternative is: modify the init/boot process to just mount the partition where you want, bypassing vold.
On a relatively new emulator image (AVD) I have about 40mb of free space. How can I expand this?
UPDATE:
Just to be clear... I'm talking about the "Internal phone storage" size, not the SD Card size.
I think:
$ emulator -partition-size <number of megabytes>
is what you're looking for. I tried a few different values in the emulator and the "internal phone storage" setting seemed to reflect the values I passed in.
If you're talking about the SD card size, I believe you'll need to make a new SD card file of a larger file, then load your AVD using the new SD card you've created. They have instructions on how to create an SD card (and load it into an AVD) here: http://developer.android.com/guide/developing/tools/emulator.html#creatingm
Essentially, make the SD card:
$ mksdcard <size> <file>
Then load it into your emulator using the -sdcard argument:
$ emulator -sdcard <filepath>