找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 14186|回复: 0
打印 上一主题 下一主题
收起左侧

手机外插sd卡与内置sd卡相互转换挂载目标路径

[复制链接]
跳转到指定楼层
楼主
ID:75926 发表于 2015-4-4 14:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
       对于拥有内置sd卡与支持外插扩展sd卡的机型,内置sd卡一般是从fat分区挂载到/mnt/sdcard目录下。而扩展的sd卡,则是挂载到/mnt/sdcard/external_sd目录。

         系统一般是根据路径mnt/sdcard识别sdcard(而不管该目录是哪个分区),并把该路径设为程序的默认数据存储路径(有些软件指定把数据存于外插sd卡则是根据系统提供的mnt/sdcard/external_sd路径识别)。
    有时候,感觉下载东西较多,或安装的软件存的数据过多,就会显得内置存储不够用。这时候,可以把大容量8G、16G等外插sd卡挂载到/mnt/sdcard目录,并把内置sd卡挂载到/mnt/sdcard/external_sd目录。这样,根据系统的这种设置,软件默认存于内置存储的数据将实际保存到外插大容量卡上。或者,你所下载的文件也会根据这种设置保存到sd卡。

       4.0及以上版本,共有两种方法。4.0 以下不知道是否支持方法二。


修改数据挂载路径:

一:
         注意,接下来说到的操作具有危险性。请不要轻易尝试!

   首先,你的手机必须已root方可操作系统文件。下载安装re管理器。

  1. re管理器进入到/system/etc目录,找到vold.fstab,挂载system分区读写。
         这时先要做个备份。
不管理你用的什么软件来修改文件,最好做个备份。可以把该文件复制一份到上一个文件夹system目录下,方便出错还原。re管理器会自动备份并后缀.bak,这时,你可以通过修改后缀还原。需要注意的是,复制到sd卡等于没用,万一出错,你会连sd卡目录都进不了,不管是外置的还是内置的。所以,你务必要小心。

2.   长按文件,选择文本编辑器打开。

  以下是我的机型的vold.fstab文件:有些机型可能不一样,详细还需要你摸索。

———————————————————————————————————————————
## Vold 2.0 Generic fstab
## - San Mehat (
san@android.com)
##
#######################
## Regular device mount
##
## Format: dev_mount <label> <mount_point> <part> <sysfs_path1...>
## label        - Label for the volume
## mount_point  - Where the volume will be mounted
## part         - Partition # (1 based), or 'auto' for first usable partition.
## <sysfs_path> - List of sysfs paths to source devices
######################
## Example of a standard sdcard mount for the emulator / Dream
# Mounts the first usable partition of the specified device
dev_mount sdcard /mnt/sdcard emmc@fat /devices/platform/goldfish_mmc.0 /devices/platform/mtk-sd.0/mmc_host
dev_mount external_sdcard
/mnt/sdcard/external_sd auto /devices/platform/goldfish_mmc.1 /devices/platform/mtk-sd.1/mmc_host
## Example of a dual card setup
# dev_mount left_sdcard  /mnt/sdcard1  auto /devices/platform/goldfish_mmc.0 /devices/platform/mtk-sd.0/mmc_host/mmc0
# dev_mount right_sdcard /mnt/sdcard2  auto /devices/platform/goldfish_mmc.1 /devices/platform/mtk-sd.2/mmc_host/mmc2
## Example of specifying a specific partition for mounts
# dev_mount sdcard /mnt/sdcard 2 /devices/platform/goldfish_mmc.0 /devices/platform/msm_sdcc.2/mmc_host/mmc1
———————————————————————————————————————————

        
      
注意到vold.fstab文件中,即上面两行红色字体部分,它们就是sd卡挂载目录的具体设置,其余大部分是注释(outo 表示挂载外插sd卡第一主分区,可以不改动。)。把其中的蓝色字体部分互换保存即可。但需要注意空格不能多也不能少,也不能修改其它地方,/符号不能少也不能用反方向的。在修改过程不能使用回车换行,只能在原文件的基础上修改字母。输入法要切换到英文输入,使用英文字符。
   
下面是改好的:

dev_mount sdcard /mnt/sdcard/external_sd emmc@fat
/devices/platform/goldfish_mmc.0 /devices/platform/mtk-sd.0/mmc_host
dev_mount external_sdcard
/mnt/sdcard auto /devices/platform/goldfish_mmc.1 /devices/platform/mtk-sd.1/mmc_host

  
       这种修改方法其实就是修改分区的挂载目录,以让系统把mnt/sdcard这个路径识别成默认的路径,并提供给应用程序。

           还有个类似的文件vold.fstab.nand,改不改都无所谓。

           修改完毕确认无误后,保存,重启手机。

       需要注意的是,修改后,你不能把sd卡取出并开机使用。如果你这么做,系统将会连内置存储都识别不到,手机无法正常使用。

———————————————————————————————————————————


二:
       鉴于方法一的危险性,推荐一个简单安全的方法,无需root权限。即
通过改变系统默认数据存储路径实现将数据保存到外插sd卡

        1.打开手机拨号器,即“电话”
       2.输入*#08#
        3.选择“sd卡”即可。

      不管你是用方法一或者二,修改数据默认路径后,原先应用程序所保存在sd卡或外置sd卡上的数据将无法再正常读取。可能导致系统变化或者应用程序读取不到之前的数据,造成数据丢失的假象。
       解决方法:首先把应用及系统在  内外存储卡  产生的文件及文件夹做个备份,并交换内置sd卡与外插sd卡的应用程序数据。
即是把外插sd卡的相应文件复制到内置sd中,把内置sd卡的相应文件复制到外插sd卡。

                                                                        【完】

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表