Что такое 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. Потому что это не так. Почти единственное, что акции Android с распределением Linux - ядро. И даже этот компонент изменен. Также другие основные компоненты, такие как libc, отличаются.

Android не имеет <код> /etc/fstab

Вам не нужно <код> /etc/fstab для установки раздела. Но есть IIRC NO mount COMMENT. <Код> dev_mount должен работать (требуется root). Чтобы ответить на ваши вопросы Название: Все монтаж системы запуска выполняется с помощью /etc/vold.fstab Script.

 

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 в <Код> / .

Это называется <код> 9988777666 где <код> $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. Добавьте сообщения журнала, чтобы помочь вам отладки потенциальных проблем с макросом журнала, определенным в устройстве / System / init / init.c.

Программа INIT непосредственно устанавливает все файловые системы и устройства, используя либо в жестком кодированных именах файлов, либо имена устройств, сгенерированные путем проверки файловой системы SYSFS (тем самым устраняя необходимость в файле A / ETC / FSTAB в 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 и NOZEV, но он все равно будет VFAT FS. Вы можете сделать ссылки на эту ФС, но не изнутри. Remount не выдерживает перезагрузку, потому что файл Vold.fstab будет прочитан, и они будут переоценены при перезагрузке с флагами NOEXEC.

Если вы переформатируете любое из вашего внешнего хранилища на что-либо, кроме VFAT, то они не будут переопределены при перезагрузке, а любые приложения, которые вы перешли на любое внешнее хранилище, не будут полезны. Если вы не собираетесь использовать внешнее хранилище для приложений, вы можете размонтировать ваше внешнее хранение и использовать <код> /etc/fstab1 , чтобы сделать его Ext2. Используйте /etc/fstab2 , чтобы вернуть его в VFAT и сделать его использоваться снова.

Примечание <Код> /etc/fstab3 сломан, вы получите что-то вроде

lseek: значение слишком большой для определенного типа данных

Так что не тратьте свое время. Все это предполагает, что вы укоренились и имеют рабочее двоичное двоичность.

 

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 -эквивалентных файлов или файлов находятся на моем устройстве my

Вернуться на мгновение, отмечая, что « Android No / etc / fstab », вероятно, не полезен для ОП, поскольку они, должно быть, уже знали это. Если это было неверно, их вопрос (спрашивая, какой андоидный эквивалент /etc/fstab есть) не имеет никакого смысла. С другой стороны, мы знаем, что @flow не пытался подразумевать, что на Android не было эквивалентно, поскольку они упомянули один из них, «помощник скрипта» названного <код> /etc/vold.fstab .

Все вообще, я думаю, что вынос от поста @ Flow's - это то, что в некоторых системах есть файл (возможно, «помощник скрипта» - я не могу проверить, что на моем телефоне) называется <код> /etc/vold.fstab Код>, а на этих системах этот файл является ближайшим эквивалентом /etc/fstab .

Возвращение к удивлениям о моем собственном устройстве, я собираюсь опубликовать свои выводы здесь по нескольким причинам, несмотря на эпоху ОП:

    .
  • сначала я хочу документировать все fstab -style файлов, которые я могу найти на моем телефоне, пиксель 2xl.
  • Во-вторых, я хочу показать людям, особенно Linux / Android Newbies, что это довольно легко найти эти файлы на вашем собственном устройстве («научить их рыбу»).
  • В-третьих, для меня полезно написать свои выводы (бонус: я всегда смогу найти его снова здесь на Stockexchange!).
  • Наконец, Google по-прежнему обслуживает эту страницу, поэтому есть шанс, что это поможет кому-то, кроме меня.

Так что позвольте мне попытаться обосновать все, что я узнал от всего этого:

Android, или, по крайней мере, его варианты, к которым у меня есть доступ, использует <код> fstab -style файлов. Тем не менее, точное имя, местоположение и функция этих файлов варьируются по распределению - значение по версии и устройству Android, а также ROM, если вы используете пользовательский ром.

Чтобы найти эти файлы в вашей системе, откройте эмулятор терминала, как <код> tmux или <код> fstab0 и запустить что-то вроде этого: <код> fstab1 . Перенаправление файла 2 (<Код> fstab2 ) в <Код> fstab3 сделает ваш выход намного чище, поскольку вы сможете игнорировать натиск сообщений об ошибках, вы получите от <код> fstab4 , даже если вы <код> fstab5 .

На моей системе (пиксель 2xL, имя кода "Taimen") я нашел три файла кандидата:

 <код> fstab6  

Первые два - это отдельные файлы, которые не являются жесткой или символической ссылкой на другую, но если вы <код> fstab7 их вы обнаружите, что они идентичны. Глядя немного глубже, если вы запустите <код> fstab8 на файлах, которые вы увидите, что у них есть одно и то же устройство и значения INODE:

 <код> fstab9  

<Код> fstab0 Сообщает оба этих имена используемых файлов как обычные файлы только с одной ссылкой, каждая (так не включена жесткие или символические ссылки). Я не эксперт на файловыйИстем, но здесь произошло то, что одно и то же устройство было установлено дважды. Вы можете увидеть это в выходе следующей команды, где только различия между двумя линиями выхода в точках монтирования (часть сразу после «включено»):

 <Код> fstab1  

Третий файл виден только для меня, если я вхожу в систему как root, поэтому, если у вас есть устройство, идентичное моему, вы все равно не найдете, или имейте доступ к этому файлу, если ваш телефон не будет укорениться. Этот файл имеет отношение к службе под названием «Открытое управление мобильным альянсом», но это услуга, о которой я очень мало знаю, поэтому я просто упомяну об этом здесь, и вы можете Google для получения подробной информации об этом, если вы хотите.

.
 

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.

 
 
   
   

Связанный проблема

0  Раздел подкачки не работает на Huawei U8160 работает Cyanogenmod 7.2  ( Swap partition not working on huawei u8160 running cyanogenmod 7 2 ) 
У меня есть Huawei U8160 (также известный как: Vodafone 858 Smart), который работает Cyanogenmod 7.2 (который был выпущен Madteam в 2/7/2012). После обновле...

2  TWRP: не удалось подключить '/ preload' (неверный аргумент)  ( Twrp failed to mount preload invalid argument ) 
с TWRP, почти на каждой операции я получаю не удалось подключить '/ preload' (неверный аргумент) Мое устройство в настоящее время не может загружаться, ...

1  Невозможно установить Galaxy S7 с помощью Simple-MTPFS (с S4, который она раньше работала)  ( Cannot mount galaxy s7 with simple mtpfs with s4 it used to work fine ) 
Я хотел бы установить мою Samsung Galaxy S7 (SM-G930F) в папку, используя Simple-mtpfs , и я не могу сделать это, как раньше (на предыдущем Федора и старша...

3  Могу ли я горевать LoopDevice в Android?  ( Can i mount loopdevice in android ) 
У меня укоренился мой телефон Android и получите оболочку THR ADB. Я хочу установить изображение ROM в Android. Но я всегда терпит неудачу: Mount -o loop /...

0  Android X86> Ошибка: SysRQ: Apareation Remount R / 0 [Дубликат]  ( Android x86 error sysrq emergency remount r 0 ) 
<в сторону CLASS = "S-NEWACTS S-WELTIVE__info JS-Post-New Imide MB16« Роль = «Статус»> Этот вопрос уже имеет ответ здесь : ...

2  SSHFS от Android до NAS  ( Sshfs from android to nas ) 
Я пытаюсь получить любую папку на внутреннем хранилище HTC M7, который будет установлен через <код> sshfs в папку на моем NAS. Цель будет иметь, например, /...

3  / data / sdext2 mount не найден link2sd  ( Data sdext2 mount not found link2sd ) 
Я установил CM 7.2 стабильный (Android 2.3.) From Здесь . Затем я последовал за Это руководство по подготовке моей SD-карты для Link2SD. Затем я установил L...

1  / sd-ext внезапно переменил чтение только во время работы  ( Sd ext gets suddenly remounted read only during work ) 
У меня есть желание HTC с помощью Cyanogenmod 7.2 (с PATCH PATCH) и с разделенной картой MicroSD Micros (First: Fat, Second: Ext3). Второй раздел автоматиче...

29  Что такое Android эквивалент / etc / fstab?  ( Whats the android equivalent of etc fstab ) 
Иногда я действительно желаю, чтобы они не так много испортились с Linux! Я знаю, что есть <код> /etc/fstab там где-то, но где? Я хотел бы установить некот...

0  Как исправить «Mount:« RemOnt »-> '/ System': нет такого файла или каталога"?  ( How to fix mount remount system no such file or directory ) 
<код> angler:/ # mount -o rw, remount /system mount: 'remount'->'/system': No such file or directory 1|angler:/ # Когда я попробую в Kali Linux на моем те...