Użycie dysku NVME SSD jako nośnika systemowego w komputerach z starym BIOS-em i systemem Linux

Użycie dysku NVME SSD jako nośnika systemowego w komputerach z starym BIOS-em i systemem Linux

Po odpowiedniej konfiguracji można uruchomić system z nośnika NVME SSD nawet w starych systemach. Zakłada się, że system operacyjny (OS) potrafi współpracować z NVME SSD. Rozważam tutaj uruchamianie systemu operacyjnego, ponieważ przy posiadanych w systemie sterownikach NVME SSD jest widoczny w systemie po załadowaniu i może być używany. Nie potrzeba dodatkowego oprogramowania (SO) dla Linuksa. Dla systemów z rodziny BSD i innych uniksów ta metoda prawdopodobnie również będzie odpowiednia.

Aby uruchomić system z jakiegokolwiek nośnika, w programie wstępnego rozruchu (PBR), w BIOS-ie lub EFI (UEFI) muszą znajdować się sterowniki dla danego urządzenia. Nośniki NVME SSD są stosunkowo nowymi urządzeniami w porównaniu z BIOS-em, a w PBR starych płyt głównych brakuje takich sterowników. W EFI bez wsparcia dla NVME SSD można dodać odpowiedni kod, co umożliwi pełną współpracę z tym urządzeniem — możliwe będzie zainstalowanie systemu operacyjnego i jego uruchomienie. Dla starych systemów z tzw. „legacy BIOS” uruchomienie systemu w ten sposób prawdopodobnie nie będzie możliwe. Jednak można to obejść.

Jak to zrobić

Użyłem openSUSE Leap 15.1. Dla innych dystrybucji Linuksa procedura będzie mniej więcej taka sama.

1. Przygotujemy komputer do instalacji systemu operacyjnego.
Potrzebny jest komputer lub serwer z wolnym gniazdem PCI-E 4x lub dłuższym, niezależnie od wersji; wystarczy PCI-E 1.0. Oczywiście, im nowsza wersja PCI-E, tym wyższa będzie prędkość. No i oczywiście NVME SSD z adapterem M.2 — PCI-E 4x.
Potrzebny jest także jakiś nośnik o pojemności 300 MB lub większej, który jest widoczny w BIOS-ie i z którego można uruchomić system. Może to być HDD z podłączeniem przez IDE, SATA, SCSI, SAS. Lub pamięć USB, lub karta pamięci. Na dyskietkę się nie zmieści. Dysk CD-ROM nie nadaje się, wymagana będzie możliwość zapisu. DVD-RAM — nie mam pojęcia. Umownie nazwijmy ten nośnik «legacy BIOS nośnikiem».

2. Ładujemy Linuksa do instalacji (z dysku optycznego lub bootowalnej pamięci flash itp.).

3. Podczas partycjonowania dysku rozdzielimy system operacyjny pomiędzy dostępne nośniki:
3.1. Stworzymy partycję dla bootloadera GRUB na początku „nośnika legacy BIOS” o rozmiarze 8 MB. Zaznaczam, że tutaj wykorzystujemy specyfikę openSUSE — GRUB na osobnej partycji. Dla openSUSE domyślnie używany jest system plików (FS) BTRFS. Jeśli umieścić GRUB na partycji z FS BTRFS, system się nie załaduje. Dlatego używamy oddzielnej partycji. Możesz umieścić GRUB w innym miejscu, wystarczy, żeby się ładował.
3.2. Po partycji z GRUB utworzymy partycję z częścią folderu systemowego („root”), a konkretnie z „/boot/”, o rozmiarze 300 MB.
3.3. Pozostała przestrzeń — reszta folderu systemowego, partycja swap, partycja użytkownika „/home/” (jeśli zdecydowałeś się ją utworzyć) mogą być umieszczone na NVME SSD.

Po zainstalowaniu system ładuje GRUB, który ładuje pliki z /boot/, następnie NVME SSD staje się dostępny, a następnie następuje ładowanie systemu z NVME SSD.
W praktyce uzyskałem znaczne przyspieszenie.

Wymagania dotyczące pojemności „nośnika legacy BIOS”: 8 MB dla partycji GRUB — to domyślnie, i od 200 MB dla /boot/. 300 MB wziąłem z zapasem. Przy aktualizacji jądra (i przy instalacji nowych) system Linux będzie uzupełniał partycję /boot/ nowymi plikami.

