มีจุดเชื่อมต่อใดในระบบ Linux ทั่วไป?


32

ฉันมี 2 คำถาม

  1. ในระหว่างการติดตั้ง Linux เราระบุพื้นที่หน่วยความจำสำหรับจุดเมานท์ 2 จุด - รูทและสลับ มีจุดเชื่อมต่ออื่น ๆ ที่สร้างโดยไม่แจ้งให้ผู้ใช้ทราบหรือไม่
  2. คำสั่งนี้ถูกต้องหรือไม่: "การติดตั้งเข้ามาในรูปภาพเฉพาะเมื่อจัดการกับพาร์ติชันที่แตกต่างกันนั่นคือคุณไม่สามารถเมานต์พูด / proc เว้นแต่ว่าเป็นพาร์ติชันที่ต่างกัน"

1
+1 สำหรับชื่อคำถาม! ถ้ามือใหม่ถามเพื่อบริสุทธิ์ใจ ...
คาเลบ

ฮ่า ๆว่าความคิดของฉันมากเกินไป! +1
boehj

2
@ John: ไม่แนะนำให้ถามคำถามสองข้อในคำถามเดียว เนื่องจากตอนนี้มีคำตอบที่ครอบคลุมทั้งสองคำถามฉันเดาว่าเราจะปล่อยให้มันเลื่อน แต่โปรดถามคำถามแยกต่างหากในครั้งต่อไป ปัญหาของคุณในการค้นหาชื่อที่ดี (ไม่ชื่อของคุณไม่ใช่ข้อสรุปที่ดีสำหรับคำถามของคุณ) เกิดจากการพยายามรวมคำถามหลาย ๆ คำถามเข้าด้วยกัน
Gilles 'หยุดความชั่วร้าย'

คำตอบ:


47

มีความเข้าใจผิดอยู่เบื้องหลังคำถามของคุณ

  1. ไม่ได้ทำการติดตั้ง Swap
  2. การติดตั้งไม่ จำกัด เฉพาะพาร์ติชัน

พาร์ทิชัน

พาร์ทิชันเป็นslice¹พื้นที่ดิสก์ที่ทุ่มเทให้กับวัตถุประสงค์เฉพาะ นี่คือวัตถุประสงค์ทั่วไปบางประการสำหรับพาร์ติชัน

  • ระบบแฟ้มคือไฟล์ที่จัดเป็นต้นไม้ไดเรกทอรีและจัดเก็บไว้ในรูปแบบเช่น ext2, ext3, FFS, FAT, NTFS ...
  • สลับพื้นที่เช่นพื้นที่ดิสก์ที่ใช้สำหรับการเพจ (และจัดเก็บภาพไฮเบอร์เนต )
  • การเข้าถึงแอปพลิเคชันโดยตรง ฐานข้อมูลบางตัวจัดเก็บข้อมูลโดยตรงบนพาร์ติชั่นมากกว่าบนระบบไฟล์เพื่อเพิ่มประสิทธิภาพเล็กน้อย (ระบบไฟล์เป็นฐานข้อมูลชนิดต่อไป)
  • คอนเทนเนอร์สำหรับพาร์ติชันอื่น ตัวอย่างเช่นพาร์ติชันเสริมของพีซีหรือชิ้นส่วนดิสก์ที่มีพาร์ติชัน BSD หรือฟิสิคัลวอลุ่มLVM (ที่มีโลจิคัลวอลุ่มในที่สุดซึ่งสามารถพิจารณาเป็นพาร์ติชันได้เอง), ...

ระบบแฟ้ม

ระบบไฟล์นำเสนอข้อมูลในโครงสร้างแบบลำดับชั้น นี่คือระบบไฟล์บางชนิดที่พบบ่อย:

  • ระบบไฟล์ที่สำรองข้อมูลดิสก์เช่น ext2, ext3, FFS, FAT, NTFS, ...
    • การสำรองข้อมูลไม่จำเป็นต้องอยู่บนดิสก์พาร์ติชันโดยตรงดังที่เห็นด้านบน ตัวอย่างเช่นนี้อาจจะเป็นLVMปริมาณตรรกะหรือห่วงติด
  • หน่วยความจำระบบไฟล์ได้รับการสนับสนุนเช่น Solaris และลินุกซ์tmpfs
  • ระบบไฟล์ที่แสดงข้อมูลจากเคอร์เนลเช่นprocและsysfsบน Linux
  • ระบบไฟล์ของเครือข่ายเช่นNFS , Samba , ...
  • แอพลิเคชันได้รับการสนับสนุนระบบไฟล์ซึ่งFUSEมีคอลเลกชันขนาดใหญ่ ระบบไฟล์ที่แอปพลิเคชันสำรองสามารถทำอะไรก็ได้: ทำให้เซิร์ฟเวอร์ FTP ปรากฏเป็นระบบไฟล์ให้มุมมองทางเลือกของระบบไฟล์โดยที่ชื่อไฟล์ไม่ตรงตามตัวพิมพ์ใหญ่ - เล็กหรือแปลงเป็นการเข้ารหัสที่แตกต่างกัน

