Dlaczego partycja zaczyna się w sektorze 2048 zamiast 63?

54

Miałem dwa dyski podzielone na takie same i na każdym z nich działały dwie partycje RAID.

Jeden zmarł i wymieniłem go w ramach gwarancji na ten sam model.

Podczas próby partycjonowania, pierwsza partycja może rozpocząć się tylko na sektorze 2048, zamiast 63, które były wcześniej. Napęd ma inną geometrię niż poprzednie i pozostałe. (Mniej głowic / więcej cylindrów)

Stary dysk:

$ sudo fdisk -c -u -l /dev/sdb 

Disk /dev/sdb: 2000.4 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders, total 3907029168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000aa189

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *          63   174080339    87040138+  83  Linux
/dev/sdb2       174080340   182482334     4200997+  82  Linux swap / Solaris
/dev/sdb3       182482335  3907024064  1862270865   fd  Linux raid autodetect

Dysk regenerowany otrzymany z gwarancji:

$ sudo fdisk -c -u -l /dev/sda

Disk /dev/sda: 2000.4 GB, 2000398934016 bytes
81 heads, 63 sectors/track, 765633 cylinders, total 3907029168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000d0b5d

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048  ...

Dlaczego?

gcb
źródło
1
Wyjście nie wskazuje, że jest to Advanced Format 4K napęd: Sector size (logical/physical): 512 bytes / 512 bytes.
bwDraco
1
Dlaczego zostało to zanegowane?
bwDraco
1
Nie zgadzam się z opinią negatywną, nie byłem również świadomy nieporozumienia dotyczącego wyrównania torów, a informacje JdeBP są przydatne i istotne w przypadku ważnego pytania.
Garrett,
Odpowiedzi na pytania i odpowiedzi: superuser.com/q/565577/19956 , unix.stackexchange.com/q/81556/3054 .
pkt
Korzystając z nowszych napędów dysków, zaleca się GPT, który 2048domyślnie wykorzystuje jako sektor startowy. Starszy dysk został prawdopodobnie sformatowany przy użyciu starszego narzędzia i przy użyciu formatu tabeli partycji innej niż GPT. Do partycjonowania nowszych dysków „Advanced Format 4K” użyj narzędzi GPTfdisk . W przypadku macierzy RAID pamiętaj, aby odpowiednio wpisywać fd00 Linux RAIDi oznaczać partycje.
TrinitronX

Odpowiedzi:

44

Ponieważ twój stary dysk został podzielony na partycje za pomocą starego narzędzia, takiego jak Linux fdisk, które bezużytecznie zaimplementowało wyrównanie ścieżek przy użyciu całkowicie fałszywej geometrii dysku, którą widzisz, a nowy dysk został podzielony na partycje przez nowe narzędzie, które ( default) wyrównuje do granic 1MiB.

Dalsza lektura

JdeBP
źródło
7
Innymi słowy, sektor LBA numer 63 odpowiada cylindrowi 0, głowicy 1, sektorowi 1 w formacie CHS , który jest pierwszym sektorem, którego można użyć w formacie MBR. Jednak liczby 63 nie można podzielić przez 8, co powoduje problem z napędami 4K, więc niektóre nowoczesne narzędzia rozpoczynają pierwszą partycję od 2048 roku, co zapewnia również kompatybilność z GPT w przyszłości.
billc.cn
8
Są chwile, kiedy ktoś tęskni za sposobem na zanotowanie komentarzy, zwłaszcza komentarzy, w których inni starają się włożyć do ust jawne błędy. Te „inne słowa” są niepoprawne i dlatego nie są to, co napisałem . Pierwszym sektorem, którego można używać (jak ma to kilka osób) dla partycji podstawowej z tabelą partycji MBR, jest LB # 2, a nawet LB # 1, jeśli nie jest potrzebna kompatybilność z takimi elementami jak LVM IBM. Wyrównanie 1MiB nie ma nic wspólnego ze zgodnością tabeli partycji EFI.
JdeBP
Zgadza się, pomyliłem się co do pierwszej części, ale w drugiej części miałem na myśli, że jeśli zaczniesz od 2048 r., Nie będziesz miał problemu z konwersją dysku na GPT w przyszłości, stąd słowo „także” i „przyszłość” .
billc.cn
5
To wciąż niepoprawne. I tak nie będzie problemu . Czy arytmetyka. Nawet pierwotne wyrównanie do (fałszywej) granicy toru zapewnia więcej niż wystarczającą ilość miejsca. Te 60 512-bajtowych sektorów może pomieścić 240 pozycji tablicy partycji EFI. Znowu: Wyrównanie 1MiB nie ma nic wspólnego ze zgodnością tabeli partycji EFI.
JdeBP
4
fdisknie jest „starym narzędziem”, jest aktywnie utrzymywane. Po prostu NIE używaj „fałszywej geometrii dysku” przez -c=dos(domyślnie jest wyłączona!). Strona wyraźnie ostrzega przed zrobieniem tego, ponieważ CHS nie żyje jak dyskoteka. Link do strony JdBP jest martwy, ale historię wyrównania 1MiB (sektor 2048) można znaleźć we wpisie w Wikipedii Logical Disk Manager . Jest to brodawka dla systemu Windows Vista: „Korzystanie z granicy wyrównania 1-MiB umożliwia bezpieczniejszą edycję tabeli partycji za pomocą Vista Disk Mgt”.
David Tonhofer,
36
fdisk -c=dos

