Respuestas:
No pienses en Android como una distribución de Linux muy modificada. Porque no lo es. Casi lo único que comparte Android con una distribución de Linux es el kernel. E incluso este componente está modificado. También otros componentes centrales, como la libc, difieren.
Android no tiene /etc/fstab
No necesita /etc/fstab
montar una partición. Pero el IIRC tampoco tiene mount
comando. dev_mount
debería funcionar (se requiere root). Para responder el título de sus preguntas: Todo el montaje del sistema de inicio se realiza con el /etc/vold.fstab
script de ayuda.
El archivo fstab está adentro /
.
Se llama /fstab.$systemname.rc
donde $systemname
se basa en la propiedad de huella digital del teléfono, ya sea identificada como categoría de conjunto de chips o el propio teléfono.
/etc/vold.fstab
. :)
vold.fstab
, y en 4.3 y versiones posteriores /fstab.<device>
.
Estoy viendo información contradictoria. Un recurso dice que está codificado , por lo que no es algo que pueda cambiar del lado del usuario:
Los programas init específicos de Android se encuentran en dispositivo / sistema / init. Agregue mensajes LOG para ayudarlo a depurar posibles problemas con la macro LOG definida en device / system / init / init.c.
El programa init monta directamente todos los sistemas de archivos y dispositivos utilizando nombres de archivos codificados o nombres de dispositivos generados al sondear el sistema de archivos sysfs (eliminando así la necesidad de un archivo / etc / fstab en Android).
En otros lugares /etc/vold.fstab
y /etc/vold.conf
se mencionan. Los tengo en mi dispositivo bajo CM 7.1 pero no estoy seguro de cómo se usan.
init.rc
archivo que vive en su ramdisk, por lo que puede extraer su boot.img, extraer su ramdisk y luego modificarlo init.rc
y volver a empaquetarlo (discutido brevemente aquí , y la fuente de Tiamat es un buen ejemplo de establecer puntos de montaje init.rc
)
Puede volver a montar su almacenamiento externo para que sea ejecutable ejecutando
mount -o remount, rw /mnt/sdcard
esto eliminará los indicadores noexec, nosuid y nodev, pero seguirá siendo vfat fs. Puede hacer enlaces a esta fs pero no desde dentro. El remontaje no sobrevive al reinicio, porque el archivo vold.fstab se leerá y se remontará al reiniciar con los indicadores noexec.
Si vuelve a formatear cualquiera de su almacenamiento externo a otra cosa que no sea vfat, no se volverán a montar al reiniciar, y las aplicaciones que haya movido a cualquier almacenamiento externo no serán utilizables. Si no tiene la intención de usar almacenamiento externo para aplicaciones, puede desmontar su almacenamiento externo y usarlo busybox mke2fs DEVICE
para hacerlo ext2. Use busybox newfs_msdos DEVICE
para devolverlo a vfat y volver a usarlo.
La nota busybox mkfs.vfat
está rota, obtendrás algo como
lseek: valor demasiado grande para el tipo de datos definido
así que no pierdas tu tiempo. Todo esto supone que está rooteado y que tiene un binario busybox que funciona.
Me doy cuenta de que este es un tema antiguo, pero algunas de las respuestas aquí realmente obstaculizaron mis esfuerzos para aprender sobre fstab
Android, ya que implican fuertemente que la fstab
situación en Android es extremadamente diferente de otras distribuciones de Linux. Por lo que puedo decir, no lo es.
Sin embargo, leer diferentes respuestas aquí me hizo preguntarme: ¿qué fstab
archivo o archivos equivalentes hay en mi dispositivo?
Retrocediendo por un momento, notando que " Android no tiene / etc / fstab " probablemente no sea útil para el OP ya que ya deben haberlo sabido. Si esto no fuera cierto, su pregunta (preguntar cuál es el equivalente de Android /etc/fstab
) no tendría ningún sentido. Por otro lado, sabemos que @Flow no estaba tratando de dar a entender que no había un equivalente en Android, ya que mencionaron uno de ellos, un "script de ayuda" llamado /etc/vold.fstab
.
En general, creo que la conclusión de la publicación de @ Flow es que en algunos sistemas, hay un archivo (posiblemente un "script de ayuda", no puedo verificar eso en mi teléfono) llamado /etc/vold.fstab
, y en esos sistemas, este archivo es el equivalente más cercano a /etc/fstab
.
Volviendo a preguntarme acerca de mi propio dispositivo, voy a publicar mis hallazgos aquí por varias razones, a pesar de la antigüedad del OP:
fstab
archivos de estilo que puedo encontrar en mi teléfono, un Pixel 2XL.Así que déjame intentar resumir todo lo que he aprendido de todo esto:
Android, o al menos sus variantes a las que tengo acceso, utilizan fstab
archivos de estilo. Sin embargo, el nombre exacto, la ubicación y la función de estos archivos varían según la distribución, es decir, según la versión y el dispositivo de Android, y también según la ROM si usa una ROM personalizada.
Para encontrar estos archivos en el sistema, abrir un emulador de terminal como tmux
o adb shell
y ejecutar algo como esto: find / -type f -iname '*fstab*' 2>/dev/null
. La redirección del archivo 2 ( stderr
) /dev/null
hará que su salida sea mucho más limpia, ya que podrá ignorar la avalancha de mensajes de error que recibirá find
, incluso si lo es root
.
En mi sistema (un Pixel 2XL, nombre en clave "taimen"), encontré tres archivos candidatos:
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
Los dos primeros son archivos separados, ya que ninguno de los dos es un enlace duro o simbólico con el otro, pero si diff
los encuentra, encontrará que son idénticos. Mirando un poco más profundo, si ejecuta stat
en los archivos verá que tienen los mismos valores de Dispositivo e Inode:
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
informa ambos nombres de archivo como archivos normales con un solo enlace cada uno (por lo que no hay enlaces duros o simbólicos). No soy un experto en sistemas de archivos, pero lo que sucedió aquí es que el mismo dispositivo se ha montado dos veces. Puede ver esto en la salida del siguiente comando, donde las únicas diferencias entre las dos líneas de salida son los puntos de montaje (la parte inmediatamente después de "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)
El tercer archivo solo es visible para mí si inicio sesión como root, por lo que si tiene un dispositivo idéntico al mío, aún no encontrará ni tendrá acceso a este archivo a menos que su teléfono esté rooteado. Ese archivo tiene que ver con un servicio llamado Open Mobile Alliance Device Management, pero ese es un servicio que conozco muy poco, por lo que solo lo mencionaré aquí, y puede buscarlo en Google si lo desea.
/system/etc
o /vendor/etc
. Gracias por traer información fresca.
mount: bad /etc/fstab: No such file or directory
. ¿Tienes alguna idea o una solución para esto?