Antworten:
Denken Sie nicht an Android als stark veränderte Linux-Distribution. Weil es nicht so ist. Das einzige, was Android mit einer Linux-Distribution teilt, ist der Kernel. Und auch diese Komponente wird modifiziert. Auch andere Kernkomponenten, wie die libc, unterscheiden sich.
Android hat keine /etc/fstab
Sie müssen keine /etc/fstab
Partition mounten. Aber es gibt auch keinen IIRC- mount
Befehl. dev_mount
sollte funktionieren (root erforderlich). So beantworten Sie Ihre Fragen title: Die gesamte Systemstartbereitstellung erfolgt mit dem /etc/vold.fstab
Hilfsskript.
Die fstab-Datei befindet sich in /
.
Es heißt, /fstab.$systemname.rc
wo $systemname
basiert auf der Fingerabdruck-Eigenschaft des Mobilteils, entweder als Kategorie des Chipsatzes oder des Mobilteils selbst identifiziert.
/etc/vold.fstab
. :)
vold.fstab
und in 4.3 und später der Fall/fstab.<device>
.
Ich sehe widersprüchliche Informationen. Eine Ressource gibt an, dass sie fest codiert ist , sodass Sie die Benutzerseite nicht ändern können:
Android-spezifische Init-Programme finden Sie in device / system / init. Fügen Sie LOG-Meldungen hinzu, um mögliche Probleme mit dem in device / system / init / init.c definierten LOG-Makro zu beheben.
Das init-Programm stellt alle Dateisysteme und Geräte direkt bereit, indem entweder fest codierte Dateinamen oder Gerätenamen verwendet werden, die durch Prüfen des sysfs-Dateisystems generiert wurden (wodurch die Notwendigkeit einer / etc / fstab-Datei in Android entfällt).
An anderer Stelle /etc/vold.fstab
und /etc/vold.conf
werden erwähnt. Ich habe sie unter CM 7.1 auf meinem Gerät, bin mir aber nicht sicher, wie sie verwendet werden.
init.rc
Datei, die Leben in Ihrer RAM - Disk, so dass Sie Ihren boot.img ziehen können, extrahieren Sie Ihren RAM - Disk, und dann wird das ändern init.rc
und es umpacken wieder (kurz diskutiert hier , und Tiamats Quelle ist ein gutes Beispiel für Einhängepunkte bei der Einrichtung init.rc
)
Sie können Ihren externen Speicher erneut aktivieren, damit er ausgeführt werden kann
mount -o remount, rw /mnt/sdcard
Dadurch werden die Flags noexec, nosuid und nodev entfernt, es handelt sich jedoch weiterhin um vfat fs. Sie können Links zu dieser Datei erstellen, aber nicht von innen. Die erneute Bereitstellung übersteht einen Neustart nicht, da die Datei vold.fstab gelesen und beim Neustart mit den noexec-Flags erneut bereitgestellt wird.
Wenn Sie einen externen Speicher anders als vfat formatieren, wird dieser beim Neustart nicht erneut bereitgestellt, und alle Apps, die Sie auf einen externen Speicher verschoben haben, können nicht verwendet werden. Wenn Sie keinen externen Speicher für Apps verwenden möchten, können Sie die Bereitstellung Ihres externen Speichers aufheben und busybox mke2fs DEVICE
ihn zu ext2 machen. Verwendenbusybox newfs_msdos DEVICE
, um es an vfat zurückzugeben und es wieder verwendbar zu machen.
Ist die Notiz busybox mkfs.vfat
kaputt, bekommst du sowas
lseek: Wert zu groß für definierten Datentyp
Verschwende also nicht deine Zeit. All dies setzt voraus, dass Sie verwurzelt sind und über eine funktionierende Busybox-Binärdatei verfügen.
Mir ist klar, dass dies ein altes Thema ist, aber einige der Antworten hier haben meine Bemühungen, etwas über fstab
Android zu lernen, tatsächlich behindert, weil sie so stark implizieren, dass diefstab
Situation in Android extrem von anderen Linux-Distributionen unterscheidet. Soweit ich das beurteilen kann, ist es das nicht.
Beim Lesen der verschiedenen Antworten habe ich mich jedoch gefragt: Welche fstab
äquivalenten Dateien befinden sich auf meinem Gerät?
Einen Moment zurückzutreten und zu bemerken, dass " Android keine / etc / fstab hat ", ist für das OP wahrscheinlich nicht hilfreich, da sie dies bereits gewusst haben müssen. Wenn dies nicht wahr wäre, würde ihre Frage (nach dem Äquivalent von Android fragen /etc/fstab
) keinen Sinn ergeben. Andererseits wissen wir, dass @Flow nicht angedeutet hat, dass es auf Android kein Äquivalent gibt, da sie eines davon erwähnt haben, ein "Hilfsskript" namens /etc/vold.fstab
.
Alles in allem glaube ich, dass in @ Flows Post auf einigen Systemen eine Datei (möglicherweise ein "Hilfsskript" - ich kann das auf meinem Telefon nicht überprüfen) aufgerufen /etc/vold.fstab
wurde und auf diesen Systemen diese Datei lautet das nächste Äquivalent zu /etc/fstab
.
Nachdem ich mich wieder über mein eigenes Gerät gewundert habe, werde ich meine Ergebnisse aus verschiedenen Gründen hier veröffentlichen, trotz des Alters des OP:
fstab
Dateien im Stil eines Pixels 2XL dokumentieren, die ich auf meinem Telefon finden kann.Lassen Sie mich also alles zusammenfassen, was ich daraus gelernt habe:
Android oder zumindest die Varianten, auf die ich Zugriff habe, verwenden fstab
-Style-Dateien. Der genaue Name, der Speicherort und die Funktion dieser Dateien hängen jedoch von der Verteilung ab - dh von der Android-Version und dem Gerät sowie vom ROM, wenn Sie ein benutzerdefiniertes ROM verwenden.
Um diese Dateien auf Ihrem System zu finden, öffnen Sie ein Terminal - Emulator wie tmux
oder adb shell
und laufen etwas wie folgt aus : find / -type f -iname '*fstab*' 2>/dev/null
. Durch die Umleitung von Datei 2 ( stderr
) /dev/null
wird Ihre Ausgabe viel sauberer, da Sie den Ansturm an Fehlermeldungen ignorieren können, den Sie erhalten find
, selbst wenn Sie es sind root
.
Auf meinem System (ein Pixel 2XL, Codename "taimen") habe ich drei Kandidatendateien gefunden:
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
Die ersten beiden Dateien sind separate Dateien, da weder eine feste noch eine symbolische Verknüpfung zur anderen besteht. Wenn Sie diff
sie jedoch verwenden, werden Sie feststellen, dass sie identisch sind. Wenn Sie etwas stat
genauer hinschauen, werden Sie feststellen, dass die Dateien dieselben Geräte- und Inode-Werte haben:
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
Meldet diese beiden Dateinamen als reguläre Dateien mit jeweils nur einem Link (es handelt sich also nicht um harte oder symbolische Links). Ich bin kein Dateisystemexperte, aber hier ist passiert, dass dasselbe Gerät zweimal gemountet wurde. Sie können dies in der Ausgabe des folgenden Befehls sehen, wobei die einzigen Unterschiede zwischen den beiden Ausgabezeilen in den Einhängepunkten (dem Teil unmittelbar nach "on") bestehen:
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)
Die dritte Datei ist nur für mich sichtbar, wenn ich mich als root anmelde. Wenn Sie also ein Gerät haben, das mit meinem identisch ist, können Sie diese Datei immer noch nicht finden oder darauf zugreifen, es sei denn, Ihr Telefon ist root. Diese Datei hat mit einem Dienst zu tun, der Open Mobile Alliance-Geräteverwaltung heißt. Da mir dieser Dienst jedoch nur sehr wenig bekannt ist, werde ich ihn hier nur erwähnen. Wenn Sie möchten, können Sie bei Google weitere Informationen dazu abrufen.
/system/etc
oder haben /vendor/etc
. Vielen Dank für die neuen Informationen.
mount: bad /etc/fstab: No such file or directory
. Hast du irgendwelche Gedanken oder eine Lösung dafür?