Użyłeś starej tabeli partycji DOS podczas tworzenia partycji. Nowsze wersje fdiskdomyślnie nie używają trybu zgodności z dos.

Mikrofon
źródło
3
Przyjęta odpowiedź zawiera kilka cennych informacji, ale ta odpowiedź zawiera klejnot, którego potrzebowałem, aby naprawić mój problem.
jcbwlkr
fdisk nie pozwoliłby mi odtworzyć partycji zaczynającej się od sektora 2048 bez tego argumentu - dostałemFirst sector (3072-314572799, default 3072):
tomfanning
5
Jest to krytyczne, jeśli próbujesz zmienić rozmiar partycji, co przy pomocy fdisk oznacza usunięcie i ponowne utworzenie; potrzebujesz partycji, aby rozpocząć w tym samym miejscu.
mcr
nie współpracuje już z fdisk from util-linux 2.28: /
akostadinov
1
znaleziono fdisk -c=dos -u=cylinders /dev/sdbw gist - gist.github.com/jkullick/febf46756435f1fa99dc56f00782de03
akostadinov
7

Może warto tu dodać komentarz. W przypadku partycji LUKS mówi się o usunięciu i ponownym utworzeniu partycji w tym samym miejscu, ale większym przed wywołaniem cryptsetup resize. Ale gdy już dawno utworzyłeś partycję, zaczyna się ona od sektora 63. Za pomocą fdisk partycja zostanie odtworzona z niewłaściwym przesunięciem, co spowoduje utratę partycji.

Udało mi się go odzyskać, fdisk -c=dosaby móc bez problemu utworzyć partycję z sektora 63.

Adrien Clerc
źródło
1

Nie jestem pewien, dlaczego to się zaczęło od 63, ale według fdisk rozmiar twojego sektora to 512.

Jeśli więc chcesz, aby twoje partycje, a tym samym klastry były wyrównane, początkowe przesunięcie powinno być podzielne przez 512. 2048 jest obecnie dość powszechne.

Jeśli wolisz nierównomierne sektory, zawsze możesz poprosić GPart o przeniesienie partycji z powrotem do 63.

Edytować:

Ups Nie widziałem, że masz macierz RAID. Prawdopodobnie powinieneś opublikować rozmiar RAID i pasek.

surfasb
źródło
1
63 to 111111 w systemie binarnym. BIOS komputerów PC, numer sektora jest / został zakodowany w sześciu bitach, co daje maksymalną liczbę 111111 (63) sektorów na ścieżkę. To maksimum jest nadal wykorzystywane w wirtualnej geometrii CHS.
Chris Reid,
1

Chociaż zdaję sobie sprawę, że na właściwe pytanie udzielono odpowiedzi, szybkie rozwiązanie pierwszego problemu z 63 cylindrami w porównaniu z 2048 r. Przypomina:

sfdisk -d /dev/sdb | sfdisk --force /dev/sda

(jeśli masz pewność, że masz dyski tego samego rozmiaru)

Następnie można przystąpić do dodawania różnych partycji z powrotem do macierzy RAID, w których otrzymywano skargi na to, że partycje nie są tego samego rozmiaru z powodu różnicy cylindrów początkowych 63/2048 odrzucającej ostateczne rozmiary partycji.

Jason Byrne
źródło
powinieneś wyjaśnić, co robi, miejsce docelowe źródła?
Paweł Cioch
0

Wybór 1 MiB (rozmiar emulowanego bloku 2048 * 512 bajtów) jest doskonałym rozwiązaniem dla różnych konfiguracji sprzętowej pamięci masowej. Ponieważ struktury danych systemu plików są zasadniczo wyrównane z punktem początkowym partycji, może to być ważne, aby zmaksymalizować szybkość odczytu / zapisu pamięci.

Na przykład:

RAID może wykorzystywać paski danych o rozmiarze od 16 do 256 KiB. 1 MiB jest całkowitą wielokrotnością tego, więc rozpoczęcie partycji od 1 MiB jest zgodne z bazowym modelem RAID.

Dyski SSD zwykle mają rozmiar bloku wymazywania od 128 do 256 stron NAND, który w zależności od napędu może wynosić 256 KiB lub 512 KiB. Zatem tutaj ponownie rozpoczęcie partycji z 1 MiB jest zgodne z podstawowymi właściwościami pamięci SSD.

Advance Format 512e wirujące dyski twarde mają rozmiar fizyczny bloku 4 KiB, i ponownie, 1 MiB jest wielokrotnością całkowitą (aczkolwiek dość dużą) tego.

Więc jeśli masz napęd AF i partycjonujesz jako GPT, możesz być całkowicie zadowolony z pierwszej partycji zaczynającej się od bloku LBA 40 (liczba całkowita z 8 logicznych bloków w każdym fizycznym bloku dysku twardego), prawie żadnych światowa pamięć jest tracona, zaczynając od bloku LBA 2048 (1 MiB), który jest po prostu bardziej elastyczną wartością domyślnego podziału oprogramowania na partycje, ponieważ jest odpowiedni dla praktycznie dowolnej konfiguracji sprzętowej.

Ryan Feeley
źródło