什么是Android等同于/ etc / fstab? -- file-system 领域 和 mount 领域 android 相关 的问题

What's the Android equivalent of /etc/fstab?


29
vote

问题

中文

有时我真的希望他们这么多搞砸了Linux!我知道有一个 /etc/fstab 在某处,但在哪里?

我想用替代文件系统挂载一些分区(因为我不喜欢FAT32)。

英文原文

Sometimes I really wish they hadn't messed around with Linux so much! I know there's an /etc/fstab in there somewhere, but where?

I'd like to mount some partitions with alternative filesystems (because I don't like FAT32).

     

回答列表

20
 
vote
vote
最佳答案
 

不要考虑Android作为一个严重修改的Linux发行版。因为它不是。近似只有一个与Linux分发的Android共享的东西是内核。甚至修改了此组件。其他核心组件,如libc,不同。

android没有 /etc/fstab

您不需要 /etc/fstab 来装入分区。但是有IIRC NO ABCDEFGHIJKLMNABCDEFGHIJKLMN2 命令。 dev_mount 应该工作(根必需的根)。 回答你的问题标题:所有启动系统安装都是使用 /etc/vold.fstab 帮助脚本完成的。

 

Don't think about Android as a heavily modified Linux distribution. Because it's not. The nearly only thing that Android shares with a Linux distribution is the kernel. And even this component is modified. Also other core components, like the libc, differ.

Android has no /etc/fstab

You don't need /etc/fstab to mount an partition. But there is IIRC no mount command either.dev_mount should work (root required). To answer your questions title: All startup system mounting is done with the/etc/vold.fstab helper script.

 
 
   
   
8
 
vote

fstab文件是 /

它被称为 /fstab.$systemname.rc 其中 $systemname 基于听筒的指纹属性,可以被标识为芯片组或手机本身的类别。

 

The fstab file is in /.

It's called /fstab.$systemname.rc where $systemname is based on the handset's fingerprint property, either identified as category of chipset or handset itself.

 
 
       
       
5
 
vote

我看到相互冲突的信息。 一个资源说它是硬逻辑的,所以不是你可以改变用户端的东西:

特定于android的init程序在设备/系统/ init中找到。添加日志消息以帮助您使用设备/系统/ init / init.c中定义的日志宏调试潜在问题。

init程序直接使用通过探测sysfs文件系统生成的硬编码文件名或设备名称(从而消除了Android中的需要)。

其他地方 /etc/vold.fstab /etc/vold.conf 。我在CM 7.1下面有我的设备,但我不确定如何使用它们。

 

I'm seeing conflicting information. One resource says it's hardcoded, so not something you can change user-side:

Android-specific init programs are found in device/system/init. Add LOG messages to help you debug potential problems with the LOG macro defined in device/system/init/init.c.

The init program directly mounts all filesystems and devices using either hard-coded file names or device names generated by probing the sysfs filesystem (thereby eliminating the need for a /etc/fstab file in Android).

Elsewhere /etc/vold.fstab and /etc/vold.conf are mentioned. I have them on my device under CM 7.1 but I'm not sure of how they are used.

 
 
 
 
5
 
vote

您可以通过运行

重新安装外部存储以可执行
  /etc/fstab0  

这将删除Noexec,NosuID和Nodev标志,但它仍将是VFAT FS。您可以与此fs的链接进行链接,但不在内部。重新汇位不会在重新启动中生存,因为vold.fstab文件将被读取,并且它们将以重新启动重新安装,其中noexec标志。

如果将任何外部存储重新格式化为VFAT以外的任何内容,那么它们将不会重新启动以重新启动,以及您移动到任何外部存储器的任何应用程序都无法使用。如果您不打算为应用程序使用外部存储,那么您可以卸载外部存储和使用 /etc/fstab1 使其成为ext2。使用 /etc/fstab2 将其返回给vfat并再次使用它。

注意<代码> /etc/fstab3 被打破,你会得到类似的东西

lseek:定义数据类型的值太大

所以不要浪费你的时间。所有这一切都假定您植根于植物,并且具有工作BusyBox二进制文件。

 

You can remount your external storage to be executable by running

mount -o remount, rw /mnt/sdcard 

this will remove the noexec, nosuid and nodev flags, but it will still be vfat fs. You can make links to this fs but not from within. The remount does not survive a reboot, because the vold.fstab file will be read and they will be remounted at reboot with the noexec flags.

If you reformat any of your external storage to anything other than vfat, then they will not be remounted at reboot, and any apps that you have moved to any external storage will not be usable. If you don't intend to use external storage for apps then you can unmount your external storage and use busybox mke2fs DEVICE to make it ext2. Use busybox newfs_msdos DEVICE to return it to vfat and make it usable again.

Note busybox mkfs.vfat is broken, you will get something like

