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/fstab
de monter une partition. Mais il n'y a pas non plus de mount
commandement de l' IIRC . dev_mount
devrait 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.fstab
script d'aide.
Le fichier fstab est dans /
.
Il s'appelle /fstab.$systemname.rc
où $systemname
est 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.fstab
et /etc/vold.conf
sont mentionnés. Je les ai sur mon appareil sous CM 7.1 mais je ne sais pas comment ils sont utilisés.
init.rc
fichier qui vit dans votre ramdisk, vous pouvez donc extraire votre boot.img, extraire votre ramdisk, puis le modifier init.rc
et 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 DEVICE
pour le rendre ext2. Utilisez busybox newfs_msdos DEVICE
pour le retourner à vfat et le rendre à nouveau utilisable.
La note busybox mkfs.vfat
est 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 fstab
Android, car elles impliquent si fortement que la fstab
situation 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 fstab
ou 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:
fstab
fichiers 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 fstab
fichiers -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 tmux
ou adb shell
et exécuter quelque chose comme ceci: find / -type f -iname '*fstab*' 2>/dev/null
. La redirection du fichier 2 ( stderr
) /dev/null
rendra 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 diff
les trouverez, ils seront identiques. En regardant un peu plus loin, si vous exécutez stat
sur 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
stat
signale 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/etc
ou /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?