A veces me gustaría que no se hubieran metido tanto con Linux. Sé que hay un /etc/fstab
en alguna parte, pero ¿dónde?
Me gustaría montar algunas particiones con sistemas de archivos alternativos (porque no me gusta FAT32).
A veces me gustaría que no se hubieran metido tanto con Linux. Sé que hay un /etc/fstab
en alguna parte, pero ¿dónde?
Me gustaría montar algunas particiones con sistemas de archivos alternativos (porque no me gusta FAT32).
No pienses en Android como una distribución de Linux muy modificada. Porque no lo es. Lo casi único que Android comparte con una distribución Linux es el núcleo. E incluso este componente está modificado. También otros componentes básicos, como la libc, difieren.
Android no tiene /etc/fstab
No necesitas /etc/fstab
para montar una partición. Pero no hay IIRC mount
tampoco. dev_mount
debería funcionar (Root required). Para responder a sus preguntas título: Todo el montaje del sistema de arranque se realiza con el /etc/vold.fstab
script de ayuda.
Me doy cuenta de que este es un tema viejo, pero algunas de las respuestas aquí en realidad obstaculizado mis esfuerzos para aprender acerca de fstab
y Android porque dan a entender que la fstab
situación en Android es extremadamente diferente a la de otras distribuciones Linux. Por lo que yo sé, no lo es.
Sin embargo, la lectura de las diferentes respuestas aquí me hizo preguntarme: ¿qué fstab
-el archivo o archivos equivalentes están en mi ¿dispositivo?
Dando un paso atrás por un momento, observando que " Android no tiene /etc/fstab "probablemente no ayude a la OP, puesto que ya debe saberlo. Si esto no fuera cierto, su pregunta (preguntando cuál es el equivalente en Android de /etc/fstab
es) no tendría ningún sentido. Por otro lado, sabemos que @Flow no intentaba dar a entender que no existía un equivalente en Android, ya que mencionó uno de ellos, un "script de ayuda" llamado /etc/vold.fstab
.
Con todo, creo que lo que se desprende del post de @Flow es que en algunos sistemas, hay un archivo (posiblemente un "script de ayuda" - no puedo verificarlo 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 sobre mi propio dispositivo, voy a publicar mis conclusiones aquí por varias razones, a pesar de la edad del OP:
fstab
-archivos de estilo que puedo encontrar en mi teléfono, un Pixel 2XL.Así que permítanme intentar resumir todo lo que he aprendido de todo esto:
Android, o al menos sus variantes a las que tengo acceso, sí hace uso de 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 de Android y el dispositivo, y también según la ROM si utilizas una ROM personalizada.
Para encontrar estos archivos en su sistema, abra un emulador de terminal como termux
o adb shell
y ejecuta algo como esto: find / -type f -iname '*fstab*' 2>/dev/null
. La redirección del fichero 2 ( stderr
) a /dev/null
hará que su salida sea mucho más limpia ya que podrá ignorar la avalancha de mensajes de error que obtendrá de find
incluso si eres root
.
En mi sistema (un Pixel 2XL, nombre en clave "taimen"), he encontrado 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 en el sentido de que ninguno es un enlace duro o simbólico al otro, pero si usted diff
comprobará que son idénticos. Mirando un poco más profundo, si ejecuta stat
en los archivos verás que tienen los mismos valores de Device 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 de ambos nombres de archivo como archivos normales con un solo enlace cada uno (por lo que no hay enlaces duros ni simbólicos implicados). No soy un experto en sistemas de ficheros pero lo que ha ocurrido aquí es que el mismo dispositivo ha sido montado dos veces. Puedes 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 sólo es visible para mí si inicio sesión como Root, así que si tienes un dispositivo idéntico al mío, aún no encontrarás, o no tendrás acceso a este archivo a menos que tu teléfono esté rooteado. Ese archivo tiene que ver con un servicio llamado Open Mobile Alliance Device Management, pero es un servicio del que sé muy poco, así que me limitaré a mencionarlo aquí, y puedes buscar en Google para obtener más detalles al respecto si lo deseas.
Y si bien es cierto para CM10 -- Tengo /fstab.p1c -- se sobrescribe en el reinicio por algo que aún no he descubierto.
Según source.Android.com/devices/storage/config.html , en Android 4.2.2 y anteriores es vold.fstab
y en 4.3 y posteriores es /fstab.<device>
.
Puedes volver a montar tu almacenamiento externo para que sea ejecutable ejecutando
mount -o remount, rw /mnt/sdcard
esto eliminará las banderas noexec, nosuid y nodev, pero seguirá siendo vfat fs. Puede hacer enlaces a este fs pero no desde dentro. El remontaje no sobrevive a un reinicio, porque se leerá el archivo vold.fstab y se volverán a montar en el reinicio con las banderas noexec.
Si reformateas cualquiera de tus dispositivos de almacenamiento externo a otro formato que no sea vfat, no se volverán a montar al reiniciar, y las aplicaciones que hayas movido a cualquier dispositivo de almacenamiento externo no se podrán utilizar. Si no tiene intención de utilizar el almacenamiento externo para aplicaciones, puede desmontarlo y utilizar busybox mke2fs DEVICE
para hacerlo ext2. Utilice busybox newfs_msdos DEVICE
para devolverlo a vfat y hacerlo utilizable de nuevo.
Nota busybox mkfs.vfat
está roto, obtendrá algo como
lseek: Valor demasiado grande para el tipo de datos definido
así que no pierdas el tiempo. Todo esto supone que usted está rooteado, y tienen un trabajo busybox binario.
Veo información contradictoria. Un recurso dice que es hardcoded por lo que no es algo que pueda cambiar el usuario:
Los programas init específicos de Android se encuentran en device/system/init. Añade mensajes LOG para ayudarte 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 mediante el sondeo del 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 utilizan.
En cierto modo está codificado, pero en cierto modo no. Hay un init.rc
que vive en su ramdisk, así que usted puede tirar de su boot.img, extraer su ramdisk, y luego modificar la init.rc
y volver a empaquetarlo (brevemente discutido aquí y Fuente de Tiamat es un buen ejemplo de configuración de puntos de montaje en init.rc
)
PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.