/ Etc / fstab dosyasının Android eşdeğeri nedir?


26

Bazen gerçekten Linux ile uğraşmadıklarını diliyorum! Bir /etc/fstabyerlerde bir yerlerde olduğunu biliyorum , ama nerede?

Bazı bölümleri alternatif dosya sistemlerine bağlamak istiyorum (çünkü FAT32'yi sevmiyorum).

Yanıtlar:


19

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 .


Sanırım ben gerçekten çok yetenekli bir maemo kullanıcısıyım. Evet linux'dan oldukça uzakta sanırım. İşaretçi vold.fstab için teşekkürler!
barrymac

3
Vold.fstab benim nexus one'ımda sadece sd kart özelliklerine sahip
gcb

7

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


3
Bu bağımlıdır ve ROM'dan ROM'a değişir. AOSP de onun /etc/vold.fstab. :)
t0mm13b

ve CM10 için doğru olsa da - /fstab.p1c var - henüz çözemediğim bir şey tarafından yeniden başlatıldığında üzerine yazılır.
jcomeau_ictx

3
Source.android.com/devices/storage/config.html adresine göre , Android 4.2.2 ve önceki sürümlerde vold.fstab, 4.3 ve sonraki sürümlerde /fstab.<device>.
Lars

1
Benim Moto E, bu dosya :( sadece dosya sistemi monte okuma üzerindedir
Anton Krosnev

5

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


3
Bir tür kodlanmış, ancak bir tür değil. 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)
eldarerathis

5

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.


2

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:

  • Birincisi, belgelemek istiyorum tüm arasında fstabtelefonumda bir Piksel 2XL bulabilirsiniz tarzı dosyaları.
  • İkincisi, insanlara, özellikle Linux / Android yeniliklerine, bu dosyaları kendi cihazınızda bulmanın oldukça kolay olduğunu göstermek istiyorum ("balık tutmayı öğret").
  • Üçüncüsü, bulgularımı yazmamda yardımcı olur (bonus: Onu her zaman burada StackExchange'te bulabilirim!).
  • Sonunda, Google hala bu sayfayı yayınlıyor, bu yüzden benden başka birine yardım etme şansı var.

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.


1
Gerçekten eski konu ve o zamandan beri işler biraz değişti, ROM'ları kurduğum cihazların çoğunun ya /system/etcda birinde bağımsız bir fstab dosyası olacaktı /vendor/etc. Yeni bilgiler getirdiğiniz için teşekkür ederiz.
Andy Yan

Bu yazı, mount'un hatayı neden döndürdüğünü belirlerken bulundu mount: bad /etc/fstab: No such file or directory. Bunun için herhangi bir düşünceniz veya çözümünüz var mı?
Michael,
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.