ต้นไม้ใหญ่คืออะไรและตั้งอยู่ที่ไหน


3

ฉันอ่านหน้าคู่มือของคำสั่ง "mount" ซึ่งอ่านดังนี้:

ไฟล์ทั้งหมดที่สามารถเข้าถึงได้ในระบบ Unix จะถูกจัดเรียงในต้นไม้ใหญ่ลำดับชั้นของไฟล์ที่รูทที่ /. ไฟล์เหล่านี้สามารถแพร่กระจายผ่านอุปกรณ์ต่าง ๆ ได้ คำสั่ง mount ทำหน้าที่เชื่อมต่อระบบไฟล์ที่พบในอุปกรณ์บางตัวกับแผนผังไฟล์ขนาดใหญ่

คำถามของฉันคือ:

  • ต้นไม้ใหญ่ตั้งอยู่ที่ไหน?

  • สมมติว่าฉันมีดิสก์ 2 ตัวหากฉันติดตั้งลงในบางจุดใน "ต้นไม้ใหญ่" Linux วาง "เครื่องหมายพิเศษ" ไว้ในจุดเชื่อมต่อเพื่อระบุว่า "ไดเรกทอรีติดตั้ง" ทั้งสองนี้เป็นดิสก์ที่แยกกันจริง ๆ หรือไม่


ที่จริงแล้วในความคิดที่สองฉันไม่คิดว่าควรย้ายจาก SO มันเป็นคำถามเกี่ยวกับโครงสร้างภายในของ Linux และไม่เกี่ยวข้องกับเซิร์ฟเวอร์หรือพีซี หากคุณไม่ได้รับคำติชมที่นี่ลองถามอีกครั้งอาจใช้ถ้อยคำที่เป็นนามธรรมมากกว่านี้เล็กน้อย
Pekka 웃

@Pekka - มันไม่เกี่ยวข้องกับการเขียนโปรแกรมและในความคิดของฉันเป็นคำถามที่ดีมากสำหรับผู้ใช้ที่ดี
Gnoupi

คำตอบ:


6

คุณจะได้รับข้อมูลเพิ่มเติมเกี่ยวกับสิ่งนี้ใน ภูเขา หน้าคน

เกี่ยวกับคำถามแรกลักษณะต้นไม้ใหญ่เป็นอย่างไร :)

enter image description here


6

ต้นไม้ใหญ่ตั้งอยู่ที่ไหน?

ตั้งอยู่ที่ / :-) "บิ๊กทรี" อ้างถึงข้อเท็จจริงที่ว่าลินุกซ์มีเพียงลำดับชั้นไฟล์เดียวทั้งระบบ (ซึ่งเริ่มต้นที่ /) สิ่งนี้ตรงกันข้ามกับเช่น MS-DOS และ MS Windows ซึ่งสามารถมีไฟล์ได้หลายลำดับชั้น (หนึ่งตัวอักษรต่อไดรฟ์)

สมมติว่าฉันมีดิสก์ 2 ตัวหากฉันติดตั้งลงในบางจุดใน "ต้นไม้ใหญ่" linux จะใส่เครื่องหมายพิเศษบางอย่าง "ในจุดเชื่อมต่อเพื่อระบุว่า" ไดเรกทอรีติดตั้ง "ทั้งสองนี้เป็นดิสก์ที่แยกกันหรือไม่

ไม่ไม่มี "เครื่องหมายพิเศษ" ในจุดเมานต์ตัวเอง อย่างไรก็ตามเคอร์เนลติดตามว่าระบบไฟล์จริง (ฮาร์ดไดรฟ์) ติดตั้งอยู่ที่จุดใดจึงรู้ตำแหน่งที่จะอ่านข้อมูลเมื่อคุณเข้าถึงไฟล์เช่น / usr / local / bla / blo / xxx สามารถดูข้อมูลนี้ได้เช่น วิ่ง mountซึ่งแสดงรายการระบบไฟล์ที่เมาท์ทั้งหมดพร้อมกับจุดเมานต์ปัจจุบันในลำดับชั้นของไฟล์