Ocena prędkości i kosztów.

Koszt NVME SSD 128 GB — około od 2000 zł.
Koszt przejściówki M.2 — PCI-E 4x — około od 500 zł.
Są również w sprzedaży przejściówki M.2 — PCI-E 16x na cztery nośniki NVME SSD, w cenie gdzieś od 3000 zł — jeśli to kogoś interesuje.

Maksymalne prędkości:
PCI-E 3.0 4x około 3900 MB/s.
PCI-E 2.0 4x 2000 MB/s.
PCI-E 1.0 4x 1000 MB/s.
Nośniki z PCI-E 3.0 4x w praktyce osiągają prędkość około 3500 MB/s.
Można przypuszczać, że osiągalna prędkość będzie taka:
PCI-E 3.0 4x około 3500 MB/s.
PCI-E 2.0 4x około 1800 MB/s.
PCI-E 1.0 4x około 900 MB/s.

Co jest szybsze niż SATA 600 MB/s. Osiągalna prędkość dla SATA 600 MB/s — około 550 MB/s.
Jednocześnie na starszych płytach głównych prędkość kontrolera SATA może wynosić nie 600 MB/s, a 300 MB/s lub 150 MB/s. Tutaj kontroler onboard = kontroler SATA, zintegrowany z mostkiem południowym chipsetu.

Zaznaczam, że dla NVME SSD będzie działać NCQ, a w starszych kontrolerach onboard może tego nie być.

Dokonałem obliczeń dla PCI-E 4x, jednak niektóre nośniki mają szynę PCI-E 2x. To wystarcza dla PCI-E 3.0, ale dla starszych standardów PCI-E — 2.0 i 1.0 — takie NVME SSD lepiej nie kupować. Ponadto nośnik z buforem w postaci układu pamięci będzie szybszy niż bez tego.

Dla tych, którzy chcą całkowicie zrezygnować z wbudowanego kontrolera SATA, polecam użycie kontrolera Asmedia ASM 106x (1061 i inni), który oferuje dwa porty SATA 600 (wewnętrzne lub zewnętrzne). Działa on bardzo dobrze (po aktualizacji oprogramowania), w trybie AHCI obsługuje NCQ. Podłącza się przez szynę PCI-E 2.0 1x.

Jego maksymalna prędkość:
PCI-E 2.0 1x 500 MB/s
PCI-E 1.0 1x 250 MB/s
Osiągalna prędkość wyniesie:
PCI-E 2.0 1x 460 MB/s
PCI-E 1.0 1x 280 MB/s

To wystarczy na jeden SSD SATA lub dwa HDD.

Zauważone wady

1. Nie odczytuje parametrów SMART z SSD NVME, są tylko ogólne dane dotyczące producenta, numeru seryjnego itd. Możliwe, że przez zbyt starą płytę główną (m.p.). Do swoich wstrętnych eksperymentów użyłem najstarszej m.p., jaką mogłem znaleźć, z chipsetem nForce4.

2. TRIM powinien działać, ale trzeba to sprawdzić.

Podsumowanie

Są także inne możliwości: zakup kontrolera SAS z gniazdem PCI-E 4x lub 8x (czy są 16x lub 32x?). Jednak jeśli są tanie, to obsługują SAS 600, ale SATA 300, a drogie będą droższe i wolniejsze niż proponowany powyżej sposób.

Aby używać z M$ Windows, można zainstalować dodatkowe oprogramowanie - bootloader z wbudowanymi sterownikami dla SSD NVME.

Zobacz tutaj:
www.win-raid.com/t871f50-Guide-How-to-get-full-NVMe-support-for-all-Systems-with-an-AMI-UEFI-BIOS.html
www.win-raid.com/t3286f50-Guide-NVMe-boot-for-systems-with-legacy-BIOS-and-older-UEFI-DUET-REFIND.html
forum.overclockers.ua/viewtopic.php?t=185732
pcportal.org/forum/51-9843-1
mrlithium.blogspot.com/2015/12/how-to-boot-nvme-ssd-from-legacy-bios.html

Zachęcam czytelnika do samodzielnego ocenienia, czy takie zastosowanie NVME SSD jest dla niego odpowiednie, czy lepiej kupić nową płytę główną (+ procesor + pamięć) z istniejącym złączem M.2 PCI-E i wsparciem dla rozruchu z SSD NVME w EFI.

Źródło: habr.com

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster