Bölümlenmiş kullanarak hizalı bölüm oluşturma


67

Ben olmayan bir SSD sabit disk bölümleme ediyorum bölümlemeye ayrılmış ben GPT bölümleme tablosunu istiyorum çünkü.

parted /dev/sda mklabel gpt

Şimdi, bölümleri doğru hizalanmış olarak oluşturmaya çalışıyorum, bu yüzden ilk kesimin nerede başladığını bilmek için aşağıdaki komutu kullanıyorum:

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

Sektör 34'te başladığını görebiliyoruz (bu bölüm tablosu kullanıldığında varsayılan).

Böylece, denedim ilk bölümü oluşturmak için:

parted /dev/sda mkpart primary 63s 127s

8 katı olduğundan sektör 64 ile aynı hizaya getirmek için

Uyarı: Ortaya çıkan bölüm en iyi performans için uygun şekilde hizalanmamış.

Sabit diskimdeki mantıksal ve fiziksel sektör boyutlarının her ikisi de 512 bayttır:

cat /sys/block/sda/queue/physical_block_size
512

cat /sys/block/sda/queue/logical_block_size 
512

Doğru hizalanmış bölümleri nasıl oluştururum? Neyi yanlış yapıyorum?


Sektör numaralarının sıfırdan başladığından emin misiniz?
Burton Samograd

