บางครั้งฉันก็หวังว่าพวกเขาจะไม่ยุ่งกับ Linux มากนัก! ฉันรู้ว่ามี/etc/fstab
บางอย่างในนั้น แต่ที่ไหน
ฉันต้องการติดตั้งพาร์ติชั่นบางตัวด้วยระบบไฟล์ทางเลือก (เพราะฉันไม่ชอบ FAT32)
บางครั้งฉันก็หวังว่าพวกเขาจะไม่ยุ่งกับ Linux มากนัก! ฉันรู้ว่ามี/etc/fstab
บางอย่างในนั้น แต่ที่ไหน
ฉันต้องการติดตั้งพาร์ติชั่นบางตัวด้วยระบบไฟล์ทางเลือก (เพราะฉันไม่ชอบ FAT32)
คำตอบ:
อย่าคิดว่า Android เป็นลีนุกซ์ที่มีการดัดแปลงแก้ไขอย่างมาก เพราะมันไม่ใช่ สิ่งเดียวที่ Android แชร์กับการแจกจ่าย Linux คือเคอร์เนล และแม้กระทั่งองค์ประกอบนี้ก็มีการปรับเปลี่ยน ส่วนประกอบหลักอื่น ๆ เช่น libc นั้นแตกต่างกัน
Android ไม่มี /etc/fstab
คุณไม่จำเป็นต้อง/etc/fstab
ติดตั้งพาร์ติชัน แต่มี IIRC ไม่มีmount
คำสั่งอย่างใดอย่างหนึ่ง dev_mount
ควรทำงาน (จำเป็นต้องใช้รูท) ในการตอบคำถามของคุณชื่อ: การติดตั้งระบบเริ่มต้นทั้งหมดทำได้ด้วย/etc/vold.fstab
สคริปต์ผู้ช่วยเหลือ
ไฟล์ fstab /
อยู่ใน
มันเรียกว่า/fstab.$systemname.rc
ที่$systemname
จะขึ้นอยู่กับสถานที่ให้บริการโทรศัพท์มือถือของลายนิ้วมือทั้งระบุว่าเป็นหมวดหมู่ของชิปเซ็ตหรือโทรศัพท์มือถือที่ตัวเอง
/etc/vold.fstab
ของมัน :)
vold.fstab
และใน 4.3 /fstab.<device>
และต่อมาก็
ฉันเห็นข้อมูลที่ขัดแย้งกัน แหล่งข้อมูลหนึ่งบอกว่ามันเป็นฮาร์ดโค้ดดังนั้นไม่ใช่สิ่งที่คุณสามารถเปลี่ยนฝั่งผู้ใช้ได้:
พบโปรแกรม init เฉพาะสำหรับ Android ในอุปกรณ์ / ระบบ / init เพิ่มข้อความ LOG เพื่อช่วยให้คุณแก้ปัญหาที่อาจเกิดขึ้นกับมาโคร LOG ที่กำหนดไว้ในอุปกรณ์ / ระบบ / init / init.c
โปรแกรม init เมานต์ระบบไฟล์และอุปกรณ์ทั้งหมดโดยตรงโดยใช้ชื่อไฟล์แบบเข้ารหัสหรือชื่ออุปกรณ์ที่สร้างโดยการตรวจสอบระบบไฟล์ sysfs (ดังนั้นจึงไม่จำเป็นต้องใช้ไฟล์ / etc / fstab ใน Android)
ที่อื่น/etc/vold.fstab
และ/etc/vold.conf
ถูกกล่าวถึง ฉันมีพวกมันในอุปกรณ์ภายใต้ CM 7.1 แต่ฉันไม่แน่ใจว่าจะใช้งานอย่างไร
init.rc
ไฟล์ที่อยู่ใน ramdisk ของคุณดังนั้นคุณสามารถดึง boot.img ของคุณแยก ramdisk ของคุณแล้วแก้ไขinit.rc
และบรรจุใหม่อีกครั้ง (กล่าวถึงสั้น ๆที่นี่และแหล่งที่มาของ Tiamatเป็นตัวอย่างที่ดีของการตั้งค่าจุดเมานท์init.rc
)
คุณสามารถติดตั้งที่เก็บข้อมูลภายนอกของคุณเพื่อให้สามารถเรียกใช้งานได้โดยการเรียกใช้
mount -o remount, rw /mnt/sdcard
สิ่งนี้จะลบแฟล็ก noexec, nosuid และ nodev แต่จะยังคงเป็น vfat fs คุณสามารถสร้างลิงก์ไปยัง fs นี้ได้ แต่ไม่ใช่จากภายใน การเมานต์ใหม่ไม่รอดจากการรีบูตได้เนื่องจากไฟล์ vold.fstab จะถูกอ่านและจะถูกเมาท์ใหม่เมื่อรีบู๊ตด้วยแฟล็ก noexec
หากคุณฟอร์แมตที่เก็บข้อมูลภายนอกใด ๆ ของคุณเป็นอย่างอื่นนอกเหนือจาก vfat พวกเขาจะไม่ถูกประกอบใหม่เมื่อรีบูตระบบและแอพใด ๆ ที่คุณย้ายไปยังที่จัดเก็บข้อมูลภายนอกจะไม่สามารถใช้งานได้ หากคุณไม่ต้องการใช้ที่เก็บข้อมูลภายนอกสำหรับแอปคุณสามารถยกเลิกการต่อเชื่อมที่จัดเก็บข้อมูลภายนอกของคุณและใช้busybox mke2fs DEVICE
เพื่อทำให้เป็น ext2 ใช้busybox newfs_msdos DEVICE
เพื่อส่งคืนเป็น vfat และทำให้สามารถใช้งานได้อีกครั้ง
โน้ตbusybox mkfs.vfat
เสียคุณจะได้รับสิ่งที่ชอบ
lseek: ค่ามีขนาดใหญ่เกินไปสำหรับชนิดข้อมูลที่กำหนด
ดังนั้นอย่าเสียเวลา ทั้งหมดนี้ถือว่าคุณได้รับการรูตและมีไบนารี busybox ที่ใช้งานได้
ฉันรู้ว่านี่เป็นหัวข้อเก่า แต่คำตอบบางส่วนที่นี่ขัดขวางความพยายามของฉันในการเรียนรู้fstab
และ Android จริง ๆ เพราะพวกเขาบ่งบอกอย่างชัดเจนว่าfstab
สถานการณ์ใน Android นั้นแตกต่างอย่างมากจากการกระจาย Linux อื่น ๆ จากสิ่งที่ฉันสามารถบอกได้มันไม่ใช่
อย่างไรก็ตามการอ่านคำตอบต่าง ๆ ทำให้ฉันสงสัยว่า: อะไรคือfstab
ไฟล์หรือไฟล์ที่เทียบเท่าบนอุปกรณ์ของฉัน
ย้อนกลับไปสักครู่โดยสังเกตว่า " Android ไม่มี / etc / fstab " อาจจะไม่เป็นประโยชน์ต่อ OP เนื่องจากพวกเขาต้องรู้จักสิ่งนี้อยู่แล้ว หากสิ่งนี้ไม่จริงคำถามของพวกเขา (ถามว่าเทียบเท่า Android /etc/fstab
คืออะไร) จะไม่ทำให้รู้สึกใด ๆ ในทางกลับกันเรารู้ @Flow ไม่ได้พยายามที่จะบ่งบอกว่ามีก็เท่ากับไม่มีบน Android ตั้งแต่พวกเขากล่าวถึงหนึ่งของพวกเขาเป็น "ผู้ช่วยสคริปต์" /etc/vold.fstab
ชื่อ
โดยรวมแล้วฉันคิดว่าสิ่งที่พกพามาจากโพสต์ของ @ Flow คือในบางระบบมีไฟล์ (อาจเป็น "ตัวช่วยสคริปต์" - ฉันไม่สามารถตรวจสอบได้ในโทรศัพท์ของฉัน) ที่เรียกว่า/etc/vold.fstab
และในระบบเหล่านั้นไฟล์นี้คือ /etc/fstab
เพื่อเทียบเท่าที่ใกล้ที่สุด
กลับไปที่สงสัยเกี่ยวกับอุปกรณ์ของฉันเองฉันจะโพสต์สิ่งที่ฉันค้นพบที่นี่ด้วยเหตุผลหลายประการทั้งๆที่อายุของ OP:
fstab
ไฟล์สไตล์ฉันสามารถหาในโทรศัพท์ของฉันเป็นพิกเซล 2XLดังนั้นให้ฉันพยายามสรุปทุกสิ่งที่ฉันได้เรียนรู้จากทั้งหมดนี้:
Android หรืออย่างน้อยมันเป็นรุ่นที่ฉันสามารถเข้าถึงได้ใช้ประโยชน์จากfstab
ไฟล์สไตล์ อย่างไรก็ตามชื่อตำแหน่งและฟังก์ชั่นที่แน่นอนของไฟล์เหล่านี้จะแตกต่างกันไปตามการแจกจ่าย - ความหมายตามเวอร์ชั่นและอุปกรณ์ Android และ ROM หากคุณใช้ ROM ที่กำหนดเอง
เพื่อหาไฟล์เหล่านี้บนระบบของคุณเปิดจำลอง terminal เหมือนtmux
หรือและเรียกใช้อะไรเช่นนี้adb shell
find / -type f -iname '*fstab*' 2>/dev/null
เปลี่ยนเส้นทางของไฟล์ที่ 2 ( stderr
) เพื่อ/dev/null
จะทำให้การส่งออกมากสะอาดของคุณที่คุณจะสามารถที่จะเพิกเฉยต่อการโจมตีของข้อความผิดพลาดที่คุณจะได้รับจากแม้ว่าคุณจะมีfind
root
ในระบบของฉัน (Pixel 2XL ชื่อรหัส "taimen") ฉันพบไฟล์ตัวเลือกสามไฟล์:
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
สองไฟล์แรกเป็นไฟล์ที่แยกจากกันซึ่งไม่มีลิงก์ที่ยากหรือเป็นสัญลักษณ์ไปยังอีกไฟล์หนึ่ง แต่หากคุณdiff
คุณจะพบว่าไฟล์เหล่านั้นเหมือนกัน มองลึกลงไปเล็กน้อยถ้าคุณเรียกใช้stat
ไฟล์คุณจะเห็นว่าพวกเขามีค่า Device และ Inode เหมือนกัน:
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
รายงานชื่อไฟล์ทั้งสองนี้เป็นไฟล์ปกติโดยมีเพียงลิงค์เดียวเท่านั้น (ดังนั้นจึงไม่มีการเชื่อมโยงอย่างหนักหรือเป็นสัญลักษณ์) ฉันไม่ใช่ผู้เชี่ยวชาญระบบไฟล์ แต่สิ่งที่เกิดขึ้นที่นี่คืออุปกรณ์เดียวกันถูกเมาท์สองครั้ง คุณสามารถเห็นสิ่งนี้ได้ในผลลัพธ์ของคำสั่งต่อไปนี้โดยที่ความแตกต่างเพียงอย่างเดียวระหว่างสองบรรทัดของเอาต์พุตคือจุดเมานต์ (ส่วนที่อยู่หลัง "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)
ไฟล์ที่สามจะปรากฏแก่ฉันเท่านั้นหากฉันลงชื่อเข้าใช้ด้วยรูทดังนั้นหากคุณมีอุปกรณ์ที่เหมือนกันกับฉันคุณจะยังไม่พบหรือเข้าถึงไฟล์นี้เว้นแต่โทรศัพท์ของคุณจะรูท ไฟล์ดังกล่าวเกี่ยวข้องกับบริการที่เรียกว่าการจัดการอุปกรณ์ Open Mobile Alliance แต่นั่นเป็นบริการที่ฉันรู้เพียงเล็กน้อยดังนั้นฉันจะพูดถึงที่นี่และคุณสามารถใช้ Google เพื่อขอรายละเอียดเกี่ยวกับสิ่งนี้หากคุณต้องการ
/system/etc
/vendor/etc
ขอขอบคุณที่แจ้งข้อมูลใหม่
mount: bad /etc/fstab: No such file or directory
พบการค้นหาโพสต์นี้ด้วยเหตุผลที่ว่าทำไมติดผลตอบแทนข้อผิดพลาด คุณมีความคิดหรือวิธีแก้ไขปัญหานี้หรือไม่?