Yanıtlar:
Android'i büyük ölçüde değiştirilmiş bir Linux dağıtımı olarak düşünmeyin. Çünkü öyle değil. Android'in Linux dağıtımında paylaştığı neredeyse tek şey çekirdek. Ve hatta bu bileşen değiştirildi. Ayrıca libc gibi diğer çekirdek bileşenler de farklılık gösterir.
Android yok /etc/fstab
/etc/fstabBir bölüm monte etmeniz gerekmez . Ancak IIRC de mountkomut yok. dev_mountçalışması gerekir (kök gerekli). Sorularınızın başlığını cevaplamak için: Tüm başlangıç sistem montajı /etc/vold.fstabyardımcı komut dosyası ile yapılır .
Fstab dosyası içinde /.
Deniyor /fstab.$systemname.rcnereye $systemnametelefonunuzun parmak izi mülkiyete dayanan, ya yonga seti veya cihazın kendisinde kategorisinde olarak tanımladı.
/etc/vold.fstab. :)
vold.fstab, 4.3 ve sonraki sürümlerde /fstab.<device>.
Çakışan bilgiler görüyorum. Bir kaynak kodlanmış olduğunu söylüyor , bu yüzden kullanıcı tarafını değiştirebileceğiniz bir şey yok:
Android'e özgü init programları aygıt / sistem / init'te bulunur. / System / init / init.c dosyasında tanımlanan LOG makrosu ile ilgili olası hataları ayıklamanıza yardımcı olmak için LOG mesajları ekleyin.
İnit programı, doğrudan kodlanmış dosya adlarını veya sysfs dosya sistemini araştırmak suretiyle oluşturulan cihaz adlarını kullanarak tüm dosya sistemlerini ve cihazları doğrudan bağlar (böylece Android'de bir / etc / fstab dosyasına olan ihtiyacı ortadan kaldırır).
Başka bir yerde /etc/vold.fstabve /etc/vold.confbahsedilir. Onları CM 7.1 altında cihazımda buluyorum ama nasıl kullanıldığından emin değilim.
init.rcRamdiskinizde yaşayan bir dosya var, böylece boot.img'inizi çekebilir, ramdisk'inizi çıkarabilir ve ardından init.rctekrar değiştirebilir ve yeniden paketleyebilirsiniz ( burada kısaca tartışılmış ve Tiamat'ın kaynağı bağlantı noktalarının ayarlanmasına iyi bir örnektir init.rc)
Harici depolama alanınızı çalıştırarak çalıştırılabilir olması için yeniden ayarlayabilirsiniz.
mount -o remount, rw /mnt/sdcard
bu noexec, nosuid ve nodev bayraklarını kaldıracak, ancak yine de ffatlar olacak. Bu fs ile bağlantı kurabilirsiniz, ancak içeriden değil. Vold.fstab dosyası okunacağından ve noexec bayraklarıyla yeniden başlatıldığında yeniden başlatıldığından remount yeniden başlatmaya dayanamaz.
Harici depolama alanınızdan herhangi birini vfat dışındaki herhangi bir şeye yeniden biçimlendirirseniz, yeniden başlatılırken yeniden ücretlendirilmezler ve herhangi bir harici depolamaya taşıdığınız hiçbir uygulama kullanılamaz. Uygulamalar için harici depolama alanı kullanmayı düşünmüyorsanız, harici depolama alanınızı çıkarabilir ve genişletmek için kullanabilirsiniz busybox mke2fs DEVICE. busybox newfs_msdos DEVICEVfat'a döndürmek ve tekrar kullanılabilir yapmak için kullanın .
Not busybox mkfs.vfatbozuldu, şöyle bir şey alacaksınız
lseek: Tanımlanmış veri türü için değer çok büyük
bu yüzden zamanını boşa harcama. Bunların hepsi sizin köklü olduğunuzu ve çalışan bir meşgul kutusu ikili koduna sahip olduğunuzu varsayar.
Bunun eski bir konu olduğunun farkındayım, ancak buradaki cevapların bazıları aslında fstabAndroid ve Android hakkındaki çabalarımı engelledi çünküfstab durumun diğer Linux dağıtımlarından oldukça farklı . Söyleyebileceğimden, öyle değil.
Ancak, burada farklı yanıtları okumak beni meraklandırdı: cihazımda hangi fstabeşdeğer dosya veya dosyalar var ?
Bir anlığına geriye adım atmak, " Android'in / etc / fstab'a sahip olmadığını " belirterek , muhtemelen bunu bilmeleri gerektiğine bağlı olarak muhtemelen OP için yararlı değildir. Eğer bu doğru değilse, onların sorusu (Android'in eşdeğerinin ne olduğunu sormak /etc/fstab) bir anlam ifade etmeyecektir. Öte yandan, @Flow’un Android’de eşdeğer olmadığını ima etmeye çalışmadığını biliyoruz, çünkü bunlardan birini, “yardımcı bir betik” olarak adlandırdılar /etc/vold.fstab.
Sonuçta, sanırım @ Flow'un gönderisinden çıkan paket, bazı sistemlerde bir dosya (muhtemelen "yardımcı bir komut dosyası" - telefonumda bunu doğrulayamıyorum) /etc/vold.fstabve bu sistemlerde bu dosya olduğunu doğrulayamıyorum. en yakın eşdeğeri /etc/fstab.
Kendi cihazım hakkında merak etmeye başladığımda, OP yaşına rağmen bulgularımı çeşitli nedenlerle buraya göndereceğim:
fstabtelefonumda bir Piksel 2XL bulabilirsiniz tarzı dosyaları.Bu yüzden, bundan öğrendiğim her şeyi özetlemeye çalışmama izin verin:
Android veya en azından erişebildiğim varyantları fstab-style dosyalarını kullanıyor. Bununla birlikte, bu dosyaların tam adı, konumu ve işlevi dağıtıma göre değişir - yani Android sürümü ve cihaz anlamında ve ayrıca özel bir ROM kullanıyorsanız ROM tarafından.
, Sisteminizde bu dosyaları bulmak gibi bir terminal emülatörü açmak için tmuxya adb shellve böyle bir şey çalıştırın: find / -type f -iname '*fstab*' 2>/dev/null. 2 ( stderr) dosyasının yönlendirilmesi, /dev/nullçıktınızı daha temiz hale getirecek, siz de findolsanız bile , alacağınız hata mesajlarının ihmal edilmesini göremeyeceğiniz gibi root.
Sistemimde (bir Pixel 2XL, kod adı "taimen"), üç aday dosya buldum:
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
İlk iki hiçbiri diğerine sert veya sembolik bağ olması ile ayrı dosyalar, ancak eğer diffonlara onlar özdeş olduğunu göreceksiniz. Biraz daha derinlere bakarsak stat, dosyalarda çalışırsanız aynı Cihaz ve İnode değerlerine sahip olduklarını göreceksiniz:
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
statbu dosya adlarının her ikisini de yalnızca bir bağlantıya sahip normal dosyalar olarak bildirir (bu nedenle, hiçbir sabit veya sembolik bağlantı yoktur). Ben bir dosya sistemi uzmanı değilim ama burada olan, aynı cihazın iki kez monte edildiği. Bunu, aşağıdaki komutun çıktısında görebilirsiniz; burada iki çıktı satırı arasındaki tek fark, bağlama noktalarıdır ("on" dan hemen sonraki kısım):
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)
Üçüncü dosya sadece root olarak giriş yaparsam görülebilir, bu yüzden benimkine özdeş bir cihaza sahipseniz, telefonunuz köklü olmadığı sürece bu dosyayı bulamazsınız veya bu dosyaya erişemezsiniz. Bu dosyanın Açık Mobil İttifak Cihaz Yönetimi adlı bir servisle ilgisi var, ama bu çok az bildiğim bir servis, bu yüzden burada sadece bahsedeceğim ve isterseniz bu konuda ayrıntılı bilgi için Google’ı kullanabilirsiniz.
/system/etcda birinde bağımsız bir fstab dosyası olacaktı /vendor/etc. Yeni bilgiler getirdiğiniz için teşekkür ederiz.
mount: bad /etc/fstab: No such file or directory. Bunun için herhangi bir düşünceniz veya çözümünüz var mı?