Ibland önskar jag verkligen att de inte hade trasslat så mycket med Linux! Jag vet att det finns en / etc / fstab
där någonstans, men var?
Jag skulle vilja montera några partitioner med alternativa filsystem (eftersom jag inte gillar FAT32).
Ibland önskar jag verkligen att de inte hade trasslat så mycket med Linux! Jag vet att det finns en / etc / fstab
där någonstans, men var?
Jag skulle vilja montera några partitioner med alternativa filsystem (eftersom jag inte gillar FAT32).
Tänk inte på Android som en kraftigt modifierad Linux-distribution. För det är det inte. Det nästan enda som Android delar med en Linux-distribution är kärnan. Och även denna komponent är modifierad. Också andra kärnkomponenter, som libc, skiljer sig åt.
Android har ingen /etc/fstab
►
Du behöver inte behöver / etc / fstab
för att montera en partition. Men det finns inget IIRC-kommando mount
heller. dev_mount
ska fungera (root krävs). För att svara på dina frågor titel: All start system montering görs med hjälp av /etc/vold.fstab
hjälpen script.
Fstab-filen finns i /
.
Det heter
Jag ser motstridig information. En resurs säger att den är hårdkodad, så inte något du kan ändra på användarsidan:
Android-specifika init-program finns i enhet / system / init. Lägg till LOG-meddelanden för att hjälpa dig felsöka potentiella problem med LOG-makrot definierat i enhet / system / init / init.c.
Init-programmet monterar direkt alla filsystem och enheter med antingen hårdkodade filnamn eller enhet namn som genereras genom att sondera sysfs-filsystemet (vilket eliminerar behovet av en / etc / fstab-fil i Android).
Annars /etc/vold.fstab
och /etc/vold.conf nämns. Jag har dem på min enhet under CM 7.1 men jag är inte säker på hur de används.
Du kan återmontera din externa lagring så att den kan köras genom att köra
mount -o remount, rw / mnt / sdcard
detta tar bort noexec , nosuid och nodev flaggor, men det kommer fortfarande att vara vfat fs. Du kan skapa länkar till denna fs men inte inifrån. Ommonteringen överlever inte en omstart eftersom filen vold.fstab kommer att läsas och de kommer att ommonteras vid omstart med noexec-flaggorna.
Om du formaterar något av din externa lagring till något annat än vfat, då kommer de inte att monteras om vid omstart, och alla appar som du har flyttat till något externt lagringsutrymme kan inte användas. Om du inte tänker använda extern lagring för appar kan du avmontera din externa lagring och använda upptagenbox mke2fs ENHET
för att göra den ext2. Använd busybox newfs_msdos DEVICE
för att returnera den till vfat och göra den användbar igen.
Obs busybox mkfs.vfat
är trasig, du får något som
lseek: Värde för stort för definierad datatyp
så slösa inte din tid. Allt detta förutsätter att du är rotad och har en fungerande binär för upptagenbox.
Jag inser att detta är ett gammalt ämne, men några av svaren här hindrade faktiskt mina ansträngningar att lära mig om fstab
och Android eftersom de så starkt antyder att fstab
situationen i Android skiljer sig mycket från andra Linux-distributioner. Från vad jag kan säga är det inte.
Att läsa olika svar här fick mig dock att undra: vilken fstab
-ekvivalent fil eller filer finns på min device?
Stega tillbaka ett ögonblick och notera att " Android har ingen / etc / fstab " är troligen inte till hjälp för OP eftersom de måste ha redan vetat detta. Om detta var osant skulle deras fråga (fråga vad Android-motsvarigheten till / etc / fstab
) inte ge någon mening. Å andra sidan vet vi att @Flow inte försökte antyda att det inte fanns någon motsvarighet på Android, eftersom de nämnde en av dem, ett "hjälparskript" med namnet /etc/vold.fstab
.
Sammantaget tror jag att borttagningen från @ Flows inlägg är att det på vissa system finns en fil (möjligen ett "hjälpskript" - jag kan inte verifiera det på min telefon) som heter /etc/fstab
.
Återvänder till undrar om min egen enhet , Jag kommer att lägga upp mina resultat här av flera anledningar, trots OP: s ålder:
Så låt mig prova för att sammanfatta allt jag har lärt mig av allt detta:
Android, eller åtminstone dess varianter som jag har tillgång till, använder fstab
-filer. Det exakta namnet, platsen och funktionen på dessa filer varierar emellertid beroende på distribution - vilket betyder efter Android-version och enhet, och även efter ROM om du använder en anpassad ROM.
För att hitta dessa filer på ditt system, öppna en terminalemulator som tmux
eller adb shell
och kör något så här: find / -typ f -iname '* fstab *' 2> / dev / null
. Omdirigeringen av fil 2 ( stderr
) till / dev / null
gör att din utdata blir mycket renare eftersom du kommer att kunna ignorera angreppet på felmeddelanden du får från hitta , även om du är root
.
På mitt system (en Pixel 2XL, kodnamn "taimen") hittade jag tre kandidatfiler:
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
De två första är separata filer genom att varken en hård eller symbolisk länk till den andra, men om du skiljer
dem kommer du att upptäcka att de är identiska. Ser du lite djupare, om du kör stat
på filerna kommer du att se att de har samma enhets- och inode-värden:
taimen: / # stat / sbin / .core / mirror / vendor / etc / fstab.taimen /vendor/etc/fstab.taimen File: `/sbin/.core/mirror/vendor/etc/fstab.taimen 'Storlek: 1326 Block: 16 IO Block: 512 vanliga fileDevice: fc00h / 64512d Inode: 925 Länkar: 1Access: (644 / -rw-r - r--) Uid: (0 / root) Gid: (0 / root) Åtkomst: 2009-01-01 02:00: 00.000000000Ändra: 2009-01-01 02: 00: 00.000000000Ändring: 2009-01-01 02: 00: 00.000000000 Fil: `/vendor/etc/fstab.taimen 'Storlek: 1326 Block: 16 IO Block: 512 vanlig fil Enhet: fc00h / 64512d Inode: 925 Länkar: 1
Åtkomst: (644 / -rw-r - r--) Användning: (0 / root) Gid: (0 / root) Åtkomst: 2009-01-01 02: 00: 00.000000000 Ändra: 2009-01-01 02: 00: 00.000000000Ändring: 2009-01-01 02: 00: 00.000000000
stat
rapporterar båda dessa filnamn som vanliga filer med bara en länk vardera (så ingen hårda eller symboliska länkar är inblandade). Jag är inte en filsystemsexpert men vad som har hänt här är att samma enhet har monterats två gånger. Du kan se detta i utgången från följande kommando, där de enda skillnaderna mellan de två utgångsraderna är monteringspunkterna (delen omedelbart efter "på"):
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)
Den tredje filen är bara synlig för mig om jag loggar in som root, så om du har en enhet identisk med min, du kommer fortfarande inte att hitta eller ha tillgång till den här filen om inte din telefon är rotad. Den filen har att göra med en tjänst som heter Open Mobile Alliance Device Management, men det är en tjänst som jag vet väldigt lite om, så jag kommer bara att nämna den här, och du kan Google för detaljer om det om du vill.