2012-05-09 43 views
6

Tôi đã đọc partedman page nhưng dường như không tìm thấy bất kỳ tài liệu nào về thông số hợp lệ. Tôi đang cố gắng để phân vùng một CompactFlash USB với kích thước phân vùng cụ thể (bất kể kích thước CF). Nhưng tôi muốn chắc chắn rằng sự liên kết của tôi là hoàn toàn chính xác và tối ưu.Đối số hợp lệ cho parted

Ví dụ, khi tôi sử dụng các lệnh sau:

parted -s -a optimal $DEV mkpart primary ext3 1 1600 
parted -s -a optimal $DEV mkpart primary ext3 1600 3200 
parted -s -a optimal $DEV mkpart primary ext3 3200 3600 

Nó không rõ ràng nếu bắt đầu phân vùng đầu tiên nên có 1 hoặc 0? Các gợi ý duy nhất mà tôi nhận được rằng nó nên bắt đầu với 1 chứ không phải là một số không là khi tôi chạy:

parted /dev/sdc align-check optimal 1 

nào nói với tôi nó được liên kết khi bắt đầu với 1 và không phù hợp khi bắt đầu với 0. Nhưng khi tôi bắt đầu với 1 và tôi làm 'in', bắt đầu là 1049kB ... điều này có bình thường không? Khi tôi đổ phân vùng in đã được tạo bởi các công cụ khác, tôi thấy rằng chúng bắt đầu ở 32kB. Nếu tôi sử dụng bắt đầu bằng 0, nó sẽ bắt đầu với tốc độ 512kB. Đó là chính xác, tôi không biết! Ngoài ra, tôi đã thấy nhiều ví dụ trên tất cả mọi người sử dụng giá trị bắt đầu của chúng cho phân vùng thứ hai và thứ ba là giá trị kết thúc của phân vùng trước nó (ví dụ: 1600 và 3200 giá trị). Chúng ta có giả sử có một chồng chéo hoặc tăng thêm 1? Các trang người đàn ông không nói gì về điều này. Và tôi đã nhìn thấy một số trang web nơi họ nói rằng lỗi của nó bắt đầu có cùng giá trị của kết thúc cuối cùng.

Khi tôi sử dụng 'tối ưu', điều này dường như không ảnh hưởng đến phân vùng của tôi. Không sử dụng cờ liên kết dường như tạo ra cùng một kết quả. Mục đích là gì? Có cái gì tôi đang mất tích?

Tôi thực sự muốn chia tay sẽ thông minh hơn rất nhiều và không yêu cầu bắt đầu, nhưng thay vào đó có thể suy ra chính nó. Trên thực tế nhiều người dường như cần tính năng chính xác này, vì vậy tôi không phải là quả bóng lẻ duy nhất với nhu cầu này. Hy vọng rằng một số geek ra có sẽ thấy nhu cầu này và thực sự thêm nó như là một tính năng.

Lưu ý rằng tôi đang sử dụng một phần trong tập lệnh tạo tự động, đó là lý do tại sao tôi sử dụng cờ '-s'.

Nếu bất cứ ai có thể khai sáng cho tôi về điều này, tôi sẽ đánh giá cao điều đó ... cảm ơn trước!

+0

Câu hỏi này sẽ phù hợp trên trang web superuser StackExchange. – BeowulfNode42

Trả lời

17

Tôi nghĩ bạn đã thực hiện một vài câu hỏi thú vị ngay tại đây, điều đáng tiếc không ai trả lời chúng trước đây, vì vậy tôi sẽ cố gắng thực hiện.


It's not clear if the first partition start should be 1 or 0?

Sự bắt đầu phân vùng đầu tiên phải là 1, bởi vì các byte đầu tiên của một đĩa chứa Master Boot Record và cấu trúc của một số nhãn đĩa, chẳng hạn như MS-DOS. Vì vậy, nếu bạn sử dụng giá trị 0 làm khởi đầu phân vùng đầu tiên, libparted sẽ để lại một vài byte ở đầu đĩa để cho phép nội dung này, đặt sự khởi đầu của phân vùng ngay sau phần đầu tiên.


