เป็นไปได้หรือไม่ที่รูทและโฮมพาร์ติชั่นมีระบบไฟล์ที่แตกต่างกันและอยู่บนอุปกรณ์ฟิสิคัล seprate?


10

ลองนึกภาพฉันจัดรูปแบบรูทด้วยระบบไฟล์ ext3 บนพาร์ติชั่นแยกต่างหากที่เกิดขึ้นบน SATA HDD และโฮมไดเร็กตอรี่บนพาร์ติชั่น btrfs อื่นที่มีอยู่ใน Intel SSD

ฉันดาวน์โหลดไฟล์จากอินเทอร์เน็ตและบันทึกไว้ชั่วคราว/tmp(ในระบบไฟล์รูท) จากนั้นฉันตัดสินใจย้ายไฟล์ไปยังโฮมไดเร็กตอรี่ของฉัน (พาร์ติชั่นที่สอง)

ฉันสามารถรู้สึกถึงกระบวนการที่เจ็บปวดที่เกิดขึ้นในเบื้องหลังเพื่อให้mvงานคำสั่งง่าย ๆทำงานได้

ดังนั้นก่อนอื่นเป็นไปได้ไหมที่รูทและโฮมมีระบบไฟล์ต่างกัน? ประการที่สองสมมติว่าคำตอบสำหรับคำถามก่อนหน้าคือ "ใช่" ระบบปฏิบัติการจะจัดการการเปลี่ยนแปลงทั้งหมดจากext3ไปเป็นอย่างไรbtrfsแล้วใช้ไดรเวอร์อุปกรณ์ที่แตกต่างกันสำหรับประเภทดิสก์ที่แตกต่างกัน (HDD และ SSD)


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

@Sawdust นั่นเป็นสิ่งที่น่าสนใจมาก ๆ ที่คุณชี้ไปคือชั้นของระบบไฟล์และเลเยอร์อุปกรณ์บล็อก พวกเขาเกี่ยวข้องกันอย่างไร การอ่านใด ๆ จะเป็นประโยชน์
Karim Manaouil

ไม่ทราบว่ามากเกี่ยวกับระบบไฟล์ แต่ผมถือว่ากระบวนการจะไม่ได้แตกต่างไปจากการคัดลอกไฟล์ไปยังไดรฟ์ภายนอก FAT32
เบลน


ทำไมคุณยังคงใช้ ext3 ในปี 2560 เมื่อมันง่ายต่อการอัพเกรดเป็น ext4
David Foerster

คำตอบ:


25

คำตอบคือใช่คุณสามารถมีไดเรกทอรีใด ๆ บนอุปกรณ์ใดก็ได้โดยใช้ระบบไฟล์ใดก็ได้ที่ระบบปฏิบัติการรองรับ

ดังนั้นคุณสามารถมี/ /var /home /optและแม้กระทั่ง/home/afr0ckบนอุปกรณ์ต่าง ๆ พาร์ติชันต่าง ๆ ระบบไฟล์ที่แตกต่างกัน

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

และคุณอาจต้องการให้ไดเรคทอรีต่าง ๆ ทำงานบนอุปกรณ์ที่แตกต่างกันด้วยเหตุผลด้านความเร็ว และใช้ระบบไฟล์ที่แตกต่างกันเพื่อวัตถุประสงค์ที่แตกต่างกัน ตัวอย่างเช่น ext4 อาจเป็นสิ่งที่คุณต้องการสำหรับไฟล์ OS เนื่องจากมันไม่เปลี่ยนแปลงมากนัก แต่คุณอาจต้องการ btrfs สำหรับ / home เพื่อให้คุณสามารถเก็บสแน็ปช็อตสำหรับการสำรองข้อมูลได้ นี่คือการตัดสินใจทั้งหมดที่แต่ละคนสามารถทำได้สำหรับการใช้งานเฉพาะกรณี

