เหตุใด Slice C หรือ slice 2 จึงครอบคลุมทั้งแผ่น


14

สิ่งที่ฉันพูดคุยกับเพื่อนสองคนและเราไม่สามารถเข้าใจได้ ใน FreeBSD และ OpenSolaris / Solaris เมื่อคุณแบ่งพาร์ติชันไดรฟ์จะมีการสร้างพาร์ติชันที่ครอบคลุมทั้งดิสก์:

da0s1c
c0d0s2

ตัวอย่างเช่นผลลัพธ์ของฮาร์ดไดรฟ์หลักของฉันในเซิร์ฟเวอร์ OpenSolaris ของฉัน:

xistence@Keyhole.network.lan:/dev/rdsk# prtvtoc /dev/rdsk/c4d0s2
* /dev/rdsk/c4d0s2 partition map
*
* Dimensions:
*     512 bytes/sector
*      63 sectors/track
*     255 tracks/cylinder
*   16065 sectors/cylinder
*    7296 cylinders
*    7294 accessible cylinders
*
* Flags:
*   1: unmountable
*  10: read-only
*
* Unallocated space:
*       First     Sector    Last
*       Sector     Count    Sector 
*           0     16065     16064
*
*                          First     Sector    Last
* Partition  Tag  Flags    Sector     Count    Sector  Mount Directory
       0      2    00      16065 117145980 117162044
       2      5    01          0 117178110 117178109
       8      1    01          0     16065     16064

เหตุผลเบื้องหลังการใช้พาร์ติชัน 2 คืออะไร ทำไมไม่แบ่งพาร์ติชัน 0 การตัดสินใจครั้งนี้เกิดขึ้นที่ไหนในประวัติศาสตร์ของยูนิกซ์ คุณลักษณะดั้งเดิมใดที่ให้บริการ ณ เวลานั้น ด้วยการแบ่ง GPT ที่หายไปทั้งหมด (จากสิ่งที่ฉันได้พบ)

สิ่งที่น่าสนใจ ...

เนื่องจากParoXพูดถึงการแบ่งลักษณะ GPT และวิธีที่ Solaris แสดงให้เห็นว่าในแง่ของรูปแบบ vtoc นี่คือผลลัพธ์จากหนึ่งในดิสก์ของฉันที่ 1 TB และอยู่ในอาร์เรย์ ZFS และตั้งค่าโดยอัตโนมัติด้วย GPT:

xistence@Keyhole.network.lan:~# prtvtoc /dev/rdsk/c5d0
* /dev/rdsk/c5d0 partition map
*
* Dimensions:
*     512 bytes/sector
* 1953520128 sectors
* 1953520061 accessible sectors
*
* Flags:
*   1: unmountable
*  10: read-only
*
* Unallocated space:
*       First     Sector    Last
*       Sector     Count    Sector 
*          34       222       255
*
*                          First     Sector    Last
* Partition  Tag  Flags    Sector     Count    Sector  Mount Directory
       0      4    00        256 1953503455 1953503710
       8     11    00  1953503711     16384 1953520094

ไม่เคยคิดมากเกี่ยวกับมันมากนัก แต่ตอนนี้มันน่าสนใจมากที่คุณทำให้ฉันคิดถึงมัน อยากรู้ว่าใครตอบ
Milner

อืมม ฉันรู้ใน Solaris มันถูกเรียกว่าชิ้น "สำรอง" ฉันสงสัยว่ามันเป็นวิธีการสำรองดิสก์ทั้งหมดรวมถึงแผนที่พาร์ทิชันในการถ่ายโอนข้อมูลเดียวหรือไม่ เช่นเดียวกับการถ่ายโอนข้อมูล / dev / rdsk / c0t0d0s2 ไปยังไฟล์เทปและคุณสามารถกู้คืนฟิสิคัลไดรฟ์ทั้งหมดรวมถึงรูปแบบ FS ในการกู้คืนเดียวหรือไม่ เพียงแค่เดา ไม่พบอะไรเพิ่มเติมใน google คำถามที่ดี!
jj33

@ jj33: แน่นอนว่าทำไมซื้อชิ้นที่ 2 ? ทำไมไม่ 0 หรือ -1 หรือค่าที่โดดเด่นอื่น ๆ ?
Eddie

คำตอบ:


7

