Saya mempartisi hard disk non-SSD dengan parted karena saya ingin tabel partisi GPT.
parted /dev/sda mklabel gpt
Sekarang, saya mencoba membuat partisi dengan benar sehingga saya menggunakan perintah berikut untuk mengetahui di mana sektor pertama dimulai:
parted /dev/sda unit s p free
Disk /dev/sda: 488397168s
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
34s 488397134s 488397101s Free Space
Kita dapat melihat bahwa itu dimulai di sektor 34 (itu adalah default ketika tabel partisi ini digunakan).
Jadi, untuk membuat partisi pertama saya mencoba:
parted /dev/sda mkpart primary 63s 127s
untuk menyelaraskannya di sektor 64 karena ini merupakan kelipatan dari 8 tetapi ini menunjukkan:
Peringatan: Partisi yang dihasilkan tidak selaras dengan benar untuk kinerja terbaik.
Ukuran sektor logis dan fisik di hard disk saya adalah 512 byte:
cat /sys/block/sda/queue/physical_block_size
512
cat /sys/block/sda/queue/logical_block_size
512
Bagaimana cara membuat partisi dengan benar? Apa yang saya lakukan salah?
parted /dev/sda mkpart primary 64s 128s
(kalau-kalau dimulai dalam 1) tetapi mengembalikan peringatan yang sama.Jawaban:
Untuk menyelaraskan partisi dengan
parted
Anda dapat menggunakan--align
opsi. Jenis perataan yang valid adalah:Kiat bermanfaat lainnya adalah Anda dapat mengatur ukuran dengan persentase agar selaras. Mulai dari 0% dan berakhir pada 100%. Sebagai contoh:
parted -a optimal /dev/sda mkpart primary 0% 4096MB
sumber
0% 100%
? Dari mana datangnya4096MB
?'0%'
tanda kutip di dalam untuk shell saya untuk menjalankan perintah dengan benar.print
kB menggunakan 1000 byte ...Solusi saya adalah menggunakan gdisk yang dapat melakukan perataan partisi secara otomatis pada sektor 2048 (1024KiB) secara default, meskipun dapat diubah di menu ahli.
sumber
Dari Arch Wiki :
Saat membuat partisi, parted mungkin memperingatkan tentang perataan partisi yang tidak tepat tetapi tidak memberi petunjuk tentang perataan yang tepat. Sebagai contoh:
Peringatan itu berarti partisi
start
tidak selaras.Masuk
Ignore
untuk tetap melanjutkan , cetak tabel partisi di sektor-sektor untuk melihat di mana ia dimulai, dan hapus / buat ulang partisi dengan sektor mulai dibulatkan ke peningkatan kekuatan 2 sampai peringatan berhenti. Sebagai salah satu contoh, pada flash drive dengan sektor 512B, Parted ingin partisi untuk memulai pada sektor yang merupakan kelipatan 2048, yaitu penyelarasan 1MB.Selain itu, tepat di atas bagian ini, mereka menyatakan bahwa unit biner IEC yang lebih tepat dari KiB, MiB, GiB, dll., Dapat diterima untuk unit serta KB, MB, GB, dll yang kurang tepat.
Secara pribadi, perintah tepat saya yang memecahkan ini adalah:
Itu tidak mengeluh, saya kira itu ingin keberpihakan 1MB.
sumber
Koreksi kecil. Seperti yang saya pahami, disk GPT tidak memiliki tipe partisi lagi, mereka semua "primer". Perintah 'mkpart primer' tidak membuat partisi primer seperti pada disk msdos, hanya membuat partisi yang disebut primer. Anda bisa menggunakan perintah
Ini dapat menyebabkan kebingungan jika Anda mencoba membuat partisi logis, saya tahu itu untuk saya.
Anda tidak dapat membuat partisi yang disebut "logis" di dalam partisi yang disebut "extended".
sumber
The jawaban yang diterima oleh @lik menunjukkan bagaimana Anda dapat menentukan keselarasan disukai. Namun, parted selalu menggunakan perataan itu untuk memeriksa partisi yang dihasilkan, tetapi tidak selalu membuat partisi dengan perataan itu.
TL; DR: Ketika 1MiB adalah penyelarasan optimal, menentukan 0% akan bekerja untuk disk 200MiB dan lebih besar. Untuk disk yang lebih kecil atau penjajaran yang lebih besar, menentukan 0G dapat bekerja di mana 0% tidak. Lihat di bawah tentang alasannya.
Parted memang mencoba memenuhi kendala penyelarasan saat membuat partisi, tetapi juga tidak akan menyimpang dari nilai yang Anda minta terlalu banyak. Apa yang dianggap sebagai "terlalu banyak" tergantung pada bagaimana Anda menentukan posisi.
Ketika Anda menentukan posisi awal (atau akhir) untuk perintah mkpart, itu secara internal menghasilkan berbagai nilai yang dapat diterima. Rentang ini dipusatkan pada nilai yang Anda tentukan, dan meluas secara merata di kedua sisi dengan setengah ukuran unit yang Anda gunakan (itulah yang saya baca dari kode , komentar mengatakan satu ukuran unit penuh di kedua ujungnya).
Misalnya, ketika Anda menentukan "10M", itu akan mencoba menggunakan posisi apa pun antara 9,5M dan 10,5M. Hal yang sama berlaku untuk persentase, jadi jika Anda menentukan 0% itu akan menggunakan nilai apa pun antara 0% dan 0,5% (itu tidak menjadi negatif, jelas).
Satu pengecualian adalah bahwa ketika menggunakan kekuatan dua unit (seperti KiB untuk 1024, berlawanan dengan K untuk 1000) berpisah mengasumsikan Anda mencoba menentukan posisi yang tepat dan hanya mempertimbangkan nilai persis yang Anda tentukan.
Karena penyelarasan optimal biasanya nampak selaras 1MiB, unit K dan M sering tidak memiliki ruang yang cukup untuk mencapai penyelarasan optimal. Menentukan posisi dalam G harus memiliki banyak ruang, tetapi% biasanya juga baik-baik saja.
Jadi, inilah sebabnya 0% biasanya berfungsi, meskipun itu pun memiliki batasan.
sumber