ส่วนพื้นที่ผู้ใช้ของระบบปฏิบัติการไม่จำเป็นต้องเข้าใจอุปกรณ์และระบบไฟล์ประเภทต่าง ๆ ทุกอย่างมันจะขอให้เคอร์เนลย้ายไฟล์และเคอร์เนลจัดการทุกอย่างจากที่นั่น ดังนั้นmvคำสั่ง (ตัวอย่าง) คือระบบไฟล์และประเภทอุปกรณ์ไม่เชื่อเรื่องพระเจ้า เคอร์เนลจะเรียกใช้ไดรเวอร์ใดก็ตามที่จำเป็นในการอ่านและเขียนไปยังพาร์ติชันต่าง ๆ


7
มีประโยชน์ที่จะชี้ให้เห็นว่าmv(1)พยายามครั้งแรกกับrename(2)ไฟล์ จากนั้นจะกลับไปคัดลอกและลบ ดังนั้นการพยายามที่จะเปลี่ยนชื่อเป็นวิธีการmvคิดออกว่าเป็นไปได้ในลักษณะที่ไม่เชื่อเรื่องพระเจ้า FS ( rename(2)ล้มเหลวเสมอเมื่อย้ายระหว่างอุปกรณ์ต่าง ๆ ไม่ว่าจะใช้ไดรเวอร์ระบบไฟล์เดียวกันหรือไม่ @ afr0k)
Peter Cordes

1
@PeterCordes huh ฉันไม่ทราบว่าการเปลี่ยนชื่อเป็นสิ่งที่ ฉันมักจะใช้ mv เพื่อเปลี่ยนชื่อสิ่งต่าง ๆ

5
@stanri: mvไม่แยก / exec rename(1)คำสั่งก็แค่พยายามrename(2)เรียกระบบ ไม่มีrenameคำสั่งเชลล์มาตรฐาน ในบางระบบมันเป็นคำสั่งการเปลี่ยนชื่อไฟล์หลายไฟล์ทดแทนจาก util-linux ฉันไม่ได้พูดถึงคำสั่งเชลล์เพียงวิธีการmvทำงานภายใน
Peter Cordes

แม้ / usr อาจอยู่ในพาร์ติชันที่แตกต่างกันนั่นคือเหตุผลที่บางสิ่งที่สำคัญจริง ๆ อยู่ใน / bin / lib และ / sbin - ว่าตัวติดตั้งทั้งหมดจะสนับสนุนมันเป็นเรื่องอื่น
rackandboneman

7

ใช่ระบบไฟล์แยกต่างหาก (จุดเชื่อมต่อ) สามารถเป็นประเภทระบบไฟล์ที่แตกต่างกัน  /procมักจะเป็นprocfsระบบแฟ้มและเป็นเสมอ/sys sysfsระบบไฟล์ชั่วคราว (บางครั้งรวมถึง/tmp) มักจะtmpfsและในการตั้งค่าเวิร์กกรุ๊ปมันเป็นเรื่องธรรมดาสำหรับโฮมไดเรกทอรีของผู้ใช้ (และไดเรกทอรีผลิตภัณฑ์ทำงานของพวกเขา) เป็นnfsประเภทระบบไฟล์ระยะไกล (เครือข่าย / ที่ใช้ร่วมกัน)

ไม่มีการจัดการพิเศษใด ๆ สำหรับระบบปฏิบัติการที่ต้องทำ ในระดับผู้ใช้ระบบไฟล์ทั้งหมดมีลักษณะเหมือนกันในแง่ที่ว่าlsรายชื่อจะมีลักษณะเหมือนกันในไดเรกทอรีใด ๆ นอกเหนือจากจุดนั้นระบบไฟล์จะไม่โต้ตอบ แม้ระหว่างสองระบบไฟล์ (พาร์ทิชัน) บนดิสก์ทางกายภาพเดียวกันของชนิดของระบบแฟ้มเดียวกันไม่มีการเชื่อมโยง1 ตัวอย่างเช่นการย้ายไฟล์จากระบบไฟล์หนึ่ง (จุดเมานท์) ไปยังอีกระบบหนึ่งเกี่ยวข้องกับการทำสำเนาและลบต้นฉบับเสมอ ไม่สำคัญว่าพาร์ติชั่นจะอยู่ในดิสก์ที่แตกต่างกันหรือไม่ ไม่สำคัญว่าหนึ่งในนั้นคือ HDD และอีกอันคือ SSD ไม่สำคัญว่าจะมีext3ใครและเป็นใครbtrfs. ไม่สำคัญว่าจะมีใครอยู่ภายใน (ภายในเคสคอมพิวเตอร์) และอีกอันคือภายนอก (ไม่กี่นิ้วข้างนอกเชื่อมต่อด้วยสายเคเบิล) - หรือระยะไกล (เข้าถึงได้ผ่านเครือข่าย)

