Fråga:
Vad motsvarar / etc / fstab för Android?
barrymac
2011-10-13 22:22:09 UTC
view on stackexchange narkive permalink

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).

Fem svar:
Flow
2011-10-13 22:48:03 UTC
view on stackexchange narkive permalink

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.

Antar att jag verkligen är en önskvärd maemo-användare. Ja, det är ganska långt ifrån Linux antar jag. Tack för pekaren till vold.fstab!
Vold.fstab har bara SD-kort grejer på min nexus
Phil Carswell
2013-01-27 01:56:15 UTC
view on stackexchange narkive permalink

Fstab-filen finns i / .

Det heter /fstab.$systemnamn.rc där $ systemnamn baseras på handenhetens fingeravtrycksegenskap, antingen identifierad som kategori av chipset eller själva handenheten .

Det är beroende och varierar från ROM till ROM. I AOSP är det `/ etc / vold.fstab`. :)
och även om det är sant för CM10 - jag har /fstab.p1c - blir det överskrivet vid omstart av något som jag ännu inte har räknat ut.
Enligt https://source.android.com/devices/storage/config.html, i Android 4.2.2 och tidigare är det `vold.fstab`, och i 4.3 och senare är det` / fstab. `.
på min Moto E, den här filen finns på skrivskyddat filsystem :(
Matthew Read
2011-10-13 22:40:59 UTC
view on stackexchange narkive permalink

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.

Det är typ av hårdkodat, men det är det inte. Det finns en `init.rc`-fil som bor i din ramdisk, så att du kan dra din boot.img, extrahera din ramdisk och sedan ändra` init.rc` och packa om den igen (kort diskuterad [här] (http: / /android-dls.com/wiki/index.php?title=HOWTO:_Unpack%2C_Edit%2C_and_Re-Pack_Boot_Images#Structure_of_boot_and_recovery_images), och [Tiamats källa] (http://code.tiamat-dev.com/roms/ti xoom / blobs / 5d6fb66168d38f17db76dc16ac74744a71ecb2b1 / ramdisk / init.rc) är ett bra exempel på att ställa in monteringspunkter i `init.rc`)
Mark Mikofski
2012-10-17 01:59:29 UTC
view on stackexchange narkive permalink

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.

s-k-y-e---c-a-p-t-a-i-n
2018-11-27 12:50:28 UTC
view on stackexchange narkive permalink

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/vold.fstab , och på dessa system är den här filen närmast motsvarande /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:

  • Först vill jag dokumentera alla av fstab -stilfiler som jag kan hitta på min telefon, en Pixel 2XL.
  • För det andra vill jag visa människor, särskilt Linux / Android-nybörjare, att det är ganska enkelt att hitta dessa filer på din egen enhet ("lära dem att fiska").
  • För det tredje är det bra för mig att skriva upp mina resultat (bonus: Jag kommer alltid att kunna hitta den igen här på StackExchange!).
  • Slutligen serverar Google fortfarande den här sidan så det finns en chans att det kommer att hjälpa någon annan än mig.

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.

Gammalt ämne, och sedan dess har saker och ting förändrats ganska, i den utsträckning att de flesta enheter jag har byggt ROM-skivor skulle ha en fristående fstab-fil i antingen `/ system / etc` eller` / vendor / etc`.Tack för att du tog med ny information.
Hittade det här inlägget och letade efter anledningen till att mount returnerar felet `mount: bad / etc / fstab: Ingen sådan fil eller katalog`.Har du några tankar eller en lösning på detta?


Denna fråga och svar översattes automatiskt från det engelska språket.Det ursprungliga innehållet finns tillgängligt på stackexchange, vilket vi tackar för cc by-sa 3.0-licensen som det distribueras under.
Loading...