lseek: Value too large for defined data type

so don't waste your time. All of this assumes you are rooted, and have a working busybox binary.

 
 
5
 
vote

我意识到这是一个旧话题,但这里的一些答案实际上阻碍了我努力了解 fstab 和android,因为它们如此强烈意味着 fstab Android中的情​​况与其他Linux发行版非常不同。从我可以说的话,它不是。

然而,阅读不同的响应让我想知道:什么 fstab - 等效文件或文件在我的设备上?

踩回一瞬间,注意到" android没有/ etc / fstab " 可能对OP可能没有帮助,因为它们必须已经知道这个。如果这是不真实的,他们的问题(询问Android等同于 /etc/fstab 是什么)不会有任何意义。另一方面,我们知道@flow不是试图暗示Android上没有等同于android,因为他们提到了其中一个,一个名为 /etc/vold.fstab 的"帮助程序脚本" 。

一切,我认为从@ flow的帖子中的外带是在一些系统上,有一个文件(可能是一个"帮助者脚本" - 我无法验证在我的手机上)称为 /etc/vold.fstab ,以及在这些系统上,此文件是最接近的相同于 /etc/fstab

回到想知道我自己的设备,我将在这里发布我的发现,因为OP的年龄:

  • 首先,我想记录 abcdefghijklmnfstab -style文件的所有
  • 第二,我想向人们展示,特别是Linux / Android Newbies,这相当容易找到您自己的设备上的这些文件("将它们教为鱼" )。
  • 第三,写下我的发现有助于(奖金:我永远能够在stackexchange上再次找到它!)。
  • 最后,谷歌仍在为此页面提供服务,所以有机会,这将有助于其他人以外的人。

所以让我试着总结一下我所吸取的所有内容:

android,或者至少是我可以访问的变体,确实使用 fstab -style文件。但是,这些文件的确切名称,位置和功能因分发而异 - 由Android版本和设备的意思,以及如果您使用自定义ROM,则由ROM。

要在系统上查找这些文件,请打开终端仿真器,如 tmux fstab0 并运行类似的: fstab1 。文件2( fstab2 )重定向到 fstab3 将使您的输出更清晰,因为您将能够从 fstab4获取的错误消息的鼻塞。 ,即使您是 fstab5

在我的系统上(像素2xl,代码名称"taimen" ),我发现了三个候选文件:

  fstab6  

前两个是单独的文件中,也不是另一个符号链接到另一个,但如果 fstab7 他们会发现它们是相同的。如果您在文件中运行 fstab8 ,则看起来有点更深,您将看到它们具有相同的设备和inode值:

  fstab9  

fstab0 将这两个文件名报告为常规文件,每个文件只有一个链接(所以没有涉及硬或符号链接)。我不是文件系统专家,但此处发生了哪些设备已安装两次。您可以在以下命令的输出中看到它,其中两行输出之间的唯一差异是挂载点("开启之后的零件" ):

  fstab1  

如果我以root身份登录,则只能对我看起来是可见的,因此如果您的设备与我的设备相同,则除非您的手机植根,否则您仍然找不到或可以访问此文件。该文件与一个名为Open Mobile Alliance设备管理的服务有关,但这是一个我很少了解的服务,所以我只会在这里提及它,您可以谷歌了解有关您的详细信息,如果您想要的话。

 

I realize that this is an old topic, but some of the answers here actually hindered my efforts to learn about fstab and Android because they so strongly imply that the fstab situation in Android is extremely different from other Linux distributions. From what I can tell, it isn't.

However, reading different responses here made me wonder: what fstab-equivalent file or files are on my device?

Stepping back for a moment, noting that "Android has no /etc/fstab" is probably not helpful to the OP since they must have already known this. If this were untrue, their question (asking what the Android equivalent of /etc/fstab is) would not make any sense. On the other hand, we know @Flow was not trying to imply that there was no equivalent on Android, since they mentioned one of them, a "helper script" named /etc/vold.fstab.

All in all, I think the takeaway from @Flow's post is that on some systems, there is a file (possibly a "helper script" - I can't verify that on my phone) called /etc/vold.fstab, and on those systems, this file is the nearest equivalent to /etc/fstab.

Getting back to wondering about my own device, I am going to post my findings here for several reasons, in spite of the age of the OP:

  • First, I want to document all of the fstab-style files I can find on my phone, a Pixel 2XL.
  • Second, I want to show people, especially Linux/Android newbies, that it is fairly easy to find these files on your own device ("teach them to fish").
  • Third, it's helpful for me to write up my findings (bonus: I'll always be able to find it again here on StackExchange!).
  • Finally, Google is still serving this page up so there's a chance this will help someone other than me.

So let me try to sum up everything I have learned from all of this:

