Ja partycjonowanie dysku twardego non-SSD z parted bo chcę tabelę partycji GPT.
parted /dev/sda mklabel gpt
Teraz próbuję utworzyć partycje poprawnie wyrównane, więc używam następującego polecenia, aby wiedzieć, gdzie zaczyna się pierwszy sektor:
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
Widzimy, że zaczyna się w sektorze 34 (jest to ustawienie domyślne, gdy używana jest ta tabela partycji).
Aby utworzyć pierwszą partycję, próbowałem:
parted /dev/sda mkpart primary 63s 127s
aby wyrównać go do sektora 64, ponieważ jest wielokrotnością liczby 8, ale pokazuje:
Ostrzeżenie: wynikowa partycja nie jest odpowiednio wyrównana w celu uzyskania najlepszej wydajności.
Rozmiary sektora logicznego i fizycznego na moim dysku twardym wynoszą 512 bajtów:
cat /sys/block/sda/queue/physical_block_size
512
cat /sys/block/sda/queue/logical_block_size
512
Jak utworzyć poprawnie wyrównane partycje? Co ja robię źle?
parted /dev/sda mkpart primary 64s 128s
(w przypadku, gdy zaczyna się od 1), ale zwraca to samo ostrzeżenie.Odpowiedzi:
Aby wyrównać partycję
parted
, możesz użyć--align
opcji. Prawidłowe typy wyrównania to:Inną przydatną wskazówką jest to, że możesz ustawić rozmiar w procentach, aby go wyrównać. Zacznij od 0% i zakończ na 100%. Na przykład:
parted -a optimal /dev/sda mkpart primary 0% 4096MB
źródło
0% 100%
? Skąd4096MB
pochodzi?'0%'
cudzysłowy dla mojej powłoki, aby poprawnie wykonać polecenie.print
używa kB jako 1000 bajtów ...Moim rozwiązaniem było użycie gdisk, który domyślnie może automatycznie wyrównywać partycje w sektorach 2048 (1024 KB), chociaż można to zmienić w menu eksperckim.
źródło
Z Arch Wiki :
Podczas tworzenia partycji parted może ostrzec o niewłaściwym wyrównaniu partycji, ale nie wskazuje na prawidłowe wyrównanie. Na przykład:
Ostrzeżenie oznacza, że partycja
start
nie jest wyrównana.Wejdź,
Ignore
aby przejść dalej , wydrukuj tablicę partycji w sektorach, aby zobaczyć, gdzie się ona zaczyna, i usuń / odtwórz partycję z sektorem początkowym zaokrąglonym w górę do rosnących mocy 2, aż ostrzeżenie się zatrzyma. Jako jeden przykład, na dysku flash z sektorami 512B, Parted chciał, aby partycje zaczęły się od sektorów, które były wielokrotnością 2048, co oznacza wyrównanie 1 MB.Dodatkowo tuż powyżej tej sekcji stwierdzają, że bardziej precyzyjne jednostki binarne IEC KiB, MiB, GiB itp. Są dopuszczalne dla jednostek, a także mniej precyzyjne KB, MB, GB itp.
Osobiście moim dokładnym poleceniem, które to rozwiązało, było:
Nie narzeka, myślę, że chciał 1 MB wyrównania.
źródło
Drobna korekta. Jak rozumiem, dyski GPT nie mają już typów partycji, wszystkie są „podstawowe”. Polecenie „mkpart primary” nie tworzy partycji podstawowej, jak to ma miejsce na dyskach msdos, po prostu tworzy partycję o nazwie primary. Możesz równie dobrze użyć polecenia
Może to powodować zamieszanie, jeśli spróbujesz utworzyć partycje logiczne, wiem, że to dla mnie zrobiło.
Nie można utworzyć partycji o nazwie „logiczna” wewnątrz partycji o nazwie „rozszerzona”.
źródło
Akceptowane odpowiedź przez @lik pokazuje w jaki sposób można określić preferowany wyrównanie. Jednak parted zawsze używa tego wyrównania do sprawdzania wynikowej partycji, ale nie zawsze tworzy partycje z tym wyrównaniem.
TL; DR: Gdy 1MiB jest optymalnym wyrównaniem, określenie 0% będzie działać na dyskach o wielkości 200 MB i większych. W przypadku mniejszych dysków lub większego wyrównania określenie 0G może działać, gdy 0% nie. Zobacz poniżej, dlaczego.
Parted stara się spełnić ograniczenia wyrównania podczas tworzenia partycji, ale nie będzie też zbytnio odbierać od żądanych wartości. To, co liczy się jako „za dużo”, zależy od tego, jak określiłeś pozycje.
Po określeniu pozycji początkowej (lub końcowej) komendy mkpart generuje ona wewnętrznie zakres dopuszczalnych wartości. Ten zakres jest wyśrodkowany na podanej wartości i rozszerza się równo po obu stronach o połowę użytej wielkości jednostki (to czytam z kodu , komentarze mówią o jednym pełnym rozmiarze jednostki na obu końcach).
Na przykład, gdy podasz „10M”, spróbuje użyć dowolnej pozycji między 9,5M a 10,5M. To samo dotyczy wartości procentowych, więc jeśli podasz 0%, użyje dowolnej wartości z przedziału od 0% do 0,5% (oczywiście nie będzie ujemne).
Jednym wyjątkiem jest to, że w przypadku użycia potęgi dwóch jednostek (takich jak KiB dla 1024, w przeciwieństwie do K dla 1000), parted zakłada, że próbujesz określić dokładną pozycję i bierze pod uwagę tylko dokładnie określoną wartość.
Ponieważ optymalne wyrównanie zwykle wydaje się być wyrównane 1MiB, jednostki K i M często nie mają wystarczającej przestrzeni do osiągnięcia optymalnego wyrównania. Określenie pozycji w G powinno mieć dużo miejsca, ale% jest zwykle również w porządku.
Dlatego właśnie 0% zwykle działa, choć nawet to ma ograniczenia.
źródło