37 votes

Quel est l'équivalent Android de /etc/fstab ?

Parfois, j'aimerais vraiment qu'ils ne se soient pas autant amusés avec Linux ! Je sais qu'il y a un /etc/fstab là-dedans, quelque part, mais où ?

J'aimerais monter certaines partitions avec des systèmes de fichiers alternatifs (car je n'aime pas la FAT32).

23voto

Flow Points 18254

Ne considérez pas Android comme une distribution Linux fortement modifiée. Parce que ce n'est pas le cas. La seule chose qu'Android partage avec une distribution Linux est le noyau. Et même ce composant est modifié. D'autres composants essentiels, comme la libc, diffèrent également.

Android n'a pas /etc/fstab

Vous n'avez pas besoin /etc/fstab pour monter une partition. Mais il n'y a pas, je crois, de mount non plus. dev_mount devrait fonctionner (Root requis). Pour répondre à vos questions titre : Tous les montages du système de démarrage sont effectués avec l'option /etc/vold.fstab script d'aide.

11voto

chris Points 181

Je me rends compte qu'il s'agit d'un vieux sujet, mais certaines des réponses données ici m'ont empêché d'en savoir plus sur fstab et Androïde parce qu'ils impliquent fortement que les fstab La situation dans Android est extrêmement différente de celle des autres distributions Linux. D'après ce que je peux dire, elle ne l'est pas.

Cependant, en lisant les différentes réponses ici, je me suis demandé : qu'est-ce que ? fstab -le ou les fichiers équivalents sont sur mon appareil ?

En prenant un peu de recul, on constate que " Android n'a pas de /etc/fstab "n'est probablement pas utile au PO puisqu'il devait déjà le savoir. Si ce n'était pas le cas, sa question (demandant quel est l'équivalent Android de l'option /etc/fstab est) n'aurait aucun sens. D'un autre côté, nous savons que @Flow n'essayait pas d'insinuer qu'il n'y avait pas d'équivalent sur Android, puisqu'ils ont mentionné l'un d'entre eux, un "script d'aide" nommé /etc/vold.fstab .

Au final, je pense que le message de @Flow est que sur certains systèmes, il existe 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 à mes interrogations sur mon propre appareil, je vais poster mes conclusions ici pour plusieurs raisons, malgré l'âge de l'OP :

  • D'abord, je veux documenter todo de la fstab -que je peux trouver sur mon téléphone, un Pixel 2XL.
  • Deuxièmement, je veux montrer aux gens, en particulier aux novices de Linux/Android, qu'il est assez facile de trouver ces fichiers sur votre propre appareil ("apprenez-leur à pêcher").
  • Troisièmement, il m'est utile d'écrire mes conclusions (bonus : je pourrai toujours les retrouver ici, sur StackExchange !).
  • Enfin, Google affiche toujours cette page, il y a donc une chance que cela puisse aider quelqu'un d'autre que moi.

Je vais donc essayer de résumer tout ce que j'ai appris de tout cela :

Android, ou du moins ses variantes auxquelles j'ai accès, fait usage de fstab -fichiers de style. Toutefois, le nom exact, l'emplacement et la fonction de ces fichiers varient selon la distribution, c'est-à-dire selon la version et l'appareil Android, ainsi que selon la ROM si vous utilisez une ROM personnalisée.

Pour trouver ces fichiers sur votre système, ouvrez un émulateur de terminal tel que termux o adb shell et exécutez quelque chose comme ça : find / -type f -iname '*fstab*' 2>/dev/null . La redirection du fichier 2 ( stderr ) à /dev/null rendra vos résultats beaucoup plus propres, car vous pourrez ignorer l'assaut de messages d'erreur que vous obtiendrez avec la commande find même si vous ê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 sens qu'aucun n'est un lien dur ou symbolique vers l'autre, mais si vous diff vous constaterez qu'ils sont identiques. En regardant un peu plus profondément, si vous exécutez stat sur les fichiers, vous verrez qu'ils ont les mêmes valeurs Device et 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 rapporte ces deux noms de fichiers comme des fichiers normaux avec un seul lien chacun (donc aucun lien dur ou symbolique n'est impliqué). Je ne suis pas un expert en système de fichiers mais ce qui s'est passé ici 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 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 ne m'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 est lié à un service appelé Open Mobile Alliance Device Management, mais c'est un service que je connais très peu, donc je vais juste le mentionner ici, et vous pouvez chercher des détails sur Google si vous le souhaitez.

8voto

atc Points 1553

Le fichier fstab est dans / .

Ça s'appelle /fstab.$systemname.rc donde $systemname est basée sur la propriété de l'empreinte digitale du combiné, identifiée comme la catégorie du chipset ou du combiné lui-même.

6voto

Mark Mikofski Points 151

Vous pouvez remonter votre stockage externe pour qu'il soit exécutable en exécutant

mount -o remount, rw /mnt/sdcard

cela supprimera les drapeaux noexec, nosuid et nodev, mais ce sera toujours un fs vfat. Vous pouvez créer des liens vers ce fs mais pas depuis l'intérieur. Le remontage ne survit pas à un redémarrage, parce que 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 un format autre que vfat, ils ne seront pas remontés au redémarrage, et toutes 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 utiliser la commande busybox mke2fs DEVICE pour le rendre ext2. Utilisez busybox newfs_msdos DEVICE pour le remettre en vfat et le rendre utilisable à nouveau.

備考 busybox mkfs.vfat est cassé, vous obtiendrez quelque chose comme

lseek : Valeur trop grande pour le type de données défini

alors ne perdez pas votre temps. Tout ceci suppose que vous êtes enraciné, et que vous avez un binaire busybox fonctionnel.

5voto

Matthew Read Points 50150

Je vois des informations contradictoires. Une ressource dit que c'est codé en dur Ce n'est donc pas quelque chose que vous pouvez changer côté utilisateur :

Les programmes init 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 les périphériques en utilisant soit des noms de fichiers codés en dur, soit des noms de périphériques générés en sondant le système de fichiers sysfs (éliminant ainsi le besoin d'un fichier /etc/fstab dans Android).

Ailleurs /etc/vold.fstab y /etc/vold.conf sont mentionnés. Je les ai sur mon appareil sous CM 7.1 mais je ne suis pas sûr de la façon dont ils sont utilisés.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X