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/fstab
Bir bölüm monte etmeniz gerekmez . Ancak IIRC de mount
komut 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.fstab
yardımcı komut dosyası ile yapılır .
Fstab dosyası içinde /
.
Deniyor /fstab.$systemname.rc
nereye $systemname
telefonunuzun 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.fstab
ve /etc/vold.conf
bahsedilir. Onları CM 7.1 altında cihazımda buluyorum ama nasıl kullanıldığından emin değilim.
init.rc
Ramdiskinizde yaşayan bir dosya var, böylece boot.img'inizi çekebilir, ramdisk'inizi çıkarabilir ve ardından init.rc
tekrar 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 DEVICE
Vfat'a döndürmek ve tekrar kullanılabilir yapmak için kullanın .
Not busybox mkfs.vfat
bozuldu, şö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 fstab
Android 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 fstab
eş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.fstab
ve 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:
fstab
telefonumda 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 tmux
ya adb shell
ve 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 find
olsanı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 diff
onlara 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
stat
bu 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/etc
da 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ı?