sshการพูดของเครือข่ายก็เป็นเพียงเล็กน้อยที่จะคล้ายคลึง มันอ่านจากแป้นพิมพ์และส่งอักขระที่คุณพิมพ์ไปยังเครือข่าย ในขณะเดียวกันก็อ่านจากเครือข่ายและแสดงผลลัพธ์บนหน้าจอ

หรือลองพิจารณาสิ่งนี้: จินตนาการว่าคุณใช้โทรศัพท์และเป็นสื่อกลางในการสนทนาระหว่างคนที่ใช้โทรศัพท์อีกเครื่องกับอีกคนในห้อง มันไม่ใช่เรื่องใหญ่.
________
1ยกเว้นลิงก์สัญลักษณ์ - แต่สามารถข้ามขอบเขตของระบบไฟล์ได้


1
ฉันเห็นด้วยกับคำตอบของคุณเป็นส่วนใหญ่ แต่มันไม่ธรรมดาสำหรับ / tmp ที่จะเป็น tmpfs (แม้ว่าอาจจะเป็นแบบนั้นใน distros) - โดยปกติแล้วจะปิดรูทพาร์ติชันและทำความสะอาดตอนบู๊ต อูบุนตูและ Redhat ประเภท distros ใช้ / dev / shm เป็น tmpfs,
davidgo

ฉันสับสน. ฉันได้อัพเดตคำตอบแล้ว
G-Man กล่าวว่า 'Reinstate Monica'

1
@davidgo: Linux distros ใดที่ไม่ได้ตั้ง/tmpไว้ที่ tmpfs? ฉันยังคิดว่ามันเป็นวิธีการมาตรฐานที่ค่อนข้างสวยเพราะคุณสามารถใส่ของได้ทุกอย่าง/var/tmp(แม้ว่ามันจะไม่ได้ทำความสะอาดตอนบูต) ฉันไม่ใช่ผู้เชี่ยวชาญเกี่ยวกับค่าปริยายของการข้ามประเทศเพียง Debian / Ubuntu และ Arch ด้วยบรรดาบวก RedHat ที่ครอบคลุมส่วนใหญ่ของระบบลินุกซ์ที่ติดตั้งออกมี (แต่ไม่ใหญ่เศษใหญ่ของ distros ทั้งหมด)
Peter Cordes

(ไม่สนใจระบบฝังตัว) ฉันใช้ Centos และ Ubuntu เป็นประจำเท่านั้น - ทั้งคู่ใช้ดิสก์สำหรับ / tmp - ฉันค่อนข้างแน่ใจว่านี่หมายถึง Debian, Redhat และ Mint จะเป็นไปตามแบบแผนเดียวกัน อุปกรณ์ Android ของฉันไม่มี / tmp
davidgo

2
@PeterCordes การเพิ่มขึ้นของtmpfsLinux เป็นเพียงล่าสุดเมื่อ 5-7 ปีที่ผ่านมาหรือดังนั้น เช่น Fedora กำลังพูดถึงการเปลี่ยนแปลงในวิกิของพวกเขา ~ 2012 และฉันเชื่อว่ามันถูกนำมาใช้ใน Debian Wheezy
Bob
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.