Réponses:
Ne pensez pas à Android comme à une distribution Linux fortement modifiée. Parce que non. La seule chose qu'Android partage avec une distribution Linux est le noyau. Et même ce composant est modifié. D'autres composants de base, comme la libc, diffèrent également.
Android n'a pas /etc/fstab
Vous n'avez pas besoin /etc/fstabde monter une partition. Mais il n'y a pas non plus de mountcommandement de l' IIRC . dev_mountdevrait fonctionner (root requis). Pour répondre au titre de vos questions: Tout le montage du système de démarrage se fait avec le /etc/vold.fstabscript d'aide.
Le fichier fstab est dans /.
Il s'appelle /fstab.$systemname.rcoù $systemnameest basé sur la propriété d'empreinte digitale du combiné, soit identifié comme catégorie de chipset ou combiné lui-même.
/etc/vold.fstab. :)
vold.fstab, et dans 4.3 et versions ultérieures, c'est /fstab.<device>.
Je vois des informations contradictoires. Une ressource dit qu'elle est codée en dur , donc ce n'est pas quelque chose que vous pouvez changer côté utilisateur:
Les programmes d'initialisation spécifiques à Android se trouvent dans device / system / init. Ajoutez des messages LOG pour vous aider à déboguer les problèmes potentiels avec la macro LOG définie dans device / system / init / init.c.
Le programme init monte directement tous les systèmes de fichiers et périphériques à l'aide de noms de fichiers codés en dur ou de noms de périphériques générés par la vérification du système de fichiers sysfs (éliminant ainsi la nécessité d'un fichier / etc / fstab dans Android).
Ailleurs /etc/vold.fstabet /etc/vold.confsont mentionnés. Je les ai sur mon appareil sous CM 7.1 mais je ne sais pas comment ils sont utilisés.
init.rcfichier qui vit dans votre ramdisk, vous pouvez donc extraire votre boot.img, extraire votre ramdisk, puis le modifier init.rcet le remballer à nouveau (brièvement discuté ici , et la source de Tiamat est un bon exemple de définition de points de montage init.rc)
Vous pouvez remonter votre stockage externe pour qu'il soit exécutable en exécutant
mount -o remount, rw /mnt/sdcard
cela supprimera les indicateurs noexec, nosuid et nodev, mais ce sera toujours vfat fs. Vous pouvez créer des liens vers ce fichier mais pas de l'intérieur. Le remontage ne survit pas à un redémarrage, car le fichier vold.fstab sera lu et ils seront remontés au redémarrage avec les drapeaux noexec.
Si vous reformatez l'un de vos stockages externes en autre chose que vfat, ils ne seront pas remontés au redémarrage et les applications que vous avez déplacées vers un stockage externe ne seront pas utilisables. Si vous n'avez pas l'intention d'utiliser le stockage externe pour les applications, vous pouvez démonter votre stockage externe et l'utiliser busybox mke2fs DEVICEpour le rendre ext2. Utilisez busybox newfs_msdos DEVICEpour le retourner à vfat et le rendre à nouveau utilisable.
La note busybox mkfs.vfatest cassée, vous obtiendrez quelque chose comme
lseek: valeur trop grande pour le type de données défini
alors ne perdez pas votre temps. Tout cela suppose que vous êtes enraciné et que votre binaire busybox fonctionne.
Je me rends compte que c'est un vieux sujet, mais certaines des réponses ici ont en fait gêné mes efforts pour en savoir plus sur fstabAndroid, car elles impliquent si fortement que la fstabsituation dans Android est extrêmement différente des autres distributions Linux. D'après ce que je peux dire, ce n'est pas le cas.
Cependant, la lecture de différentes réponses ici m'a fait me demander: quel fstabou plusieurs fichiers équivalents se trouvent sur mon appareil?
Prendre du recul pendant un moment, notant que " Android n'a pas / etc / fstab " n'est probablement pas utile à l'OP car ils doivent déjà le savoir. Si ce n'était pas vrai, leur question (demander quel est l'équivalent d'Android /etc/fstab) n'aurait aucun sens. D'un autre côté, nous savons que @Flow n'essayait pas d'impliquer qu'il n'y avait pas d'équivalent sur Android, car ils en ont mentionné un, un "script d'aide" nommé /etc/vold.fstab.
Dans l'ensemble, je pense que la leçon à retenir de la publication de @ Flow est que sur certains systèmes, il y a un fichier (peut-être un "script d'aide" - je ne peux pas le vérifier sur mon téléphone) appelé /etc/vold.fstab, et sur ces systèmes, ce fichier est l'équivalent le plus proche de /etc/fstab.
Pour en revenir à me poser des questions sur mon propre appareil, je vais poster mes résultats ici pour plusieurs raisons, malgré l'âge du PO:
fstabfichiers de style que je peux trouver sur mon téléphone, un Pixel 2XL.Alors laissez-moi essayer de résumer tout ce que j'ai appris de tout cela:
Android, ou du moins ses variantes auxquelles j'ai accès, utilise des fstabfichiers -style. Cependant, le nom, l'emplacement et la fonction exacts de ces fichiers varient selon la distribution, c'est-à-dire selon la version et l'appareil Android, et également selon la ROM si vous utilisez une ROM personnalisée.
Pour trouver ces fichiers sur votre système, ouvrez un émulateur de terminal comme tmuxou adb shellet exécuter quelque chose comme ceci: find / -type f -iname '*fstab*' 2>/dev/null. La redirection du fichier 2 ( stderr) /dev/nullrendra votre sortie beaucoup plus propre car vous pourrez ignorer l'assaut des messages d'erreur que vous obtiendrez find, même si vous l'êtes root.
Sur mon système (un Pixel 2XL, nom de code "taimen"), j'ai trouvé trois fichiers candidats:
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
Les deux premiers sont des fichiers séparés en ce que ni l'un ni l'autre ne sont un lien dur ou symbolique vers l'autre, mais si vous diffles trouverez, ils seront identiques. En regardant un peu plus loin, si vous exécutez statsur les fichiers, vous verrez qu'ils ont les mêmes valeurs de périphérique et d'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
statsignale ces deux noms de fichiers comme des fichiers normaux avec un seul lien chacun (donc aucun lien matériel ou symbolique n'est impliqué). Je ne suis pas un expert du système de fichiers, mais ce qui s'est passé ici, c'est que le même périphérique a été monté deux fois. Vous pouvez le voir dans la sortie de la commande suivante, où les seules différences entre les deux lignes de sortie dans sont les points de montage (la partie immédiatement après "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)
Le troisième fichier n'est visible que si je me connecte en tant que root, donc si vous avez un appareil identique au mien, vous ne trouverez toujours pas ce fichier, ou n'y aurez pas accès, à moins que votre téléphone ne soit rooté. Ce fichier a à voir avec un service appelé Open Mobile Alliance Device Management, mais c'est un service que je connais très peu, donc je vais le mentionner ici, et vous pouvez Google pour plus de détails à ce sujet si vous le souhaitez.
/system/etcou /vendor/etc. Merci d'avoir apporté de nouvelles informations.
mount: bad /etc/fstab: No such file or directory. Avez-vous des idées ou une solution pour cela?