การติด

Unix นำเสนอไฟล์ในลำดับชั้นเดียวมักจะเรียกว่า "ระบบไฟล์" (แต่ในคำตอบนี้ฉันจะไม่ใช้คำว่า "ระบบไฟล์" ในแง่นี้เพื่อให้เกิดความสับสน) ระบบไฟล์ส่วนบุคคลจะต้องได้รับการทาบกิ่งเข้าสู่ลำดับชั้นนั้นเพื่อให้สามารถเข้าถึงได้

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

  • ตัวอย่างเช่นระบบไฟล์รูทถูกเมาท์ในเวลาบูต (ก่อนที่เคอร์เนลจะเริ่มกระบวนการใด ๆ ²) ไปยัง/ไดเร็กทอรี
  • ระบบไฟล์ proc ซึ่งตัวแปร Unix บางตัวเช่น Solaris และ Linux เปิดเผยข้อมูลเกี่ยวกับกระบวนการที่ติดตั้งอยู่/procดังนั้นจึง/proc/42/environกำหนดไฟล์/42/environบนระบบไฟล์ proc ซึ่ง (บน Linux อย่างน้อย) มีมุมมองแบบอ่านอย่างเดียวของสภาพแวดล้อมของกระบวนการ หมายเลข 42
  • หากคุณมีระบบแฟ้มที่แยกต่างหากเช่นการ/homeแล้ว/home/john/myfile.txtกำหนดไฟล์ที่มีเส้นทาง/john/myfile.txtจากรากของบ้านระบบแฟ้ม

ภายใต้ Linux เป็นไปได้ที่ระบบไฟล์เดียวกันจะสามารถเข้าถึงได้มากกว่าหนึ่งเส้นทางด้วยการผูกการเชื่อมต่อ

ระบบไฟล์ Linux ทั่วไปมีระบบไฟล์ที่เมาท์หลายตัว (นี่คือตัวอย่างการกระจายรุ่นและการตั้งค่าที่แตกต่างกันจะนำไปสู่ระบบไฟล์ที่แตกต่างกันที่เมาท์)

  • /: ระบบไฟล์รูทที่เมาท์ก่อนที่เคอร์เนลจะโหลดกระบวนการแรก bootloader บอกเคอร์เนลว่าจะใช้เป็นระบบไฟล์รูท (โดยปกติคือพาร์ติชั่นดิสก์ แต่อาจเป็นอย่างอื่นเช่นการส่งออก NFS)
  • /proc: proc filessytem พร้อมข้อมูลกระบวนการและเคอร์เนล
  • /sys: ระบบไฟล์sysfsพร้อมข้อมูลเกี่ยวกับอุปกรณ์ฮาร์ดแวร์
  • /dev: ระบบไฟล์ในหน่วยความจำที่ไฟล์อุปกรณ์ถูกสร้างขึ้นโดยอัตโนมัติโดยudevตามฮาร์ดแวร์ที่มี
  • /dev/pts: ระบบไฟล์วัตถุประสงค์พิเศษที่มีไฟล์อุปกรณ์สำหรับการรันเทอร์มินัลอีมูเลเตอร์
  • /dev/shm: ระบบไฟล์ในหน่วยความจำที่ใช้สำหรับวัตถุประสงค์ภายในโดยห้องสมุดมาตรฐานของระบบ
  • คุณอาจเห็นระบบไฟล์วัตถุประสงค์พิเศษอื่น ๆ เช่นbinfmt_misc(ใช้โดยระบบย่อยเคอร์เนลรูปแบบไฟล์เรียกทำงานภายนอก ), fusectl(ใช้โดยFUSE ), nfsd(ใช้โดยเซิร์ฟเวอร์เคอร์เนล NFS), ...
  • ระบบไฟล์ใด ๆ ที่กล่าวถึงอย่างชัดเจนใน/etc/fstab(และไม่ได้ทำเครื่องหมายnoauto) ถูกเมาท์เป็นส่วนหนึ่งของกระบวนการบู๊ต
  • ระบบไฟล์ใด ๆ ที่ติดตั้งโดยอัตโนมัติโดยHAL (หรือฟังก์ชันการทำงานที่เทียบเท่า) หลังจากการแทรกของอุปกรณ์ที่ถอดออกได้เช่นคีย์ USB
  • ระบบไฟล์ใด ๆ ที่ติดตั้งอย่างชัดเจนด้วยmountคำสั่ง