ขอบคุณ sleske บางทีฉันไม่ได้แสดงออกอย่างชัดเจน ฉันอยากรู้ว่าฉันควรจะเก็บต้นไม้ใหญ่ไว้ที่ไหน แผนเริ่มต้นของฉันคือการจัดสรรพาร์ติชันหลักให้เล็กที่สุดเท่าที่จะทำได้เพื่อเก็บ "ต้นไม้ใหญ่" และจัดสรรโลจิคัลพาร์ติชันเพิ่มเติมเพื่อเก็บโฟลเดอร์ต่าง ๆ เช่น "/ user" จากนั้นติดตั้งโลจิคัลพาร์ติชันเหล่านี้ลงบนจุดที่เหมาะสมของ "ต้นไม้ใหญ่" กล่าวอีกอย่างหนึ่งก็คือ "พาร์ติชันหลักขนาดเล็กนำโลจิคัลพาร์ติชันใหญ่ ๆ " รูปแบบนี้เป็นอย่างไร ขอบคุณ
smwikipedia

@smwikipedia: โครงการนี้เป็นเรื่องธรรมดามาก การแบ่งพาร์ติชันดิสก์และช่วงการจัดสรรจากสองชิ้นใหญ่ (สำหรับระบบไฟล์และสลับ) ไปยังหลายพาร์ติชันในแต่ละดิสก์ภายใน โปรดทราบว่าเครือข่าย pseudo-disk นั้นจะติดตั้งใน "ต้นไม้ใหญ่" ด้วย - คุณอาจต้องการลอง "man hier" หรือ "man hierarchy" เพื่อแนะนำในเค้าโครงทั่วไป โดยทั่วไปคุณสามารถแยกไดเรกทอรีใดก็ได้และด้านล่างเป็นจุดเชื่อมต่อสำหรับดิสก์อื่น
mpez0

ขอบคุณ mpez0 ในแบบแผนเริ่มต้นของฉันใบของ "ต้นไม้ใหญ่" อาจชี้ไปที่ใดก็ได้ แต่ต้นไม้ใหญ่นั้นอยู่ที่ไหน "ต้นไม้ใหญ่" นั้นไม่มีอะไรเลยนอกจากโครงสร้างข้อมูล มันมีข้อมูลทางกายภาพ มันอยู่ในหน่วยความจำหรือไม่? หรือมันอยู่ในพาร์ติชั่นที่แมป "/" ถูกแมปไว้?
smwikipedia

ระบบไฟล์เป็นกราฟเสมือนที่เก็บโหนดต่าง ๆ ไว้ในที่ต่าง ๆ เมื่อคุณอ่านไดเรกทอรีระบบจะค้นหาตำแหน่งที่ติดตั้งและดำเนินการตามนั้น "/" มักจะเก็บไว้ในฮาร์ดดิสก์ของคุณ จุดยึดอยู่ในความทรงจำของคุณ ตัวอย่างเช่น "/ usr" อยู่ในพาร์ติชันเดียวกันจากนั้นไม่มีจุดเมานท์ที่จุดนั้นดังนั้นมันจะอ่านเนื้อหาไดเรกทอรีจากดิสก์ ตอนนี้ "/ home" อยู่ในพาร์ติชันที่แตกต่างกันดังนั้นระบบจะค้นหาจุดเมานต์ที่ชี้ไปที่นั่นและอ่านไดเรกทอรีรากจากพาร์ติชันนั้น
petersohn

ขอบคุณสำหรับความคิดเห็นของคุณ petersohn ในคำพูดของคุณคุณพูดว่า "เมื่อคุณอ่านไดเรกทอรีระบบจะค้นหาตำแหน่งที่ติดตั้งและดำเนินการตาม" ฉันต้องการทราบว่า "ข้อมูล" ที่ระบบค้นหาเก็บไว้ที่ไหน ในพาร์ทิชัน whcih? พาร์ทิชันเดียวกันกับ "/"? ที่จริงแล้ว "ข้อมูล" นี้คือสิ่งที่ฉันหมายถึงโดยวลี "ต้นไม้ใหญ่" แน่นอน
smwikipedia