ย้อนกลับไปในสมัยก่อนเราจะทำการสำรองข้อมูลโดยใช้ "dd" ของดิสก์ทั้งหมด ดังนั้นเราจึงมี "c" ชิ้นเพื่อให้เราสามารถทำได้ทั้งหมดด้วยคำสั่งเดียว

นั่นเป็นเหตุผลที่ชิ้น "c" มีอยู่

DD ไม่สมบูรณ์แบบ หากดิสก์เต็มเพียง 10% คุณใช้ 90% ของเวลาการคัดลอกบล็อกที่เป็น "ขยะ" หรือ (ตัวอย่างเช่น) ใช้สำหรับ "swap" (ไม่มีประโยชน์ในการสำรองข้อมูล) "dd" เสียเวลานอกเสียจากว่าดิสก์ของคุณจะเกือบเต็มหรือหากมีเหตุผลบางประการคุณจำเป็นต้องคัดลอกบล็อกทีละบล็อก

นี่คือทั้งหมดก่อนการทำมิร์เรอร์ดิสก์ RAID-0 และตัวจัดการโวลุ่มทำให้พาร์ติชันนั้นคัดลอกมาให้คุณ

(มีคนพูดถึง "การถ่ายโอนข้อมูล" บนชิ้น "c" ที่ใช้งานไม่ได้ "การถ่ายโอนข้อมูล" เป็นสำเนาไฟล์แบบไฟล์ต่อไฟล์ [จริง ๆ แล้ว inode by inode] เพื่อไม่ทำงาน)

มีคนถามว่า "ทำไมจึงเป็น c ไม่ใช่พาร์ติชันแรกหรือสุดท้าย" คำตอบคือ "ประเพณี" ฉันเดาได้แค่ว่าเคนหรือเดนนิส (หรืออาจจะเป็นบิลจอยหรือเคิร์ก McKusick) มีเหตุผลที่ดีในเวลานั้น ฉันคิดว่าพวกเขาใช้สองป้ายชื่อพาร์ติชันแรกสำหรับพาร์ติชันที่แท้จริง แล้ววันหนึ่งมีคนมีความคิดเกี่ยวกับพาร์ติชันที่ทับซ้อนกันมากสำหรับการสำรองข้อมูลและ "c" เป็นพาร์ติชันถัดไปที่มีอยู่ เนื่องจากมีเพียงเครื่องยูนิกซ์เพียง 2-3 เครื่องเท่านั้นการทำแบบนี้สองครั้งจึงสามารถ "กำหนดมาตรฐาน" ที่ใช้งานได้ตลอดเวลา

อีกตัวอย่างหนึ่งของการอธิบายอุบัติเหตุในอดีตกลายเป็นมาตรฐานที่ไม่เคยเกิดขึ้นในบทความนี้: การทำความเข้าใจกับการแยก bin, sbin, usr / bin, usr / sbin split


ใช่ แต่ทำไมและไม่?
Cristian Ciupitu

1
เหตุใดจึงเลือกจดหมาย ฉันไม่รู้ ทั้ง Ritchie, Thompson หรือ Bill Joy ก็สามารถตอบได้ ฉันเดาว่าพวกเขาใช้ 0 แล้ว 1 แล้วใครบางคนมีความคิดที่ยอดเยี่ยมของฉลากพาร์ทิชันที่ทับซ้อนกัน สล็อตถัดไปพร้อมใช้งานและปลอดภัยกว่าการเคลื่อนย้ายพาร์ติชั่นไปรอบ ๆ จำไว้ว่า ... นี่คือเมื่อทั้งมหาวิทยาลัยมีคอมพิวเตอร์ 1 หรือ 2 เครื่อง คุณทำการเปลี่ยนแปลงระบบที่สำคัญได้ยาก มันไม่เหมือนวันนี้ถ้าคุณทำการเปลี่ยนแปลงเช่นนี้คุณจะนึกภาพเครื่องจักรของคุณใหม่ได้อย่างอิสระ ด้วย 50 คนทุกคนใช้คอมพิวเตอร์ร่วมกันอัปเกรดรอจนกว่าทุกคนจะพร้อม
TomOnTime

4

มันเป็นผลมาจากชิ้นส่วนที่ถูกวางแบบดั้งเดิมดังนี้:

s0: รูต
s1: swap
s2: bkup

