Phân vùng GPT có thể tạo tập lệnh bằng cách sử dụng parted


9

Tôi đang phân vùng eMMC bằng các lệnh sau trong tập lệnh,

parted /dev/mmcblk0 --script mklabel gpt
parted /dev/mmcblk0 --script mkpart primary ext4 32MB 132MB
parted /dev/mmcblk0 --script mkpart primary ext4 233MB 433MB
parted /dev/mmcblk0 --script mkpart primary ext4 433MB 533MB
parted /dev/mmcblk0 --script mkpart primary ext4 533MB 593MB
parted /dev/mmcblk0 --script mkpart primary ext4 593MB 793MB
parted /dev/mmcblk0 --script mkpart primary ext4 793MB 3800MB
parted /dev/mmcblk0 --script align-check min 1
  1. Đây có phải là cách chính xác để tạo phân vùng trong tập lệnh? Có cách nào tốt hơn không?
  2. Sau khi tạo phân vùng đầu tiên, tôi nhận được cảnh báo sau

    Cảnh báo: Phân vùng kết quả không được căn chỉnh chính xác để có hiệu suất tốt nhất.

Tôi có cần phải lo lắng về nó? Tôi đã thử parted /dev/mmcblk0 --script align-check min 1nhưng không chắc đó là giải pháp. Bất kỳ con trỏ cho điều đó?
Tôi đang đi qua liên kết này trong khi có bất kỳ đề nghị khác?

Chỉnh sửa : Chỉ cần một tài liệu tham khảo nhanh để trả lời frostschutz,

MiB = Mebibyte = 1024 KiB
KiB = Kibibyte = 1024 Bytes
MB = Megabyte = 1,000 KB
KB = Kilobyte = 1,000 Bytes

Câu trả lời:


18

Về nguyên tắc, điều này đúng nhưng bạn có thể cân nhắc giảm nó thành một partedcuộc gọi.

parted --script /device \
    mklabel gpt \
    mkpart primary 1MiB 100MiB \
    mkpart primary 100MiB 200MiB \
    ...

Vấn đề liên kết của bạn có thể là do bạn sử dụng MBthay vì MiB. Bạn không cần một align-checklệnh thực tế khi tạo phân vùng trên MiBranh giới / trên một thiết bị đã biết.


Cảm ơn bạn đã trả lời, Hãy để tôi kiểm tra nó. Tôi sẽ cập nhật kết quả.
NGHỆ THUẬT

Tôi không nhận được cảnh báo đó ngay bây giờ, Cảm ơn bạn :)
ART

bất kỳ đề xuất nào cho unix.stackexchange.com/questions/236139/iêu
ART

Tôi đã cố gắng sửa đổi mã của bạn để sử dụng trong một bối cảnh khác. Bạn có sẵn sàng tư vấn? Đây là đường dẫn: unix.stackexchange.com/questions/349833/ Khăn
CodeMed

1
Tôi sẽ thêm '-' giữa thiết bị và các lệnh - bằng cách này bạn có thể sử dụng '-1' cho kích thước tối đa.
niry

3

Tôi biết điều này đã cũ và một câu trả lời khá hay ở chỗ bạn có thể sử dụng MiB, nhưng tôi muốn đưa ra một lựa chọn khác cho những người khác.

Trong lệnh gọi tập lệnh (--script hoặc -s cho phiên bản ngắn), bạn có thể thêm tùy chọn -a, yêu cầu nó căn chỉnh và chuyển tùy chọn "tối ưu" khi tạo phân vùng. Một cái gì đó như thế này:

sudo chia tay -s -a tối ưu - / dev / sdX mkpart chính 1MiB -2048s

đây chỉ là một ví dụ về việc bắt đầu ở Mebibyte thứ 1 và kết thúc ở cuối đĩa trừ đi Mebibyte cuối cùng để rời khỏi bảng GPT.


Ít nhất trên hệ thống của tôi, "-2048s" dường như không được chấp nhận như một ký hiệu cho tham số "kết thúc", nó dường như được coi là một tùy chọn.
cắm vào

1
Ok, sau khi thử nhiều tìm kiếm khác nhau trên google, có vẻ như dấu gạch ngang đơn lẻ ở giữa lệnh OP cần phải là dấu gạch ngang kép. Tôi sẽ chỉnh sửa câu trả lời để sửa các vấn đề này nhưng tôi đang chạy vào quy tắc kích thước chỉnh sửa tối thiểu của ngăn xếp.
cắm vào

FWIW, đã chia tay đủ thông minh để không làm hỏng nhãn sao lưu GPT nếu bạn kết thúc phân vùng bằng -0(hiện đã được kiểm tra), do đó tiết kiệm được một MiB. Người ta cũng có thể muốn thay đổi primaryở đây thành một tên phân vùng tùy ý.
AsADEus

1
@plugwash, bạn phải có "-" trong lệnh, nếu không, nó sẽ phàn nàn về "-" trong "-2048s" vì dấu trừ cho biết khoảng cách từ cuối đến cuối. Nếu "-" không xuất hiện, bash diễn giải nó dưới dạng cli arg và không có -2 arg trong phần. đây có thể là một lỗi trong bản sao sang M $ word hoặc thứ gì đó, sau đó vào hộp phản hồi. iirc, các phiên bản cũ hơn của parted không thích hoặc không chấp nhận đặt tham số thứ hai thành -1MiB, đó là lý do tại sao tôi sử dụng số lượng ngành, vì điều đó được cho phép. asADEus: Tôi không chắc chia tay đã luôn cư xử theo cách này, vì vậy nó an toàn hơn là xin lỗi.
Khstalloph
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.