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

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-20 05:49:00  来源:igfitidea点击:

What is Android's file system?

androidfilesystems

提问by Guimo

What is Android's file system?

Android 的文件系统是什么?

回答by Diego Torres Milano

It depends on what filesystem, for example /systemand /dataare yaffs2while /sdcardis vfat. This is the output of mount:

这取决于什么文件系统,例如/system/datayaffs2虽然/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 Foole

By default, it uses YAFFS- Yet Another Flash File System.

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

回答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。