Android 的文件系统是什么?
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/2421826/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
What is Android's file system?
提问by Guimo
What is Android's file system?
Android 的文件系统是什么?
回答by Diego Torres Milano
It depends on what filesystem, for example /system
and /data
are yaffs2
while /sdcard
is vfat.
This is the output of mount:
这取决于什么文件系统,例如/system
和/data
是yaffs2
虽然/sdcard
是VFAT。这是挂载的输出:
rootfs / rootfs ro 0 0
tmpfs /dev tmpfs rw,mode=755 0 0
devpts /dev/pts devpts rw,mode=600 0 0
proc /proc proc rw 0 0
sysfs /sys sysfs rw 0 0
tmpfs /sqlite_stmt_journals tmpfs rw,size=4096k 0 0
none /dev/cpuctl cgroup rw,cpu 0 0
/dev/block/mtdblock0 /system yaffs2 ro 0 0
/dev/block/mtdblock1 /data yaffs2 rw,nosuid,nodev 0 0
/dev/block/mtdblock2 /cache yaffs2 rw,nosuid,nodev 0 0
/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
and with respect to other filesystems supported, this is the list
关于其他支持的文件系统,这是列表
nodev sysfs
nodev rootfs
nodev bdev
nodev proc
nodev cgroup
nodev binfmt_misc
nodev sockfs
nodev pipefs
nodev anon_inodefs
nodev tmpfs
nodev inotifyfs
nodev devpts
nodev ramfs
vfat
msdos
nodev nfsd
nodev smbfs
yaffs
yaffs2
nodev rpc_pipefs
回答by dolbi
Most answers here are pretty old.
这里的大多数答案都很旧。
In the past when un managed nand was the most popular storage technology, yaffs2 was the most common file system. This days there are few devices using un-managed nand, and those still in use are slowly migrating to ubifs.
在过去,当非托管 nand 是最流行的存储技术时,yaffs2 是最常见的文件系统。如今,使用非托管 nand 的设备很少,仍在使用的设备正在慢慢迁移到 ubifs。
Today most common storage is emmc (managed nand), for such devices ext4 is far more popular, but, this file system is slowly clears its way for f2fs (flash friendly fs).
今天最常见的存储是 emmc(托管 nand),对于此类设备,ext4 更为流行,但是,这个文件系统正在慢慢为 f2fs(闪存友好的 fs)扫清道路。
Edit: f2fs will probably won't make it as the common fs for flash devices (including android)
编辑:f2fs 可能不会成为闪存设备(包括 android)的通用 fs
回答by Brian
Johan is close - it depends on the hardware manufacturer. For example, Samsung Galaxy S phones uses Samsung RFS (proprietary). However, the Nexus S (also made by Samsung) with Android 2.3 uses Ext4 (presumably because Google told them to - the Nexus S is the current Google experience phone). Many community developers have also started moving to Ext4 because of this shift.
约翰很接近 - 这取决于硬件制造商。例如,三星 Galaxy S 手机使用三星 RFS(专有)。然而,Android 2.3 的 Nexus S(也由三星制造)使用 Ext4(大概是因为谷歌告诉他们 - Nexus S 是当前的谷歌体验手机)。由于这种转变,许多社区开发人员也开始转向 Ext4。
回答by rupesh jain
since most of the devices use eMMC,the file system android uses is ext4,except for the firmware.refer-http://android-developers.blogspot.com/2010/12/saving-data-safely.html
由于大多数设备使用 eMMC,因此 android 使用的文件系统是 ext4,固件除外。refer- http://android-developers.blogspot.com/2010/12/ Saving-data-safely.html
Here is the filesystem on galaxy s4:
这是 Galaxy s4 上的文件系统:
/system ext4
/data ext4
/cache ext4
/firmware vfat
/data/media /mnt/shell/emulated sdcardfs
/系统ext4
/数据ext4
/缓存ext4
/固件vfat
/data/media /mnt/shell/emulated sdcardfs
The detailed output is as follows:
详细输出如下:
/dev/block/platform/msm_sdcc.1/by-name/system /system ext4 ro,seclabel,relatime, data=ordered 0 0
/dev/block/platform/msm_sdcc.1/by-name/userdata /data ext4 rw,seclabel,nosuid,no dev,noatime,discard,journal_checksum,journal_async_commit,noauto_da_alloc,data=o rdered 0 0
/dev/block/platform/msm_sdcc.1/by-name/cache /cache ext4 rw,seclabel,nosuid,node v,noatime,discard,journal_checksum,journal_async_commit,noauto_da_alloc,data=ord ered 0 0
/dev/block/platform/msm_sdcc.1/by-name/efs /efs ext4 rw,seclabel,nosuid,nodev,no atime,discard,journal_checksum,journal_async_commit,noauto_da_alloc,errors=panic ,data=ordered 0 0
/dev/block/platform/msm_sdcc.1/by-name/persdata /persdata/absolute ext4 rw,secla bel,nosuid,nodev,relatime,data=ordered 0 0
/dev/block/platform/msm_sdcc.1/by-name/apnhlos /firmware vfat ro,context=u:objec t_r:firmware:s0,relatime,uid=1000,gid=1000,fmask=0337,dmask=0227,codepage=cp437, iocharset=iso8859-1,shortname=lower,errors=remount-ro 0 0
/dev/block/platform/msm_sdcc.1/by-name/mdm /firmware-mdm vfat ro,context=u:objec t_r:firmware:s0,relatime,uid=1000,gid=1000,fmask=0337,dmask=0227,codepage=cp437, iocharset=iso8859-1,shortname=lower,errors=remount-ro 0 0
/data/media /mnt/shell/emulated sdcardfs rw,nosuid,nodev,relatime,uid=1023,gid=1 023 0 0
/dev/block/platform/msm_sdcc.1/by-name/system /system ext4 ro,seclabel,relatime, data=ordered 0 0
/dev/block/platform/msm_sdcc.1/by-name/userdata /data ext4 rw,seclabel,nosuid,no dev,noatime,discard,journal_checksum,journal_async_commit,noauto_da_alloc,data=ordered 0 0
/dev/block/platform/msm_sdcc.1/by-name/cache /cache ext4 rw,seclabel,nosuid,node v,noatime,discard,journal_checksum,journal_async_commit,noauto_da_alloc,data=order ed 0 0
/dev/block/platform/msm_sdcc.1/by-name/efs /efs ext4 rw,seclabel,nosuid,nodev,no atime,discard,journal_checksum,journal_async_commit,noauto_da_alloc,errors=panic,data=ordered 0 0
/dev/block/platform/msm_sdcc.1/by-name/persdata /persdata/absolute ext4 rw,seclabel,nosuid,nodev,relatime,data=ordered 0 0
/dev/block/platform/msm_sdcc.1/by-name/apnhlos /firmware vfat ro,context=u:object t_r:firmware:s0,relatime,uid=1000,gid=1000,fmask=0337,dmask=0227,代码页=cp437, iocharset=iso8859-1,shortname=lower,errors=remount-ro 0 0
/dev/block/platform/msm_sdcc.1/by-name/mdm /firmware-mdm vfat ro,context=u:objec t_r:firmware:s0,relatime,uid=1000,gid=1000,fmask=0337,dmask= 0227,codepage=cp437,iocharset=iso8859-1,shortname=lower,errors=remount-ro 0 0
/data/media /mnt/shell/emulated sdcardfs rw,nosuid,nodev,relatime,uid=1023,gid=1 023 0 0
回答by Johan
Depends on what hardware/platform you use.
取决于您使用的硬件/平台。
Since Android uses the Linux-kernel at this level, it is more or less possible to use whatever filesystem the Linux-kernel supports.
由于 Android 在此级别使用 Linux 内核,因此或多或少可以使用 Linux 内核支持的任何文件系统。
But since most phones use some kind of nand flash, it is safe to assume that they use YAFFS.
但是由于大多数手机使用某种类型的 nand flash,因此可以安全地假设它们使用 YAFFS。
But please note that if some vendor wants to sell a Android netbook (with a harddrive), they could use ext3 or something like that.
但是请注意,如果某些供应商想要销售 Android 上网本(带硬盘),他们可以使用 ext3 或类似的东西。
回答by Michael
When analysing a Galaxy Ace 2.2 in a hex editor. The hex seemed to point to the device using FAT16 as its file system. I thought this unusual. However Fat 16 is compatible with the Linux kernel.
在十六进制编辑器中分析 Galaxy Ace 2.2 时。十六进制似乎指向使用 FAT16 作为其文件系统的设备。我觉得这很不寻常。但是 Fat 16 与 Linux 内核兼容。
回答by Mario Pierre
Similar to Linux:
类似于 Linux:
/boot
/system
/recovery
/data
/cache
/misc
/启动
/系统
/恢复
/数据
/缓存
/杂项
回答by Peter vdL
Android supports all filesystems supported by the Linux kernel.
Android 支持 Linux 内核支持的所有文件系统。
The SD card is formatted as ext3, for example.
例如,SD 卡被格式化为 ext3。