Android, or at least its variants that I have access to, does make use of fstab-style files. However, the exact name, location, and function of these files vary by distribution - meaning by Android version and device, and also by ROM if you use a custom ROM.

To find these files on your system, open up a terminal emulator like tmux or adb shell and run something like this: find / -type f -iname '*fstab*' 2>/dev/null. The redirection of file 2 (stderr) to /dev/null will make your output much cleaner as you will be able to ignore the onslaught of error messages you will get from find, even if you are root.

On my system (a Pixel 2XL, code name "taimen"), I found three candidate files:

taimen:/ # find / -type f -iname '*fstab*' 2>/dev/null  /sbin/.core/mirror/vendor/etc/fstab.taimen /vendor/etc/fstab.taimen /data/data/com.android.omadm.service/files/dm/dmt_data/fstab 

The first two are separate files in that neither is a hard or symbolic link to the other, but if you diff them you will find that they are identical. Looking a little deeper, if you run stat on the files you will see that they have the same Device and Inode values:

taimen:/ # stat /sbin/.core/mirror/vendor/etc/fstab.taimen /vendor/etc/fstab.taimen    File: `/sbin/.core/mirror/vendor/etc/fstab.taimen'   Size: 1326     Blocks: 16      IO Blocks: 512 regular file Device: fc00h/64512d     Inode: 925      Links: 1 Access: (644/-rw-r--r--)        Uid: (    0/    root)   Gid: (    0/    root) Access: 2009-01-01 02:00:00.000000000 Modify: 2009-01-01 02:00:00.000000000 Change: 2009-01-01 02:00:00.000000000    File: `/vendor/etc/fstab.taimen'   Size: 1326     Blocks: 16      IO Blocks: 512 regular file Device: fc00h/64512d     Inode: 925      Links: 1 Access: (644/-rw-r--r--)        Uid: (    0/    root)   Gid: (    0/    root) Access: 2009-01-01 02:00:00.000000000 Modify: 2009-01-01 02:00:00.000000000 Change: 2009-01-01 02:00:00.000000000 

stat reports both of these filenames as regular files with only one link each (so no hard or symbolic links are involved). I'm not a filesystem expert but what has happened here is that the same device has been mounted twice. You can see this in the output of the following command, where the only differences between the two lines of output in are the mount points (the part immediately after "on"):

taimen:/ $ mount | grep vendor  /dev/block/dm-0 on /vendor type ext4 (ro,seclabel,relatime,block_validity,delalloc,barrier,user_xattr) /dev/block/dm-0 on /sbin/.core/mirror/vendor type ext4 (ro,seclabel,relatime,block_validity,delalloc,barrier,user_xattr) 

The third file is only visible to me if I login as root, so if you have a device identical to mine, you still will not find, or have access to, this file unless your phone is rooted. That file has to do with a service called Open Mobile Alliance Device Management, but that is a service I know very little about, so I will just mention it here, and you can Google for details about that if you'd like.

 
 
   
   

相关问题

4  什么时候应该fstrim运行?  ( When should fstrim run ) 
基于这个 cyanogenmod论坛线程,我尝试过通过手动运行FSTIM运行FSTIM,解决CyanogenMod运行CyanogenMod的Galaxy Nexus的应用程序之间的延迟。 root@maguro:/ # fstrim -v /data ...

0  如何知道我的nexus设备是文件加密的?  ( How to know my nexus device is file encrypted ) 
从Android N支持新功能,称为文件加密。 如何识别我的设备是否是文件加密。 如果我使用触摸创建内部/数据典型内的任何新文件。我会在我做LS -L时看到该文件。 在创建文件后,文件名将显示为安全名称,如果设备是加密的文件。 ...

30  如何查看android内部分区表?  ( How can i view the android internal partition table ) 
我扎根了我的设备,把它放在恢复模式下,并将其链接到pc by adb shell < / a>。 如何查看存储设备和分区列表? 注意: fdisk 不起作用。 ...

