Jawaban:
Jangan berpikir tentang Android sebagai distribusi Linux yang banyak dimodifikasi. Karena tidak. Satu-satunya hal yang Android bagikan dengan distribusi Linux adalah kernel. Dan bahkan komponen ini dimodifikasi. Juga komponen inti lainnya, seperti libc, berbeda.
Android tidak /etc/fstab
Anda tidak perlu /etc/fstab
memasang partisi. Tapi ada IIRC tidak ada mount
perintah juga. dev_mount
harus bekerja (root diperlukan). Untuk menjawab judul pertanyaan Anda: Semua pemasangan sistem startup dilakukan dengan /etc/vold.fstab
skrip pembantu.
File fstab ada di /
.
Disebut di /fstab.$systemname.rc
mana $systemname
didasarkan pada properti sidik jari handset, baik diidentifikasi sebagai kategori chipset atau handset itu sendiri.
/etc/vold.fstab
. :)
vold.fstab
, dan di 4.3 dan kemudian itu /fstab.<device>
.
Saya melihat informasi yang saling bertentangan. Satu sumber mengatakan itu hardcode , jadi bukan sesuatu yang bisa Anda ubah di sisi pengguna:
Program init khusus Android ditemukan di perangkat / sistem / init. Tambahkan pesan LOG untuk membantu Anda men-debug masalah potensial dengan makro LOG yang ditentukan dalam perangkat / sistem / init / init.c.
Program init secara langsung me-mount semua sistem file dan perangkat menggunakan nama file kode-keras atau nama perangkat yang dihasilkan dengan menyelidiki sistem file sysfs (sehingga menghilangkan kebutuhan untuk file / etc / fstab di Android).
Di tempat lain /etc/vold.fstab
dan /etc/vold.conf
disebutkan. Saya memilikinya di perangkat saya di bawah CM 7.1 tetapi saya tidak yakin bagaimana mereka digunakan.
init.rc
file yang hidup di ramdisk Anda, sehingga Anda dapat menarik boot.img Anda, ekstrak ramdisk Anda, dan kemudian memodifikasi init.rc
dan membungkus kembali lagi (dibahas secara singkat di sini , dan sumber Tiamat ini adalah contoh yang baik dari pengaturan mountpoints di init.rc
)
Anda dapat mengount ulang penyimpanan eksternal agar dapat dieksekusi dengan menjalankan
mount -o remount, rw /mnt/sdcard
ini akan menghapus flag noexec, nosuid dan nodev, tetapi masih akan menjadi vfat fs. Anda dapat membuat tautan ke fs ini tetapi tidak dari dalam. Remount tidak selamat dari reboot, karena file vold.fstab akan dibaca dan mereka akan di-remount saat reboot dengan flag noexec.
Jika Anda memformat ulang salah satu penyimpanan eksternal Anda ke selain vfat, maka mereka tidak akan dipasang ulang saat reboot, dan aplikasi apa pun yang Anda pindahkan ke penyimpanan eksternal apa pun tidak akan dapat digunakan. Jika Anda tidak berniat untuk menggunakan penyimpanan eksternal untuk aplikasi maka Anda dapat meng-unmount penyimpanan eksternal Anda dan menggunakannya busybox mke2fs DEVICE
untuk membuatnya ext2. Gunakan busybox newfs_msdos DEVICE
untuk mengembalikannya ke vfat dan membuatnya dapat digunakan lagi.
Catatan busybox mkfs.vfat
rusak, Anda akan mendapatkan sesuatu seperti
lseek: Nilai terlalu besar untuk tipe data yang ditentukan
jadi jangan buang waktu Anda. Semua ini mengasumsikan Anda telah di-root, dan memiliki binary busybox yang berfungsi.
Saya menyadari bahwa ini adalah topik lama, tetapi beberapa jawaban di sini sebenarnya menghambat upaya saya untuk belajar fstab
dan Android karena mereka sangat menyiratkan bahwa fstab
situasi di Android sangat berbeda dari distribusi Linux lainnya. Dari apa yang bisa saya katakan, ternyata tidak.
Namun, membaca berbagai respons di sini membuat saya bertanya-tanya: fstab
file apa-yang setara pada perangkat saya ?
Melangkah mundur sejenak, mencatat bahwa " Android tidak memiliki / etc / fstab " mungkin tidak membantu OP karena mereka pasti sudah mengetahui hal ini. Jika ini tidak benar, pertanyaan mereka (menanyakan apa yang setara dengan Android /etc/fstab
) tidak akan masuk akal. Di sisi lain, kita tahu @Flow tidak berusaha menyiratkan bahwa tidak ada padanan di Android, karena mereka menyebut salah satunya, "skrip pembantu" bernama /etc/vold.fstab
.
Semua dalam semua, saya pikir takeaway dari posting @ Flow adalah bahwa pada beberapa sistem, ada file (mungkin "skrip pembantu" - saya tidak dapat memverifikasi itu di telepon saya) yang disebut /etc/vold.fstab
, dan pada sistem itu, file ini adalah setara dengan /etc/fstab
.
Kembali ke bertanya-tanya tentang perangkat saya sendiri, saya akan memposting temuan saya di sini karena beberapa alasan, terlepas dari usia OP:
fstab
file-gaya saya dapat menemukan di ponsel saya, Pixel 2XL.Jadi izinkan saya mencoba merangkum semua yang telah saya pelajari dari semua ini:
Android, atau setidaknya variannya yang dapat saya akses, memang menggunakan fstab
file-style. Namun, nama, lokasi, dan fungsi yang tepat dari file-file ini bervariasi berdasarkan distribusi - artinya menurut versi dan perangkat Android, dan juga oleh ROM jika Anda menggunakan ROM khusus.
Untuk menemukan file-file pada sistem Anda, membuka emulator terminal seperti tmux
atau adb shell
dan menjalankan sesuatu seperti ini: find / -type f -iname '*fstab*' 2>/dev/null
. Pengalihan file 2 ( stderr
) ke /dev/null
akan membuat output Anda jauh lebih bersih karena Anda akan dapat mengabaikan gempuran pesan kesalahan yang akan Anda dapatkan find
, bahkan jika Anda melakukannya root
.
Di sistem saya (Pixel 2XL, nama kode "taimen"), saya menemukan tiga file kandidat:
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
Dua yang pertama adalah file-file yang terpisah karena tidak ada tautan yang keras atau simbolis ke yang lain, tetapi jika Anda memilikinya diff
Anda akan menemukan bahwa mereka identik. Terlihat sedikit lebih dalam, jika Anda menjalankan stat
file Anda akan melihat bahwa mereka memiliki nilai Perangkat dan Inode yang sama:
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
melaporkan kedua nama file ini sebagai file biasa dengan masing-masing hanya satu tautan (sehingga tidak ada tautan simbolis atau simbolis yang terlibat). Saya bukan pakar sistem file tetapi yang terjadi di sini adalah perangkat yang sama telah dipasang dua kali. Anda dapat melihat ini di output dari perintah berikut, di mana satu-satunya perbedaan antara dua baris output adalah titik pemasangan (bagian segera setelah "on"):
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)
File ketiga hanya terlihat oleh saya jika saya login sebagai root, jadi jika Anda memiliki perangkat yang identik dengan milik saya, Anda masih tidak akan menemukan, atau memiliki akses ke, file ini kecuali telepon Anda di-root. File itu ada hubungannya dengan layanan yang disebut Open Device Alliance Device Management, tapi itu adalah layanan yang saya tahu sedikit tentang, jadi saya hanya akan menyebutkannya di sini, dan Anda dapat Google untuk detail tentang itu jika Anda mau.
/system/etc
atau /vendor/etc
. Terima kasih telah membawa info baru.
mount: bad /etc/fstab: No such file or directory
. Apakah Anda punya pemikiran atau solusi untuk ini?