พวกเขากำหนดสิ่งที่สำคัญที่สุดให้กับชิ้นแรกและลดความสำคัญลงอย่างต่อเนื่อง :) (ใครต้องการสลับถ้าคุณไม่มีพาร์ติชั่นรูท? นอกจากนี้ใครต้องการสำรองข้อมูลใด ๆ

ฉันไม่รู้ว่าจะตัดสินใจเมื่อไหร่ (อาจจะค่อนข้างเร็วในทุกครั้งที่ Solaris devs ตัดสินใจใช้ตัวระบุดิสก์และตัวแบ่งลักษณะของ Solaris)

ปัญหาหายไปกับ GPT เนื่องจากชุดรูปแบบลักษณะ MBR ไม่สามารถใช้ได้ (แม้ว่าฉันเองไม่คุ้นเคยกับวิธีที่ Solaris แสดงถึงพาร์ติชัน GPT ... )

หวังว่านี่จะช่วย XD


================
แก้ไข:
ตอนนี้คุณสนใจฉันแล้ว ฉันจะโพสต์ลิงก์ที่ฉันพบก่อนที่จะออกไปทำงาน

Solaris 2.4 Sysadmin หนังสือคำตอบ: จารีตประเพณีชิ้น
Solaris 2.4 คู่มือผู้ใช้: การดูแลอุปกรณ์ต่อพ่วง

เอกสารทั้งสองนี้มีประมาณปี 1994 และพวกเขากำหนดการสร้าง s2 ซึ่งรวมอยู่ใน 'รูปแบบ' แม้ในตอนนั้น ต้องขุด XD ต่อไป!


มันช่วยได้ แต่ยังไม่ใช่คำตอบที่เป็นรูปธรรมที่ฉันกำลังมองหา :-) ฉันรู้แล้วว่ามีสาเหตุที่เป็นไปได้ว่าทำไมและโครงร่างชิ้นเริ่มต้น ฉันต้องการหลักฐานที่มั่นคงหรือหลักฐาน!
X-Istence

มีความสุขที่ได้ลากคนอื่นไปสู่ความบ้าคลั่งนั่นคือคำถามนี้ :-)
X-Istence

ตกลง ... แนวคิดของสไลซ์นั้นมีต้นกำเนิดมาจากการเผยแพร่ของ BSD 4.2 และ Unix System V.4 (1984-1989) ... เวลาที่จะโจมตีห้องสมุด> <(ไม่มีการบันทึกทางอินเทอร์เน็ตมากนัก ในเวลาสำหรับเหตุผลที่เห็นได้ชัดว่า).
ParoX

docsrv.sco.com/cgi-bin/man/man?vtoc+7 Apparently UnixWare ใช้ s0 เป็นพาร์ติชันทั้งหมดที่มี s1 และ s2 เป็น root และ swap ตามลำดับ น่าสนใจ ...
ParoX

1
ฉัน จำกัด สิ่งนี้ลงเพื่อแนะนำ UFS ในปี 1982 ในแผนผัง BSD ตอนนี้ฉันค่อนข้างมั่นใจว่า SVR ยืมแนวคิดจาก BSD ใน 4.2 Release (หลังจากการค้นหาผ่านการอ้างอิงของโปรแกรมเมอร์เก่า) ฉันจะเข้าห้องสมุดอีกครั้งพรุ่งนี้พรุ่งนี้
ParoX

1

ข้อมูลเพิ่มเติมเกี่ยวกับคำถามนี้:

อ้างอิงจากhttp://en.wikipedia.org/wiki/BSD_disklabelบน FreeBSD พาร์ติชั่น c บนดิสก์ที่ใช้งานโดยระบบปฏิบัติการอื่นจะขยายไปยังชิ้น FreeBSD ทั้งหมดเท่านั้นและพาร์ติชัน d จะเป็นฮาร์ดไดรฟ์ทั้งหมด !

พาร์ติชัน c ระบุดิสก์ทั้งหมดในโหมดเฉพาะหรือชิ้น FreeBSD ทั้งหมดในโหมดสไลซ์ พาร์ทิชันอื่น ๆ สำหรับการใช้งานทั่วไป

การเพิ่มดิสก์ด้วยตนเอง FreeBSDดูที่ 18.3.1 หมายเลข 3


0

เหตุใด scsi id 3 ดิสก์สำหรับเริ่มต้นของคุณใน vintage Sun OS

ช่วงเวลาเหล่านั้นทั้งหมดจะหายไปในเวลาเช่นน้ำตาในสายฝน

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