1
Ben de denedim parted /dev/sda mkpart primary 64s 128s(1'de başlarsa) ama aynı uyarıyı verir.
Marc

: Bir değer hizalanmış olup olmadığını kontrol etmek için bir komut var gibi görünüyor gnu.org/software/parted/manual/html_node/align_002dcheck.html . Belki for for döngüsünü kullanarak çeşitli değerlerle denemelisiniz ve iyi olan değerleri tükürmelisiniz?
Burton Samograd

Burton, bu komutu bilmiyordum ama bölümlenene kadar kullanılamaz.
Marc

Bunun için üzgünüm, açıklamayı yeterince dikkat etmedim.
Burton Samograd

Yanıtlar:


68

Bölümü hizalamak partediçin --alignseçeneğini kullanabilirsiniz . Geçerli hizalama türleri:

  • none - Disk türünün izin verdiği minimum hizalamayı kullanın.
  • silindir - Bölmeleri silindirlerle hizalayın.
  • Minimal - Disk topoloji bilgisi verilen minimum uyum kullanın. Bu ve opt değeri, mantıksal bölüm tablosu adreslerini disklerdeki fiili fiziksel bloklara hizalamak için disk tarafından sağlanan yerleşim bilgisini kullanır. Min değeri, bölmenin düzgün bir şekilde fiziksel bloklara hizalanması için gerekli minimum hizalamadır ve performansın düşmesini önler.
  • optimal Disk topolojisi bilgisi tarafından verilen optimum hizalamayı kullanın. Bu, optimum performansı garanti edecek şekilde fiziksel blok boyutunun bir katına hizalanır.

Diğer faydalı ipucu, hizalamayı sağlamak için boyutu yüzde olarak ayarlayabilmenizdir. % 0 ile başlayın ve% 100 ile bitirin. Örneğin:

parted -a optimal /dev/sda mkpart primary 0% 4096MB


5
Komut bitmemeli 0% 100%mi? Nereden 4096MBgeliyor
njahnke

4
Değer 4096MB% karıştırma yeteneğini ve spesifik boyut numaralarını göstermek için burada sadece bir örnektir kullanılır
lik

3
Sadece bir not, '0%'komutu doğru şekilde uygulayabilmem için kabuğumun tırnak içine almam gerekiyordu .
Adam Eberlin

@lik bu yazı için öneriniz var mı unix.stackexchange.com/questions/248939/…
AnkurTank

1
Yukarıdakileri print
boşalttığımda

9

Benim çözümüm, uzman menüsünde değiştirilebilse de, varsayılan olarak 2048 sektörde (1024KiB) bölümleri otomatik olarak ayarlayabilen gdisk kullanmaktı .


7

Gönderen Arch Wiki :

Bir bölüm oluştururken, bölümlendirme hatalı bölüm hizalaması konusunda uyarabilir, ancak düzgün hizalama hakkında ipucu vermez. Örneğin:

(parted) mkpart primary fat16 0 32M
Warning: The resulting partition is not properly aligned for best performance.
Ignore/Cancel?                                                     

Uyarı, bölümün starthizalanmadığı anlamına gelir .

IgnoreYine de devam etmek için Enter tuşuna basın , nerede başladığını görmek için bölüm tablosunu yazdırın ve uyarı kesilinceye kadar bölümü 2'nin artan güçlerine yuvarlanmış başlangıç ​​sektörü ile bölmeyi çıkarın / yeniden oluşturun. Örnek olarak, 512B sektörlü bir flash sürücüde, Parted, 1 MB'lik hizalama olan 2048'in katları olan sektörlerde başlamayı istedi.

Ek olarak, bu bölümün hemen üstünde, KiB, MiB, GiB, vb. Gibi daha kesin IEC ikili birimlerinin, daha az hassas KB, MB, GB vb. Birimler için kabul edilebilir olduğunu belirtirler.

Şahsen, bunu çözen tam emrim şuydu:

mkpart hd ext4 1024KiB 8470MB

Şikayet etmedi, sanırım 1 MB ayar istedi.


Hayır, ben 1048576KiB denedim, zar yok.
Behrooz

5

Küçük bir düzeltme. Anladığım kadarıyla GPT diskleri artık bölümleme tiplerine sahip değil, hepsi "birincil". 'Mkpart birincil' komutu msdos disklerinde olduğu gibi bir birincil bölüm oluşturmaz, sadece birincil olarak adlandırılan bir bölüm oluşturur. Komutu da kullanabilirsiniz

(parted) mkpart Parted-FUN! 21476MB 4000787MB
(parted) print
Model: ATA ST4000DM000-1F21 (scsi)
Disk /dev/sdf: 4000787MB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number  Start    End        Size       File system  Name         Flags
 1      1.05MB   17181MB    17180MB    ext4         raid-var
 2      17181MB  21476MB    4295MB                  raid-swap
 3      21476MB  4000786MB  3979310MB               Parted-FUN!

Mantıksal bölümler oluşturmaya çalışırsanız bu karışıklığa neden olabilir, benim için yaptığını biliyorum.

(parted) mkpart extended 21476MB 4000787MB
(parted) mkpart logical 21476MB 1000787MB
Warning: You requested a partition from 21476MB to 1000787MB.
The closest location we can manage is 4000786MB to 4000786MB.
Is this still acceptable to you?
Yes/No? Yes
(parted) print
Model: ATA ST4000DM000-1F21 (scsi)
Disk /dev/sdf: 4000787MB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number  Start      End        Size       File system  Name       Flags
 1      1.05MB     17181MB    17180MB    ext4         raid-var
 2      17181MB    21476MB    4295MB                  raid-swap
 3      21476MB    4000786MB  3979310MB               extended
 4      4000786MB  4000786MB  0.00MB                  logical

"Uzatılmış" adlı bir bölümün içinde "mantıksal" adlı bir bölüm oluşturamazsınız.


teşekkür ederim, ben sadece bu araçları kötü cli sayesinde biraz zaman boşa harcadım, ve sen bana neler olup bittiğini anladın.
Florian Heigl

5

@Lik tarafından kabul cevap size tercih hizalama belirtebilirsiniz gösterir. Bununla birlikte, bölümlenen sonuç her zaman sonuçtaki bölümü kontrol etmek için bu dizilimi kullanır, ancak her zaman bu dizilimle bölümler oluşturmaz.

TL; DR: 1MiB en uygun hizalama olduğunda,% 0 belirtmek 200MiB ve daha büyük diskler için çalışır. Daha küçük diskler veya daha büyük hizalamalar için, 0G'nin belirtilmesi,% 0'ın çalışmadığı durumlarda işe yarayabilir. Neden hakkında aşağıya bakın.

Parted, bir bölüm oluştururken hizalama kısıtlamalarını sağlamaya çalışır, ancak aynı zamanda istediğiniz değerlerden çok fazla sapmayacaktır. "Çok fazla" sayılan şey, pozisyonları nasıl belirttiğinize bağlıdır.

Mkpart komutuna bir başlangıç ​​(veya bitiş) konumu belirttiğinizde, dahili olarak kabul edilebilir değerler aralığı oluşturur. Bu aralık, belirttiğiniz değere göre merkezlenir ve her iki tarafa da kullandığınız birim boyutunun yarısı kadar eşit şekilde uzanır ( koddan okuduğum şey , yorumlar her iki uçta da bir tam birim boyutu olduğunu söylüyor ).

Örneğin, "10M" belirlediğinizde, 9,5M ile 10,5M arasındaki herhangi bir konumu kullanmaya çalışır. Aynısı yüzdeler için de geçerlidir, bu nedenle% 0 belirtirseniz,% 0 ile% 0,5 arasında herhangi bir değer kullanır (açıkçası negatif olmaz).

Bunun bir istisnası, iki ünitenin gücünü kullanırken (örneğin, 1024 için KiB, 1000 için K'nın aksine) bölümlenmiş olarak, tam bir konum belirlemeye çalıştığınızı ve sadece belirttiğiniz değeri göz önüne aldığınızı varsayar.

Optimal hizalama tipik olarak 1MiB hizalanmış göründüğü için, K ve M üniteleri çoğu zaman optimum hizalamaya ulaşmak için yeterli alana sahip olmayacaktır. G'deki pozisyonları belirtmek için bolca yer olması gerekir, ancak% 'si de genellikle iyidir.

Bu yüzden,% 0 genellikle işe yarıyor, bunun da sınırları var.


Cevabınızın pratik bir TLDR'sini özetler misiniz: Kabul edilen cevaba göre farklı bir şekilde tam olarak daha iyi yapılması gerekenler nelerdir?
yurkennis,

İyi öneri, bir TL ekledim; DR. Uygulamada 0% 'ın küçük diskler hariç herkes için işe yarayacağını düşünüyorum, ancak cevabım tam olarak nasıl çalıştığı hakkında biraz bilgi veriyor.
Matthijs Kooijman
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.