¹ ทางการพูดที่นี่
²เริ่มต้นและอยู่นอกเหนือขอบเขตของคำตอบนี้
³ นี้จะแตกต่างจาก Windows ซึ่งมีลำดับชั้นแยกต่างหากสำหรับแต่ละระบบแฟ้มเช่นหรือc:\\hostname\sharename


5
+10 Gilles คุณได้เวลาที่ไหน ความคิดเห็นเพียงอย่างเดียวของฉันคือฉันต้องให้บางคนหย่อนในปัญหาการแลกเปลี่ยนเพราะมันเป็นเลือดสับสนที่จะมีการแลกเปลี่ยนพาร์ทิชันของฉันในรายการ/etc/fstabเมื่อมันไม่ได้ที่จะติดตั้ง
Caleb

เป็นคำถามที่โง่เง่าแน่นอน แต่ไม่สามารถหยุดตัวเองได้ คุณพูดว่า "กำลังเชื่อมโยงไดเรกทอรีกับรากของระบบไฟล์" ดังนั้นไดเร็กทอรี "/" อยู่ที่ไหน
John

2
@John: ไม่ใช่คำถามที่โง่เลยคำว่า "filesystem" และ "root" นั้นมีความหมายต่างกันสองแบบที่นี่: มีระบบไฟล์แต่ละอัน (แต่ละอันมีรูท) และมีลำดับชั้นของไดเรกทอรีทั้งหมด (ที่มีรูทของมัน/ไดเรกทอรี) . ฉันได้ป้อนข้อความในส่วนนี้ของคำตอบของฉันหวังว่าตอนนี้ควรจะชัดเจนขึ้น
Gilles 'หยุดความชั่วร้าย' ใน

คำตอบนั้นมีประโยชน์อย่างเหลือเชื่อ - มันเป็นสารานุกรม ฉันก็หวังว่าฉันจะทำได้ +10 ที่นี่ คำตอบที่ยอดเยี่ยม
boehj

13
  1. linux distro ทุกตัวมีการจัดการพาร์ติชั่นเริ่มต้นของตนเอง บางส่วนใช้พาร์ติชันหลายสิบบางพาร์ติชันเป็นพาร์ติชันเดียว 3 และ 4 เป็นข้อตกลงทั่วไป (/ boot, /, swap และ / home) เลย์เอาท์เก่า ๆ บางอันมักมี / var บนพาร์ติชั่นแยกต่างหากและระบบที่รุนแรงทุกอย่างใน / var / * และ / opt / * บนพาร์ติชั่นแยก! การวางหลักเกณฑ์ทั่วไปที่ดีที่สุดที่ฉันสามารถตอบคำถามของคุณได้คือไม่มีสิ่งใดในโลกยูนิกซ์ที่ทำได้โดยไม่ต้องแจ้งให้ผู้ใช้ทราบหรือความสามารถในการเปลี่ยนแปลง !
  2. คุณสามารถเมานต์สิ่งที่ไม่ใช่พาร์ติชัน ตัวอย่างเช่น / proc ไม่ใช่พาร์ติชัน แต่เป็นระบบไฟล์หลอกที่เคอร์เนลให้คุณอ่านและเขียนข้อมูลเกี่ยวกับกระบวนการทำงานราวกับว่าเป็นไฟล์ นอกจากนี้คุณยังสามารถเมานท์ไฟล์ (เช่นเดียวกับ ISO) ราวกับว่าพวกเขาเป็นไดรฟ์ที่ใช้อุปกรณ์ลูปแบ็คผูกโฟลเดอร์เมานท์ไปยังที่อื่นและทำเล่ห์กลนินจาอื่น ๆ

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