the start is at 1049kB... is this normal?

Đó là bình thường. Để giải thích điều này, trước tiên bạn phải biết rằng, đối với libparted, một kilobyte không bằng 1024 byte, thay vào đó, bằng 1000 byte.

KB = kilobyte = 1000Bytes
KiB = KibiByte = 1024Bytes

Thông tin thêm:
http://en.wikipedia.org/wiki/Kilobyte
http://www.gnu.org/software/parted/manual/html_node/unit.html

Các phân vùng bù đắp là trong KB (kilobyte) và giá trị của nó là một xấp xỉ , nếu bạn thay đổi đơn vị thành byte:

parted /dev/sdf unit b print 

bạn sẽ thấy giá trị thực: 1048576B đây là, 1MiB (1048576B ~ = 1049KB), chính xác những gì bạn muốn.


I see that they start at 32kB

Vâng, phân vùng khởi điểm 32KB vì công cụ mà bạn đang sử dụng có lẽ là quá cũ, và bạn đang sử dụng một đĩa với 512-byte kích thước khu vực. Giá trị bắt đầu thực tế của phân vùng có thể là 32256 tương ứng với sector 63. Nhiều năm trước, các công cụ phân vùng đặt sự khởi đầu của phân vùng đầu tiên tại khu vực thứ 63, để căn chỉnh nó thành hình học CHS cũ. Đây là quá dài để giải thích, nhưng tôi khuyên bạn nên đọc liên kết này để biết thông tin chi tiết hơn:

https://superuser.com/questions/352572/why-does-the-partition-start-on-sector-2048-instead-of-63 http://lwn.net/Articles/377895/


If I use a start of 0, it prints a start of 512kB

Tôi nghĩ nó in đầu tại 512B, không KB , Liệu tôi có sai?
Trong ổ đĩa có dung lượng 512 byte của bạn, khu vực đầu tiên kết thúc tại mức bù 511, như tôi đã nói ở trên, phân vùng đầu tiên bắt đầu sau khu vực đầu tiên.


Are we suppose to have an overlap or increment by 1?

tôi bạn thay đổi đơn vị byte, bạn sẽ thấy vị trí thực tế của phân vùng và có thể kiểm tra xem họ không chồng chéo.


What purpose is this for? Is there something I'm missing?

Đó là bởi vì, theo mặc định, chia tay làm việc với MiB. Khi bạn nhập:

parted -s -a optimal $DEV mkpart primary ext3 1 1600 

Bạn đang yêu cầu chia nhỏ giữa các khoảng cách tương ứng với MiB # 1 và # 1600. Các khoảng cách được căn chỉnh với MiB luôn được căn chỉnh cho hiệu suất tốt nhất, vì vậy không cần thiết phải chỉ định -a optimal. Nếu bạn thay đổi đơn vị byte bạn có thể tạo một không liên kết phân vùng:

parted $DEV unit b mkpart primary 1000000 160MB 
parted $DEV align-check optimal 1 

Nó đã chỉ ra các lỗi: The resulting partition is not properly aligned for best performance.

Vì vậy, hãy cố gắng làm điều tương tự với -a none tùy chọn:

parted -a none $DEV unit b mkpart primary 1000000 160MB 

Bây giờ không có lỗi, đây là mục đích của tùy chọn này.


I really wish parted would be a lot more intelligent and not require a start, but rather could deduce it itself.

Tôi nghĩ rằng tính năng này sẽ được thực hiện bởi bất kỳ công cụ sử dụng: libparted, nhưng tôi nghĩ là không cần thiết trong thư viện ... nhưng ai mà biết được? có thể một số nhà phát triển libparted đang lắng nghe ... bạn đã cố gửi báo cáo lỗi chưa? [email protected]

Các vấn đề liên quan