Tại sao lát C hoặc lát 2 che toàn bộ đĩa


14

Một cái gì đó mà tôi đã thảo luận với một vài người bạn và chúng tôi không thể tìm ra nó. Trong FreeBSD và OpenSolaris / Solaris khi bạn phân vùng ổ đĩa, một phân vùng được tạo bao gồm toàn bộ đĩa:

da0s1c
c0d0s2

Ví dụ: đầu ra của ổ cứng chính trong máy chủ OpenSolaris của tôi:

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

Lý do đằng sau sử dụng phân vùng 2 là gì? Tại sao không phân vùng 0? Trường hợp trong lịch sử của unix đã được quyết định này? Tính năng di sản nào đã phục vụ tại thời điểm đó? Với phân vùng GPT hoàn toàn biến mất (từ những gì tôi đã tìm thấy).

Chỉ là một cái gì đó thú vị ...

Do ParoX đã đề cập đến phân vùng kiểu GPT và cách Solaris thể hiện rằng về mặt bố trí vtoc, đây là đầu ra từ một trong các đĩa của tôi là 1 TB và nằm trong mảng ZFS và đã tự động được thiết lập với 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

Chưa bao giờ thực sự nghĩ về nó nhiều như vậy, nhưng thật thú vị khi bạn khiến tôi nghĩ về nó. Tò mò muốn xem có ai trả lời không.
Milner

hừm Tôi biết trong Solaris nó được gọi là lát cắt "dự phòng". Tôi tự hỏi nếu đó là một cách để sao lưu toàn bộ đĩa, bao gồm cả bản đồ phân vùng, trong một bãi chứa? Giống như, kết xuất / dev / rdsk / c0t0d0s2 vào một tệp băng và bạn có thể khôi phục toàn bộ ổ đĩa vật lý, bao gồm cả bố cục FS, trong một lần khôi phục không? Chỉ là một phỏng đoán. Không thể tìm thấy gì thêm trong google. Câu hỏi hay!
jj33

@ jj33: Chắc chắn, mua tại sao lát 2 ? Tại sao không 0 hoặc -1 hoặc một số giá trị đặc biệt khác?
Eddie

Câu trả lời:


7

Quay lại thời xưa, chúng tôi sẽ thực hiện sao lưu bằng "dd" của toàn bộ đĩa. Do đó, chúng tôi đã có lát "c" để có thể thực hiện tất cả chỉ với một lệnh.

Đó là lý do tại sao lát "c" tồn tại.

DD không hoàn hảo. Nếu một đĩa chỉ đầy 10%, bạn dành 90% thời gian để sao chép các khối "rác" hoặc (ví dụ) được sử dụng để "trao đổi" (vô dụng để sao lưu). "Dd" là một sự lãng phí thời gian trừ khi đĩa của bạn gần đầy hoặc nếu vì một lý do nào đó, bạn cần một bản sao chính xác, từng khối, sao chép.

Đây là tất cả trước khi trình quản lý ổ đĩa và nhân bản đĩa RAID-0 thực hiện tất cả các kiểu sao chép phân vùng đó cho bạn.

(Ai đó đã đề cập đến "dump" trên lát cắt "c". Điều đó sẽ không hoạt động. "Dump" là một bản sao từng tệp [thực sự, inode bằng inode] để nó không hoạt động.)

Một số người khác hỏi "tại sao lại là c, không phải phân vùng đầu tiên hay cuối cùng". Câu trả lời là "truyền thống". Tôi chỉ có thể đoán rằng Ken hoặc Dennis (hoặc có thể là Bill Joy hoặc Kirk McKusick) có lý do chính đáng vào thời điểm đó. Tôi giả sử họ đã sử dụng hai nhãn phân vùng đầu tiên cho các phân vùng thực tế. Sau đó, một ngày nọ ai đó có ý tưởng về phân vùng chồng chéo để thực hiện sao lưu và "c" là phân vùng tiếp theo có sẵn. Vì chỉ có 2-3 máy Unix vào thời điểm đó, nên việc này hai lần có thể "thiết lập tiêu chuẩn" được sử dụng trong thời gian còn lại.

Một ví dụ khác về cách các tai nạn lịch sử trở thành tiêu chuẩn không bao giờ xảy ra được mô tả trong bài viết này: Hiểu về bin, sbin, usr / bin, usr / sbin split


Có, nhưng tại sao c chứ không phải a ?
Cristian Ciupitu