1  如何在内部存储中检查文件(例如群集或扇区#)的位置?  ( How can i check the location of a file e g cluster or sector in the interna ) 
我想知道我是否在写入/更新之间移动某些文件在闪存(内部存储器)上移动。 有些方法我可以在闪存上获取文件的位置吗? (群集号码,扇区号等) 我正在使用Android v8, 并且可以安装使用应用程序, 或者使用命令行,如果在Linux命令中存在相关命令,则Android具有。 ...

2  Galaxy S3用于SD卡的文件系统格式  ( Filesystem format used for sd card by galaxy s3 ) 
当我删除由我的Galaxy S3格式化的SD卡,并将其放在MacBook中, fdisk 显示其唯一分区,与具有分区ID 0C 表示它是FAT32 LBA分区。但是,OSX无法安装它,并且Ubuntu似乎将其安装为exfat分区。 此分区上使用的文件系统是什么?可以在分区ID和分区上使用的文件系统之间的差异阻止OS...

5  如何检查文件系统(/ sdcard)进行错误?  ( How to check filesystem sdcard for errors ) 
我想检查我/ sdcard,也可能是其他内部分区,因为文件系统级别的错误。 我想知道如何完成这一点。 我正在使用verizon wireless的三星Galaxy Nexus(Toro)。 更新: 此设备是否有一个实际的SD卡,我相信它是通过:"adb shell" (在系统靴子之前(即恢复模式内)的唯一方法,这...

0  如何更改Android的默认密钥按声音?  ( How to change androids default key press sound ) 
手机rooted,我尝试改变文件/ s; /system/media/audio/ui/*.ogg 及其权限; -rw-r--r-- 但仍然播放默认值。重新启动手机也不起作用。我错过了什么? ...

9  如何在SD卡上找到交换分区的路径名?  ( How to find the pathname of the swap partition on sd card ) 
作为 < / a>警告,你不应该在错误的分区上启用交换,或者您可以销毁您的手机: 在我们进一步进一步之前好的!之前的手机有一个分区布局,其中MMCBLCK0是SDCard(外部)我们的手机使用MMCB1CCK1用于外部SD。这很重要,因为如果使用应用程序,它可能会预设使用mmcblck0作为交换分区。使用此设置将导...

0  从文件名更改文件(图片,视频)时间戳  ( Change file pictures videos timestamp from filename ) 
当周围移动不同的文件和跨pc /智能手机时,最后修改日期的时间戳通常会重置为移动/复制操作的非常日期。这导致文件在某些​​应用程序(画廊)中是非按时间顺序排序的,特别是尤其适用于图像和视频。 通常,这些文件遵循img_yyyyyymmmd_hhmmss.jpg的命名约定,用于图像和vid_yyyyymmdd_hhmm...

0  为什么我的(ofrooed)/数据分区似乎是空的?  ( Why my unrooted data partition appears to be empty ) 
我有一些问题使用我/数据分区。除此之外,当我用Astro应用程序浏览其内容时,它似乎是空的。手机从未生根植根,它在最后一小时内至少重置了三次,所以我希望它至少最小的运作。 为什么/ data partitize为什么空?出厂重置时,是否不应该包含某些东西?这是我不一致的原因(也许他们不是不一致:他们缺失)UID? ...

2  在哪里可以在文件系统中找到IP地址(例如proc或sys)  ( Where to find ip address in file system e g proc or sys ) 
是否有一种方法可以在Android文件系统中获取接口的IP(v4)地址?我知道我可以使用ifconfig或netcfg,但我想使用一个监控工具,只能只能访问文件而不是执行命令。 ...

0  build.prop修改了。但没有更新系统(例如,在设置中的平板电脑)  ( Build prop modifies okay but not updates in system e g about tablet in settin ) 
我在VirtualBox上运行Android-x86 4.4。一切都很好。 但是,当我用其他制造商或模型修改build.prop(使用es文件资源管理器或buildprop编辑器)并保存它。重新启动后任何发生。关于平板电脑存储旧信息。 似乎是Android缓存此信息某个信息。 任何想法?如何强制android从b...

0  错误地,我从根文件中删除了系统文件夹,我的手机从我的手机中扎根,我的手机无法正常工作?  ( By mistake i deleted system folder from root file and my mobile was rooted from ) 
通过错误,我从根文件中删除了系统文件夹,我的手机从那时起我的手机扎根了我无法正常工作? USB Debbug是OFF FLAH文件找不到"REACH COGENT颜色" PLZZZ帮助我........ ...

9  Android是否具有2.1GB的文件大小限制?  ( Does android have a 2 1gb file size limit ) 
我已经尝试过许多语音录制类型应用程序,我发现的最佳允许我录制到最大文件大小为2.1gb。我可以做这些2.1GB录制中的许多录制,因为我有一个相当大的SD卡。 在我尝试的其中一个应用程序上,开发人员具体说他/她的应用程序没有录音长度限制 所以我的问题,Android是否拥有每个文件的2.1GB限制? ...

3  包含病毒的未知文件类型  ( Unknown file type containing a virus ) 
我会尽量保持故事,所以你可以更清楚地了解我的担忧。虽然,我使用Chrome浏览器应用程序在手机上浏览互联网,我收到了我下载文件的通知。通知显示正在下载的文件是一个mp3。 在我甚至有时间做出反应和停止下载过程之前,文件已经在我的手机上。我立即使用手机上的文件管理器从下载文件夹中删除它。但是,我注意到文件格式丢失了。...




© 2021 it.wenda123.org All Rights Reserved. 问答之家 版权所有


Licensed under cc by-sa 3.0 with attribution required.