ผู้คนมากมายบอกว่าลีนุกซ์ไม่เก็บข้อมูลเกี่ยวกับการผูกเมาท์ดังนั้นจึงไม่มีวิธีรับรายการของพวกเขาและแหล่งที่มา นี่คือตัวอย่างบางส่วน:
-
IIRC ข้อมูลนี้จะไม่ถูกเก็บไว้ที่ใด: หลังจาก
mount --bind
นั้นสำเนาสองชุดนั้นมีความเท่าเทียมกันและไม่มี "ต้นฉบับ" มากกว่าอีกชุดหนึ่ง/mnt
ท้ายที่สุดอาจไม่มีต้นฉบับถ้าคุณยกเลิกการต่อเชื่อมแล้ว จากคำตอบในเว็บไซต์นี้ :
/etc/mtab
ดังนั้นวิธีเดียวที่จะจำสิ่งที่ม้าเป็นม้าผูกเป็นบันทึกการติดคำสั่งที่เหลืออยู่ใน การดำเนินการ bind mount ถูกระบุโดยตัวเลือก bind mount (ซึ่งทำให้ระบบไฟล์ถูกละเว้น) แต่การเมานต์ไม่มีตัวเลือกให้แสดงเฉพาะระบบไฟล์ที่เมาท์พร้อมชุดของชุดตัวเลือกโดยเฉพาะจากรายงานข้อบกพร่องของเดเบียน :
นี่คือเจตนา จุดเชื่อมต่อทั้งสองนั้นเท่ากันทุกวิธีดังนั้นเคอร์เนลจะไม่เก็บค่าสถานะใด ๆ เพื่อแยกความแตกต่าง
ข้างต้นเป็นเรื่องไร้สาระแม้ว่า เครื่องมือfindmnt
นี้สามารถแสดงรายการที่มาของเส้นทางของการเชื่อมต่อผูก (ในรูปแบบของdevice[source-path]
; ฉันยังพยายามที่จะได้รับมันเพียงแค่รายการเส้นทางที่มาและไม่ได้อุปกรณ์) ถ้าเคอร์เนลคือการรักษาผูกติดแล้วว่าข้อมูลที่จะต้องมีการจัดเก็บไว้ที่ใดที่หนึ่งมิฉะนั้นจะไม่สามารถรู้ว่าถูกผูกไว้กับ/home
/users
แล้วข้อมูลนี้อยู่ที่ไหน? มันถูกเก็บไว้ในพื้นที่ที่ไม่ชัดเจนใน RAM หรือไม่? ไม่findmnt
มองใน/proc
บาง?
/proc/self/mountinfo
ค่อนข้างเร็วปรับโครงสร้าง ฉันอยู่ในเครื่อง RHEL6 ของฉันก่อนหน้านี้ซึ่งไม่มีข้อมูลเส้นทาง แต่เครื่อง RHEL7 ของฉันทำและตามที่ระบุไว้ในลิงก์ของคุณ Wheezy ก็ทำได้เช่นกัน
/dev/A
ติดตั้งใน/B
และคุณทำmount --bind /B /C
เมล็ดเก่าจำเท่านั้น/B → /dev/A
และ/C → /dev/A
พวกเขาจำไม่ได้ว่าความสัมพันธ์ระหว่างการใด ๆและ/B
/C
ดังนั้น unmounting ธรรมชาติไม่มีผลต่อ/B
/C
เมล็ดที่ใหม่กว่าจำได้ว่า/C
เป็นภูเขาผูก/B
แต่ในวิธีที่ไม่ได้ป้องกันไม่/C
ให้ทำงานต่อไปหาก/B
ไม่มีการเมานท์ฉันไม่รู้วิธีการอย่างแน่นอน
findmnt
คุณกำลังใช้เวอร์ชันใดอยู่และมีตัวเลือกอะไรบ้าง ฉันไม่ได้พิมพ์ออกมาอย่างนั้นและดูที่ซอร์สโค้ดมันดูเหมือนว่าจะใช้_PATH_PROC_MOUNTINFO
ซึ่งดูเหมือนว่าจะ/proc/self/mountinfo
ไม่มีข้อมูลนี้อยู่ในนั้น