Kupiłem dysk twardy Seagate ST3000DM001 3 TB. Został sprzedany w obudowie. Sformatowałem do ext4, skopiowałem do niego niektóre dane, a następnie wyjąłem je z obudowy i podłączyłem bezpośrednio do płyty głównej. Moje dane nie były widoczne dla systemu operacyjnego (widziałem jedną nieznaną partycję ~ 300GiB, a resztę jako wolne miejsce), więc zacząłem czytać o zaawansowanym formacie i dyskach> 2 TB.
Ponownie podłączyłem dysk za pomocą USB, skopiowałem wszystkie dane i ponownie podłączyłem do sata. Użyłem gparted, aby utworzyć tablicę partycji GPT (narzędzie dyskowe Ubuntu nie pozwoliło mi na to Error synchronizing after initial wipe: Timed out waiting for object (udisks-error-quark, 0
), utworzyłem jedną dużą partycję 3 TB Ext4, pozostawiłem Align to
wartość domyślną MiB
i sformatowałem.
Dysk jest rozpoznawany poprawnie i prawidłowo się montuje. Pliki można pomyślnie kopiować zi na dysk.
Jednak:
Gparted pokazuje dysk mający 512k sektorów, co według mnie nie jest prawdą 1
podczas gdy cat /sys/block/sdb/queue/physical_block_size
raporty4096
Znalazłem kilka raportów, które libparted
mają problem z sektorami nie 512k 2 i innymi 3, które mówią, że wystarczy dostosowanie do MiB.
Parted zgłasza, że dysk jest wyrównany, gdy wybiorę minimalną:
(parted) align-check
alignment type(min/opt) [optimal]/minimal? min
Partition number? 1
1 aligned
(parted)
Czy moja konfiguracja jest prawidłowa? Czy mam obniżenie wydajności, ponieważ dysk jest sformatowany z 512k sektorami, gParted zgłasza fałszywe wartości lub źle zrozumiałem?
źródło
Odpowiedzi:
Zgłasza 512 bajtów, ponieważ jest to logiczny rozmiar sektora dla wstecznej zgodności ze starszymi systemami operacyjnymi (Windows). (g) parted wyrównuje partycje do 1 MiB, co jest więcej niż wystarczające do prawidłowej pracy z dyskami wykorzystującymi 4k fizycznych sektorów, więc jest dobrze, tak jak jest.
źródło
Po pierwsze, większość dysków w zaawansowanym formacie ma logiczny rozmiar sektora wynoszący 512 bajtów, mimo że fizyczny rozmiar sektora wynosi 4096 bajtów (4KiB). Odbywa się to poprzez żonglowanie danymi w oprogramowaniu wewnętrznym napędu, a niepoprawne wyrównanie partycji może powodować problemy z wydajnością . Możliwe, że nie jest to przyczyną twojego problemu, a twoje skupienie na wyrównaniu partycji jest niewłaściwe. (Dla pewności wyrównanie partycji jest ważne; po prostu nie jest źródłem problemu).
Moje przeczucie (i tak jestwystarczy przeczucie), że problem wynika z przełączania między obudową USB a bezpośrednim podłączeniem dysku. Niektóre obudowy przekształcają 512-bajtowe sektory logiczne na dysk na 4096-bajtowe sektory logiczne prezentowane komputerowi - to jest przeciwieństwo tego, co robi oprogramowanie wbudowane na dysku w zaawansowanym formacie. Nie jestem pozytywny, ale podejrzewam, że niektóre obudowy robią to tylko na dyskach ponad 2 TB. Zarówno schematy partycjonowania MBR, jak i GPT odnoszą się do danych według numerów sektorów, więc zmiana rozmiaru sektora unieważnia dane partycjonowania. Dlatego jeśli przygotujesz dysk w obudowie USB, która tłumaczy w ten sposób, a następnie spróbujesz użyć dysku bezpośrednio (lub odwrotnie), zobaczysz błędy, ponieważ partycje (a nawet dane kopii zapasowej GPT) nie będą gdzie komputer tego oczekuje. To tak, jakby powiedzieć osobie z zasłoniętymi oczami, że „
Rozwiązaniem tego problemu jest przygotowanie dysku i użycie go w jeden sposób - albo użyj obudowy USB, albo bezpośredniego połączenia, a nie obu. Jeśli oba są z jakiegoś powodu konieczne, musisz znaleźć załącznik, który działa bez zastosowania tego rodzaju tłumaczenia.
Aby przetestować moją hipotezę, możesz użyć narzędzia (np.
parted
), Które zgłasza logiczne rozmiary sektorów. Na przykład:Pominąłem garść informacji z tego wyjścia. Ważny szczegół znajduje się w pokazanym tutaj ostatnim wierszu: Logiczny i fizyczny rozmiar sektora to 512 bajtów. Jeśli uruchomisz ten test, a następnie ponownie podłącz dysk w inny sposób i uruchom go ponownie, możesz porównać wyniki. Jeśli rozmiar sektora logicznego zmienia się w zależności od sposobu podłączenia dysku, moja hipoteza jest poprawna i jest źródłem problemu. A przynajmniej jest to jeden problem; mogą być też inni. W szczególności wspomniany
Error synchronizing after initial wipe
błąd może wskazywać na inny problem. OTOH, to może być efekt ubocznyparted
próba odczytania kopii zapasowej danych GPT spoza końca dysku. Tak czy inaczej, jeśli zauważysz zmianę rozmiaru sektora logicznego, powinieneś rozwiązać ten problem przed zajęciem się czymkolwiek innym. Jeśli chcesz podzielić dysk na partycje, ale masz problemy z powoduError synchronizing
błędu, spróbuj użyćgdisk
lubcgdisk
(wgdisk
pakiecie) zamiastparted
lub GParted;gdisk
rodzina jest bardziej odporny na błędy niż jestparted
rodzina.źródło
parted /dev/sdb print
zwraca,512/4096
więc wydaje się, że gParted zgłasza logiczny rozmiar sektora, co wyjaśnia, dlaczego @LiveWireBT widzi 4096 dla tego samego dysku (podłączonego przez USB), a także potwierdza przeczucie jak wyżej.Wprowadzono zmiany zarówno w jądrze systemu Linux, jak i narzędziach obsługujących dyski Advanced Format. Zmiany te zapewniają, że wszystkie partycje na dyskach Advanced Format są odpowiednio wyrównane na granicach sektora 4K. Obsługa jądra dla dysków Advanced Format jest dostępna w wersjach jądra 2.6.31 i nowszych. Obsługa dzielenia i formatowania dysków Advanced Format jest dostępna w następujących narzędziach systemu Linux:
Fdisk: GNU Fdisk to narzędzie wiersza polecenia, które dzieli dyski twarde na partycje. Wersje 1.2.3 i nowsze obsługują dyski Advanced Format.
Parted: GNU Parted to graficzne narzędzie do partycjonowania dysków twardych. Wersje 2.1 i nowsze obsługują dyski Advanced Format.
Natywne dyski 4K (4Kn) mają rozmiar sektora logicznego 4 KB. Nowoczesne systemy operacyjne mogą przechowywać dane na tych dyskach, ale generalnie nie mogą się uruchamiać z tych dysków. Dyski te są zwykle dyskami zewnętrznymi z połączeniem USB.
Aby utworzyć partycję używaną jako nośnik pamięci, wystarczy nacisnąć Ctrl+ Alt+ Tna klawiaturze, aby otworzyć Terminal. Kiedy się otworzy, uruchom poniższe polecenia:
Większość dysków 4k ma rozmiar sektora fizycznego wynoszący 4096 bajtów, dzięki czemu 3 TB może zmieścić się na płytach, ale nadal mają rozmiar sektora logicznego 512B dla zgodności z systemami operacyjnymi, które oczekują, że jeden sektor będzie wynosił 512B. Dlatego, gdy używasz polecenia drukowania w części do wydrukowania szczegółów, mówi logiczny / fizyczny rozmiar sektora 512B / 4096B. To normalne.
Ta „konwersja” jest wykonywana przez inteligencję na samym dysku i jest normalna. Tak to powinno działać.
Jeśli nie widzisz całego 3 TB, najpierw sprawdź w BIOSie, czy nie ogranicza to rozmiaru dysku. Być może potrzebujesz aktualizacji bios do obsługi dysku.
Również użycie parted do utworzenia partycji zaczynającej się od 0, co jest błędem. Musisz uruchomić pierwszą partycję w sektorze 2048, która jest równoważna 1 MB, aby partycje na dysku były wyrównane w celu uzyskania optymalnej wydajności.
Więc zmień jednostkę na MiB, wydrukuj szczegóły dysku, który również wydrukuje rozmiar dysku w MiB i utwórz partycję (jeśli chcesz tylko jedną partycję), zaczynając od 1MiB i kończąc na ostatniej MiB (lub jednej przed ostatnią) .
Na przykład dysk o pojemności 3 TB powinien mieć w rzeczywistości około 2 861 022 MiB. Tak więc tworzenie pojedynczej partycji obejmującej cały dysk na urządzeniu dyskowym o nazwie / dev / sdX byłoby podobne (zamień X na właściwą literę):
Jeśli rozmiar dysku jest mniejszy niż MiB mniejszy niż 2861022, dostosuj położenie końcowe.
Otóż to. Następnie utwórz system plików, który chcesz na partycji.
Źródła i dodatkowe lektury
Dyski sektora 4K i Linux
Sprawdź błąd i zainstaluj dyski 4k w systemie Linux
Fora Ubuntu
źródło
Dopóki ustawisz partycje na wielokrotności 4KB, nic ci nie będzie. W przeciwnym razie nie musisz robić nic specjalnego dla dysków z sektorami fizycznymi 4KB.
Stare oprogramowanie do partycjonowania dopasowało partycje do wielu sektorów 63x512B, co spowoduje pogorszenie wydajności, jeśli napęd ma sektory fizyczne 4KB, ponieważ jest to 31 i pół kilobajta, a NIE wielokrotność 4KB.
Praktycznie żadne oprogramowanie do partycjonowania dostępne teraz w Ubuntu nie będzie już tego robić (chyba że wyraźnie o to poprosisz). Większość domyślnie wyrówna się do wielokrotności 1MiB (sektory 2048 x 512B, czyli również sektory 256 x 4 KB).
Co by się stało, gdybyś go nie wyrównał?
Jeśli nie wyrównasz partycji do wielokrotności 4KB, najgorsze, co się stanie, to utrata wydajności (dość znacząca dla małych plików). Dyski z sektorami 4KB zwykle emulują sektory 512B w celu zapewnienia zgodności z istniejącymi systemami. Więc działają idealnie dobrze, jeśli traktujesz je jak dysk sektora 512B. Ale kiedy piszesz do pojedynczego obszaru 512B, przepisuje cały sektor 4KB.
Dlatego ze względów wydajnościowych ważne jest, aby klastry 4KB używane w systemie plików były wyrównane z sektorami 4KB na dysku, tak aby zapis w jednym klastrze nie powodował konieczności zapisania dwóch sektorów 4KB na dysku.
źródło