Làm cách nào tôi có thể tạo kịch bản cho việc tạo một phân vùng duy nhất sử dụng toàn bộ thiết bị?


9

Tôi đặc biệt sử dụng điều này để phân vùng và gắn kết khối lượng EBS trên các phiên bản Amazon EC2, nhưng thực sự điều này thường được áp dụng để khởi tạo bất kỳ ổ đĩa mới nào.

Như câu hỏi nói rằng tôi muốn tạo kịch bản cho việc tạo một phân vùng chính duy nhất sử dụng tất cả không gian có sẵn trên thiết bị đã cho. Tôi sẽ không biết trước thiết bị này lớn như thế nào và nó có thể rất lớn (tức là vài TB).

Trong nghiên cứu này dường như partedlà lệnh tốt nhất để sử dụng cho kịch bản. Tôi nghĩ rằng một cái gì đó dọc theo dòng parted /dev/sdf mkpart primary 0 ENDlà những gì tôi muốn, nhưng tôi đang có một thời gian khó khăn để tìm ra một cách thanh lịch để xác định END nên là gì. Có ai biết một cách dễ dàng để làm điều này?

Câu trả lời:


11

Bạn có thể làm điều này như thế này:

parted /dev/sdf --script -- mkpart primary 0 -1

5

Tôi gặp vấn đề khi tôi cố gắng sử dụng câu trả lời khác. Điều làm việc cho tôi là sử dụng cách tiếp cận tỷ lệ phần trăm như thế này:

$ parted /dev/sdf --script -- mkpart primary 0% 100%

Có một vấn đề với partedvà cách nó liên quan đến sự liên kết của các phân vùng. 2 bài viết này thảo luận về vấn đề một chút:

Toán học được nêu trong các bài viết đó đơn giản là không hoạt động trong các tình huống của tôi. Chôn vào một trong những bình luận về lần thứ hai, liên kết ai đó đề xuất sử dụng tỷ lệ phần trăm và điều đó đã làm việc.

Ngẫu nhiên, bạn cũng sẽ cần phải dán nhãn ổ cứng. Để làm điều đó thông qua CLI với parted:

$ parted /dev/sde --script -- mklabel msdos

-hoặc là-

$ parted /dev/sde --script -- mklabel gpt

Tùy thuộc vào ổ cứng của bạn.


gdiskcăn chỉnh chính xác. Theo tôi, partedlà một mớ hỗn độn. Nó làm quá nhiều - và những thứ nó làm chỉ được kết nối lỏng lẻo. Thật kỳ lạ khi nó tạo ra các hệ thống tệp và bảng phân vùng cùng nhau - các vị trí đĩa cho dữ liệu mà nó ghi không giống như trong cùng một vùng lân cận. Tôi chỉ bắt đầu hiểu cách các đĩa hoạt động khi tôi nhận ra rằng bảng phân vùng là một bản đồ nhỏ nằm ở đầu của nó và nó cho os biết nơi nó có thể tìm kiếm một hệ thống tập tin nếu nó muốn. Khi nhấp vào đó, tôi hiểu superblocks và megaman và tất cả. Chà, dù sao thì tôi cũng thích nghĩ như vậy.
mikeerv

Cảm ơn, trang web của các công cụ trong không gian này luôn là một mớ hỗn độn đối với tôi. Tôi liên tục trộn sfdisk, fdisk, cfdisk, parted, v.v. Tôi sẽ thử fdisk và xem điều đó có dễ hơn không. Chủ yếu tìm kiếm một cách dễ dàng để chạy từ tùy chọn cli để đưa vào các tập lệnh.
slm

Về cơ bản [gf]diskkhông phân biệt stdin của họ - họ không quan tâm nếu đó là từ một termInal. Vì vậy, bất kỳ chuỗi lệnh nào bạn sẽ nhập tương tác để có được những gì bạn muốn có thể được dịch trực tiếp sang printftập lệnh. Tất cả các dòng mới trong câu trả lời của tôi chỉ là các (or press enter for default)tùy chọn. Nó khá dễ. Khi tôi chơi xung quanh w / chúng tôi chỉ cần đi đến /tmpfallocate -l1g imgvà sau đó chỉ cần sử dụng mới của tôi /tmp/imgtập tin như đĩa của tôi - họ không quan tâm. Họ chỉ muốn viết một bảng phân vùng. Nếu bạn làm như vậy, hãy xem những gì xảy ra w / strings -1 imgthỉnh thoảng.
mikeerv

Nhưng tôi đã nói dối trước đây - megaman vẫn còn bí ẩn đối với tôi. Có lẽ anh sẽ luôn như vậy.
mikeerv

1
với parted /dev/sdf --script -- mkpart primary 0 -1tôi đã có một cảnh báo cho việc không phù hợp để có hiệu suất tốt nhất. Nó đã đi rất tốt với tỷ lệ phần trăm
nachoparker

2

Bạn có thể làm...

printf 'n\n\n\n\n\nw\n' | fdisk /dev/disk

... cho một loại msdos. Thực tế điều tương tự làm việc cho gpt ...

printf 'n\n\n\n\n\nw\ny\n' | gdisk /dev/disk

Và bạn có thể gắn nhãn đĩa của bạn trong thời gian tạo hệ thống tập tin.

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.