如何让安卓挂载 EXT4 格式的 SD 卡?

2016-04-22 14:14:54 +08:00
 VVD
突发奇想,既然内核支持 EXT4 ,为什么不把外置储存卡格式化成 EXT4 ?我把 SD 卡格式化成 EXT4 后插入手机,结果提示 SD 卡受损,必须重新格式化。

shell@android:/ $ mount
rootfs / rootfs ro,relatime 0 0
tmpfs /dev tmpfs rw,nosuid,relatime,mode=755 0 0
devpts /dev/pts devpts rw,relatime,mode=600 0 0
proc /proc proc rw,relatime 0 0
sysfs /sys sysfs rw,relatime 0 0
none /acct cgroup rw,relatime,cpuacct 0 0
tmpfs /mnt/secure tmpfs rw,relatime,mode=700 0 0
tmpfs /mnt/asec tmpfs rw,relatime,mode=755,gid=1000 0 0
tmpfs /mnt/obb tmpfs rw,relatime,mode=755,gid=1000 0 0
none /dev/cpuctl cgroup rw,relatime,cpu 0 0
/emmc@android /system ext4 ro,noatime,noauto_da_alloc,commit=1,data=ordered 0 0
/emmc@usrdata /data ext4 rw,nosuid,nodev,noatime,discard,noauto_da_alloc,data=ordered 0 0
/emmc@cache /cache ext4 rw,nosuid,nodev,noatime,discard,noauto_da_alloc,data=ordered 0 0
/dev/block/loop0 /mnt/cd-rom iso9660 ro,relatime 0 0
/emmc@protect_f /protect_f ext4 rw,nosuid,nodev,noatime,nodelalloc,noauto_da_alloc,commit=1,data=ordered 0 0
/emmc@protect_s /protect_s ext4 rw,nosuid,nodev,noatime,nodelalloc,noauto_da_alloc,commit=1,data=ordered 0 0
/dev/block/vold/179:8 /storage/sdcard1 vfat rw,dirsync,nosuid,nodev,noexec,relatime,uid=1000,gid=1015,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0

外置的 SD 卡应给是 /dev/block/vold/179:7 ,看得出没有挂载。

查看 vold.fstab

shell@android:/ $ cat /system/etc/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 --phone: sdcard2(path: /storage/sdcard1); external sd card: sdcard(path: /storage/sdcard0)
dev_mount sdcard2 /storage/sdcard1 emmc@fat /devices/platform/goldfish_mmc.0 /devices/platform/mtk-msdc.0/mmc_host
dev_mount sdcard /storage/sdcard0 auto /devices/platform/goldfish_mmc.1 /devices/platform/mtk-msdc.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


这该怎么改呢,才能实现自动挂载 EXT4 ?
17941 次点击
所在节点    Android
11 条回复
aa45942
2016-04-22 14:45:54 +08:00
貌似自动挂载的是 vfat 格式,不过要挂成 EXT4 也不是不行,但是这样一来你手机插电脑上电脑就读不出 TF 卡了
JoeyChan
2016-04-22 14:51:34 +08:00
系统升级到 6.0 就可以格式化成 ext4 分区了,还能当内部存储使用。
VVD
2016-04-22 15:17:23 +08:00
@aa45942 我基本只用 FTP 和 MTP 传文件,对兼容要求并不高
VVD
2016-04-22 15:18:01 +08:00
@JoeyChan 我这手机不支持更新系统了,当下载机用的
aa45942
2016-04-22 15:26:40 +08:00
大概是改 emmc@fat 那里吧,没太深入研究过安卓的文件系统
Septembers
2016-04-22 16:42:29 +08:00
可以用 exFAT
VVD
2016-04-22 17:23:05 +08:00
@Septembers HOW to DO ?
Balthild
2016-04-22 23:42:09 +08:00
CM12 完美支持外置 sd EXT4
CM13 不再支持外置 sd EXT4 ,但可以格式化成内置存储。
arch1life
2016-04-23 01:36:05 +08:00
我在储存卡上分了一个 8gb 的 ext4 分区插上后机器就自动挂载了,位于 /data/sdext2/, android 4.2.2
kmahyyg
2016-04-23 09:49:35 +08:00
mark
貌似 cm13 会把外卡(内置存储模式)格成 3 个分区,两小一大,应该是有特殊分区标识吧,大的那个就是 ext4
s3040608090
2016-05-03 21:08:22 +08:00
我有过相关经验,而且成功了。
先把自启动脚本放到 /etc/init.d/下面,如果你的手机支持的话。
需要用到 sdcard 命令: http://tieba.baidu.com/p/3308424556?pid=68631640348&cid=#68631640348

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/273635

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX