我可以在无根电话中的SD卡上使用ext4吗?


18

我知道在有根电话上,创建一个小的ext4分区供App2SD使用是正常的,但是我没有问这种情况:我有一个非根HTC Desire运行Froyo,我想格式化我的整个SD卡都是ext4而不是FAT。我知道这将意味着Windows PC无法使用该卡,但是我的所有PC都运行Linux,因此应该可以。在这种情况下,手机能否访问和使用卡?


我认为你不能。特别是因为froyo将FAT用于其apps2sd实现。
瑞安·康拉德

我认为您必须更改SD卡的安装选项,这需要root用户。
马修(Matthew)

Answers:


4

如果您要升级到2.3或3.0 Android,则应该支持ext4(我发现您的帖子来自2.3和3.0版本之前的版本...)。

...并且将btrFS添加到Android时,它具有一个不错的挂载选项“,ssd”,具有耗损均衡等功能,而ext4则没有...并且现在的速度比ext4更快,尤其是如果使用“,compress在fstab中= lzo“或”,space_cache“(但不要在space_cache选项中使用压缩,只能使用1或另一个,否则在某些基准测试中它会减慢抓取速度)-尽管所有btrFS校验和都为bsum数据(不仅是ext4的期刊)。:-)


3
只是2017年的更新:不幸的是,我认为这仅在拥有根设备的情况下才有效。
Jesse Adelman

5

我实际上将我的sdcard放在ext4上,并在启动时将其永久安装(我的手机上已经安装了root)。

最大的问题是应用程序不希望对/ sdcard进行权限检查,但是extX会强制执行此操作(此操作附近没有安装选项)。因此,如果一个应用程序在其中存储了一些音频,例如调用了另一个子组件来播放它,那么它将失败。

照片也是如此(相机拍摄照片,某些预览器可能需要访问它们)。

您可以手动修复此问题,但必须在创建每个新文件后运行...会有一个不错的实际解决方案,但需要系统修改:让应用使用umask(002)而不是022运行。 UPG(用户专用组),因此这样做没有太大危害。–现在,应用程序可以通过将组设置为“ sdcard”来选择是否要向其他人公开文件。这还将在应用程序需要的地方增加强制隔离。


使用FUSE或sdcardfsandroid.stackexchange.com/a/217936/218526获取固定权限。但是此答案不适用于非根电话。
Irfan Latif

3

似乎答案是“否” :(。我之所以问,是因为我要在手机中插入一张新卡,所以我想我只能尝试一下-它不起作用。装上它的卡,就直接说“可以安全取出SD卡”。

那好吧。


请以某种方式支持您的答案或将其删除。
莱奥波尔德·赫兹(LéoLéopoldHertz),2016年


@JasonPlutext现在提供了修补的vold
Irfan Latif

1

简短的回答:

尽管在Android 5上cat /proc/filesystems显示了ext4受支持,但似乎似乎只有FAT32exFAT (FAT64)并且在非根设备上也受支持。我尝试将64GB micro SD卡安装为exFAT,但未成功。

使用fdisk可以将卡格式化为FAT32(不支持超过4GB的文件):

$ fdisk -H 224 -S 56 /dev/mmcblk0

  • d 删除以前的分区
  • n新分区,然后选择主分区p和默认扇区开始,例如2048
  • t设置c为FAT32
  • (在这里您可以通过进入专家模式x并移动分区的开头来节省几个扇区b
  • w 写变更

然后使用您保留的扇区数(2048)格式化为FAT32

$ mkfs.vfat -F 32 -s 32 -R 2048 -v /dev/mmcblk0p1

  • -F 32 对于FAT32
  • -s 32 簇大小以扇区表示,因此32 x 512字节= 16KB簇
  • -R 2048 保留扇区数

这样,可以使用FAT32挂载64GB卡,我没想过要找到exFAT或ext4的任何有效格式。


请以某种方式支持您的答案或将其删除。
莱奥波德·赫兹(LéoLéopoldHertz),2016年

@Masi您能更具体一点吗?我试过将SD卡格式化为ext2,ext3,ext4,fat32和exfat。在Android 5.0上进行了测试,只有fat32可以正常工作。Android在非root用户的设备上登录的选项非常有限。你要我做什么?
Tombart'9

我只是在ext4上完成了新Rom的完整系统安装。手机使用了恢复模式(TWRP 2.8.x)。手机完全没有操作系统。您的恢复映像必须支持ext4。请让我们知道您的情况,并尝试对其进行更新。我推荐TWRP 3.0.2。
莱奥波德·赫兹(LéoLéopoldHertz)2016年

1
@Masi问题是关于默认的非root用户Android。我猜您正在使用植根操作系统。
Tombart

1
@Masi好吧,那么您能以更具体的内容支持该主张吗?
Tombart

1

我尝试了LineageOS 14.1(android 7.1.2),它支持ext4格式的sdcard(tf-card)。尽管默认情况下,它将sdcard格式化为vfat,但不进行任何修补。最简单的方法是使用外部usb-sdcard-adapter用ext4格式化sdcard,然后将sdcard插入安装了LineageOS的电话中。


那是由于修补了vold。不适用于常规ROM。
Irfan Latif
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.