1
Tại sao bức thư đó được chọn? Tôi không biết. Ritchie, Thompson, hoặc có lẽ Bill Joy có thể trả lời điều đó. Tôi đoán là họ đã sử dụng 0, rồi 1, sau đó ai đó có ý tưởng tuyệt vời này về nhãn phân vùng chồng chéo. Các khe tiếp theo đã có sẵn và an toàn hơn nhiều so với việc di chuyển các phân vùng xung quanh. Hãy nhớ rằng ... đây là khi toàn bộ trường đại học có 1 hoặc 2 máy tính. Bạn đã thay đổi hệ thống lớn hiếm khi. Nó không giống như ngày nay nếu bạn thực hiện một thay đổi như thế này, bạn sẽ tự do tưởng tượng lại máy móc của mình. Với 50 người chia sẻ tất cả một máy tính, việc nâng cấp sẽ đợi cho đến khi mọi người sẵn sàng.
TomOnTime

4

Đó là kết quả của các lát cắt truyền thống được đặt ra như sau:

s0: gốc
s1: hoán đổi
s2: bkup

Họ đã gán điều quan trọng nhất cho lát đầu tiên và tiếp tục với mức độ quan trọng giảm dần :) (Ai cần trao đổi nếu bạn không có phân vùng gốc? Hơn nữa, ai cần sao lưu mọi thứ nếu bạn không có dữ liệu.)

Tôi không biết chính xác khi nào thì điều này được quyết định (có lẽ khá sớm; bất cứ khi nào các nhà phát triển Solaris quyết định sử dụng các số nhận dạng và lát đĩa theo kiểu Solaris.)

Vấn đề không còn xảy ra với GPT do sơ đồ phân vùng kiểu MBR không áp dụng được. (Mặc dù cá nhân tôi không quen với cách Solaris đại diện cho các phân vùng GPT ...)

Hy vọng điều này đã giúp XD


================
Chỉnh sửa:
Bây giờ bạn đã khiến tôi quan tâm. Tôi sẽ đăng một vài liên kết tôi tìm thấy ngay trước khi tôi bắt đầu làm việc.

Solaris 2.4 Sách trả lời Sysadmin: Các lát cắt thông thường
Hướng dẫn sử dụng Solaris 2.4: Quản trị ngoại vi

Cả hai tài liệu này đều vào khoảng năm 1994 và họ xác định việc tạo s2 là được tích hợp vào 'định dạng' ngay cả sau đó. Hãy tiếp tục đào XD!


Nó giúp, nhưng vẫn không phải là câu trả lời cụ thể mà tôi đang tìm kiếm :-) Tôi đã biết lý do có thể là tại sao và bố cục lát mặc định. Tôi muốn bằng chứng vững chắc hoặc bằng chứng!
X-Istence

Hạnh phúc khi kéo người khác vào cơn điên đó là câu hỏi này :-).
X-Istence

Ok ... Khái niệm về các lát dường như bắt nguồn từ đâu đó xung quanh các bản phát hành BSD 4.2 và Unix System V.4 (1984-1989) ... Thời gian để truy cập thư viện>. <(Không có nhiều ghi nhật ký trên internet tại thời điểm đó vì lý do rõ ràng.)
ParoX

docsrv.sco.com/cgi-bin/man/man?vtoc+7 Rõ ràng UnixWare sử dụng s0 làm toàn bộ phân vùng với s1 và s2 làm gốc và hoán đổi tương ứng. Thú vị ...
ParoX

1
Tôi đang thu hẹp điều này xuống để giới thiệu UFS vào năm 1982 trong cây BSD. Bây giờ tôi khá tự tin rằng SVR đã mượn khái niệm từ BSD trong Bản phát hành 4.2 (sau khi lục lọi hàng tấn tài liệu tham khảo của lập trình viên cũ.) Tôi sẽ quay lại thư viện vào ngày mai lol
ParoX

1

Thông tin thêm về câu hỏi này:

Theo http://en.wikipedia.org/wiki/BSD_disklabel trên FreeBSD, phân vùng c trên đĩa cũng được các hệ điều hành khác sử dụng sẽ chỉ mở rộng trên toàn bộ lát FreeBSD và phân vùng d sẽ là toàn bộ ổ cứng !

Phân vùng c xử lý toàn bộ đĩa ở chế độ dành riêng hoặc toàn bộ lát FreeBSD ở chế độ lát. Các phân vùng khác là để sử dụng chung.

Đĩa thủ công FreeBSD Thêm xem 18.3.1 số 3.


0

Tại sao scsi id 3 đĩa khởi động mặc định của bạn trong hệ điều hành Sun cổ điển?

Tất cả những khoảnh khắc đó sẽ bị mất theo thời gian, như nước mắt trong mưa.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.