什么是Android的文件系统?

时间:2010-03-11 00:53:44

标签: android filesystems

什么是Android的文件系统?

9 个答案:

答案 0 :(得分:36)

取决于哪些文件系统,例如/system/datayaffs2,而/sdcard为vfat。 这是mount的输出:

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

并且对于支持的其他文件系统,这是列表

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

答案 1 :(得分:16)

默认情况下,它使用YAFFS - 另一个Flash文件系统。

答案 2 :(得分:9)

这里的大多数答案都很老了。

过去当un un managed是最受欢迎的存储技术时,yaffs2是最常用的文件系统。目前很少有设备使用未管理的nand,而那些仍在使用的设备正在慢慢迁移到ubifs。

今天最常见的存储是emmc(托管nand),对于这样的设备,ext4更受欢迎,但是,这个文件系统正慢慢地为f2fs(flash flash fs)清除它。

编辑:f2fs可能不会让它成为flash设备的常见fs(包括android)

答案 3 :(得分:7)

Johan很接近 - 这取决于硬件制造商。例如,三星Galaxy S手机使用三星RFS(专有)。然而,使用Android 2.3的Nexus S(也由三星制造)使用Ext4(可能是因为谷歌告诉他们 - Nexus S是目前的谷歌体验手机)。由于这种转变,许多社区开发人员也开始转向Ext4。

答案 4 :(得分:4)

取决于您使用的硬件/平台。

由于Android在此级别使用Linux内核,因此或多或少可以使用Linux内核支持的任何文件系统。

但是由于大多数手机使用某种nand flash,因此可以安全地假设他们使用YAFFS。

但请注意,如果某个供应商想要销售Android上网本(带有硬盘),他们可以使用ext3或类似的东西。

答案 5 :(得分:3)

由于大多数设备都使用eMMC,因此除了firmware.refer - http://android-developers.blogspot.com/2010/12/saving-data-safely.html

之外, android使用的文件系统是ext4

这是galaxy s4上的文件系统:

  • / system ext4

  • / data ext4

  • / cache ext4

  • / firmware vfat <​​/ strong>

  • / data / media / mnt / shell / emulated sdcardfs

详细输出如下:

  

/dev/block/platform/msm_sdcc.1/by-name/system / system \ text4   ro,seclabel,relatime,data = ordered 0 0

     

/dev/block/platform/msm_sdcc.1/by-name/userdata / data \ text4   RW,SECLABEL,为nosuid,无   dev的,noatime的,丢弃,journal_checksum,journal_async_commit,noauto_da_alloc,数据= O   0 0

     

/dev/block/platform/msm_sdcc.1/by-name/cache / cache ext4   RW,SECLABEL,为nosuid,节点   V,noatime的,丢弃,journal_checksum,journal_async_commit,noauto_da_alloc,数据= ORD   ered 0 0

     

/dev/block/platform/msm_sdcc.1/by-name/efs / efs \ text4   RW,SECLABEL,为nosuid,nodev,无   atime的,丢弃,journal_checksum,journal_async_commit,noauto_da_alloc,错误=恐慌   ,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,上下文= U:objec   T_R:固件: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,上下文= U:objec   T_R:固件: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

答案 6 :(得分:2)

在十六进制编辑器中分析Galaxy Ace 2.2时。 hex似乎指向使用FAT16作为其文件系统的设备。我觉得这很不寻常。但是,Fat 16与Linux内核兼容。

答案 7 :(得分:0)

类似于Linux

/启动

/系统

/恢复

/数据

/缓存

/ misc

答案 8 :(得分:-1)

Android支持Linux内核支持的所有文件系统。

例如,SD卡的格式为ext3。