3

หากคุณพิมพ์ mount มันจะบอกคุณว่าไดเร็กตอรี่นั้นถูกติดตั้งที่ไหนและที่ไหน ตัวอย่างเช่นถ้าคำตอบคือ /dev/sda1 on / type ext3 (rw)หมายความว่าไดเรกทอรีรากของพาร์ติชันแรกบนฮาร์ดดิสก์ตัวแรกของคุณคือรากของ "ต้นไม้ใหญ่" ของคุณ

ตอนนี้สมมติว่าคุณได้รับสาย /dev/sdb1 on /home type ext3 (rw). มันหมายถึงเนื้อหาของคุณ /home ไดเรกทอรีจะเป็นไดเรกทอรีรากของพาร์ติชันแรกบนฮาร์ดดิสก์ตัวที่สองของคุณ อาจมีระบบไฟล์เสมือนอื่น ๆ ที่ไม่มีอยู่ในพาร์ติชันใด ๆ แต่จัดการโดยระบบแบบไดนามิก ตัวอย่างเช่นคุณบูตจากซีดีสดและติดตั้งพาร์ติชันที่ใช้เป็นพาร์ติชันระบบ สมมติว่าคุณพิมพ์

mkdir /media/system
mount /dev/sda1 /media/system

ตอนนี้คุณจะเห็นไดเรกทอรีรากของระบบของคุณ (ที่คุณใช้เป็นประจำไม่ใช่สิ่งที่คุณถูกบูทด้วย CD) /media/system. นอกจากนี้คุณยังจะเห็นไดเรกทอรีที่ชอบ dev ว่างเปล่าเพราะโดยปกติจะมีระบบไฟล์เสมือน

หากคุณกำลังถามว่าระบบตัดสินใจได้อย่างไรว่าพาร์ทิชันนี้อยู่ที่ใดระบบจะทำการเขียนทั้งหมด /etc/fstab. ชนิด man 5 fstab หากคุณต้องการข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้ ใช่ฉันรู้ว่ามีปัญหาไข่ไก่ที่นี่เพราะระบบต้องค้นหา /etc/fstab (และ /sbin/mountสำหรับเรื่องนั้น) ก่อนทำการติดตั้งไดเรกทอรี คำตอบคือฉันไม่รู้ แต่ใช้ได้ดีทีเดียว

แก้ไข: ฉันอาจเพิ่มว่าพาร์ทิชันทั้งหมดมีตัวระบุเฉพาะที่เรียกว่า UUID คุณสามารถต่อเชื่อมโดยใช้ตัวระบุนี้ได้โดยพิมพ์ mount -U uuid_of_partition /media/mount_point. มันมักจะทำแบบนี้มา /etc/fstabเพื่อหลีกเลี่ยงปัญหาที่เกิดขึ้นตัวอย่างเช่นคุณเปลี่ยนลำดับของดิสก์ในเครื่องของคุณ


ขอบคุณ petersohn คุณให้ฉันมากกว่าที่ฉันคาดหวัง มันมีข้อมูลมาก ขอบคุณมาก.
smwikipedia

2

ต้นไม้ใหญ่ตั้งอยู่ที่ไหน?

บนคอมพิวเตอร์ของคุณ อย่างจริงจัง. ดิสก์ทั้งหมดถูกรวมเข้าด้วยกันรวมทั้งอุปกรณ์ในหน่วยความจำและอุปกรณ์เทียม, เทอร์มินัล, โมเด็ม, ทุกอย่างเป็นต้นไม้ขนาดใหญ่ที่เรียกว่า "ระบบไฟล์" ซึ่ง คือ คอมพิวเตอร์ของคุณ.

สมมติว่าฉันมีดิสก์ 2 ตัว ... ลินุกซ์วาง "เครื่องหมายพิเศษ" ไว้ในจุดเมานท์เพื่อระบุว่า "ไดเรกทอรีเมานท์" 2 ตัวเหล่านี้เป็นดิสก์ที่แยกกันหรือไม่?

ใช่.


กระชับและตรงเป้าหมาย ขอบคุณมาก.
smwikipedia
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.