Utilizarea NVME SSD ca unitate de sistem pe computere cu BIOS vechi și sistem de operare Linux

Utilizarea NVME SSD ca unitate de sistem pe computere cu BIOS vechi și sistem de operare Linux

Cu o configurare adecvată, este posibil să se booteze de pe un SSD NVME chiar și pe sisteme mai vechi. Este presupus că sistemul de operare (SO) poate lucra cu SSD-uri NVME. Mă refer exact la bootarea sistemului de operare, deoarece cu driverele disponibile în SO, SSD-ul NVME este vizibil în SO după bootare și poate fi utilizat. Nu este nevoie de software suplimentar (SO) pentru Linux. Pentru sistemele de operare din familia BSD și alte Unix-uri, metoda este foarte probabil să funcționeze și aici.

Pentru a boota de pe orice dispozitiv de stocare, este necesar ca în programul de bootare inițial (PUE), în BIOS sau EFI (UEFI), să existe drivere pentru acel dispozitiv. SSD-urile NVME sunt dispozitive destul de noi în comparație cu BIOS-ul, iar în PUE-ul firmware-urilor plăcilor de bază vechi nu există astfel de drivere. În EFI, fără suport pentru NVME SSD, se poate adăuga cod corespunzător, iar atunci va fi posibilă o funcționare completă cu acest dispozitiv — se poate instala sistemul de operare și încărca. Pentru sistemele vechi cu așa-numitul „legacy BIOS”, bootarea SO-ului în acest mod este puțin probabil să funcționeze. Totuși, aceasta se poate ocoli.

Cum să procedăm

Am folosit openSUSE Leap 15.1. Pentru alte distribuții Linux, pașii vor fi aproximativ aceiași.

1. Pregătim computerul pentru instalarea sistemului de operare.
Este nevoie de un PC sau un server cu un slot PCI-E 4x sau mai lung, nu contează ce versiune, PCI-E 1.0 este suficient. Desigur, cu cât versiunea PCI-E este mai nouă, cu atât viteza va fi mai mare. Și, desigur, un SSD NVME cu adaptor M.2 — PCI-E 4x.
De asemenea, este nevoie de un dispozitiv de stocare cu o capacitate de 300 MB sau mai mare, care să fie vizibil din BIOS și de pe care se poate boota sistemul de operare. Acesta poate fi un HDD cu conectare IDE, SATA, SCSI sau SAS. Sau un stick USB, sau un card de memorie. Pe un discheta — nu va încăpea. Un disc CD-ROM nu va funcționa, va fi necesară rescrierea. DVD-RAM — nu am idee. Să numim această chestie „dispozitiv de stocare legacy BIOS”.

2. Bootăm Linux pentru instalare (de pe disc optic, stick USB sau altceva).

3. La partiționarea discului, vom distribui SO-ul pe dispozitivele de stocare disponibile:
3.1. Vom crea o partiție pentru încărcătorul GRUB la începutul „discului BIOS legacy” cu o dimensiune de 8 MB. Voi menționa că aici se utilizează o caracteristică a openSUSE — GRUB pe o partiție separată. Pentru openSUSE, sistemul de fișiere (FS) BTRFS este utilizat în mod implicit. Dacă se plasează GRUB pe o partiție cu FS BTRFS, sistemul nu se va încărca. Prin urmare, se folosește o partiție separată. Puteți plasa GRUB în alt loc, atâta timp cât se încarcă.
3.2. După partiția cu GRUB, vom crea o partiție pentru o parte din folderul sistemului („rădăcină”), și anume pentru „\/boot\/”, cu o dimensiune de 300 MB.
3.3. Bunurile rămase — restul folderului sistemului, partiția pentru swap, partiția utilizatorului „\/home\/” (dacă ați decis să o creați) pot fi plasate pe NVME SSD.

După instalare, sistemul încarcă GRUB, care încarcă fișierele din \/boot\/, după care NVME SSD devine disponibil, iar apoi urmează încărcarea sistemului de pe NVME SSD.
În practică, am obținut o accelerare semnificativă.

Cerințele de capacitate pentru „discul BIOS legacy”: 8 MB pentru partiția GRUB — aceasta este implicită, și undeva de la 200 MB pentru \/boot\/. Am luat 300 MB ca rezervă. La actualizarea kernel-ului (și la instalarea celor noi) Linux va completa partiția \/boot\/ cu fișiere noi.

Evaluarea vitezei și costului

Costul NVME SSD de 128 GB — aproximativ de la 2000 lei.
Costul adaptorului M.2 — PCI-E 4x — aproximativ de la 500 lei.
De asemenea, sunt disponibile două adaptoare M.2 — PCI-E 16x pentru patru unități NVME SSD, cu un preț în jurul a 3000 lei — dacă e cineva interesat.

Vitezele maxime:
PCI-E 3.0 4x aproximativ 3900 MB/s
PCI-E 2.0 4x 2000 MB/s
PCI-E 1.0 4x 1000 MB/s
Unitățile cu PCI-E 3.0 4x ating în practică viteze de aproximativ 3500 MB/s.
Se poate presupune că viteza realizabilă va fi următoarea:
PCI-E 3.0 4x aproximativ 3500 MB/s
PCI-E 2.0 4x aproximativ 1800 MB/s
PCI-E 1.0 4x aproximativ 900 MB/s

Ceea ce este mai rapid decât SATA 600 MB/s. Viteza realizabilă pentru SATA 600 MB/s — aproximativ 550 MB/s.
În plus, pe plăcile de bază mai vechi, viteza SATA a controlerului integrat poate să nu fie 600 MB/s, ci 300 MB/s sau 150 MB/s. Aici controlerul integrat = controler SATA, integrat în puntea de sud a chipset-ului.

Voi menționa că pentru NVME SSD va funcționa NCQ, iar pe vechile controlere integrate acesta ar putea să nu existe.

Am efectuat calcule pentru PCI-E 4x, totuși unele unități au magistrala PCI-E 2x. Acest lucru este suficient pentru PCI-E 3.0, dar pentru standardele mai vechi PCI-E — 2.0 și 1.0 — asemenea NVME SSD ar fi mai bine să nu fie folosite. De asemenea, o unitate cu buffer sub formă de chip de memorie va fi mai rapidă decât una fără.

Pentru cei care doresc să renunțe complet la controlerul SATA integrat, recomand să folosească controlerul Asmedia ASM 106x (1061 și altele), care oferă două porturi SATA 600 (interne sau externe). Funcționează foarte bine (după actualizarea firmware-ului), iar în modul AHCI suportă NCQ. Se conectează prin interfața PCI-E 2.0 1x.

Viteza maximă este:
PCI-E 2.0 1x 500 MB/s
PCI-E 1.0 1x 250 MB/s
Viteza realizabilă va fi:
PCI-E 2.0 1x 460 MB/s
PCI-E 1.0 1x 280 MB/s

Aceasta este suficientă pentru un SSD SATA sau două HDD-uri.

Deficiențe observate

1. Nu se citesc parametrii SMART de la SSD-uri NVME, există doar informații generale despre producător, numărul de serie etc. Poate din cauza unei plăci de bază prea vechi (PB). Pentru experimentele mele fără milă, am folosit cea mai veche PB pe care am găsit-o, cu chipset nForce4.

2. TRIM ar trebui să funcționeze, dar trebuie verificat.

Concluzie

Mai există și alte opțiuni: să cumpărați un controler SAS cu slot PCI-E 4x sau 8x (există 16x sau 32x?). Cu toate acestea, dacă sunt ieftine, suportă SAS 600, dar SATA 300, iar cele scumpe vor fi mai costisitoare și mai lente decât metoda propusă mai sus.

Pentru utilizarea cu M$ Windows, se poate instala software suplimentar - bootloader cu drivere încorporate pentru SSD-uri NVME.

Vezi aici:
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

Propun cititorului să evaluați singur dacă este necesară o astfel de utilizare a SSD-urilor NVME sau este mai bine să cumpărați o placă de bază nouă (+ procesor + memorie) cu un slot M.2 PCI-E existent și suport pentru bootare de pe SSD-uri NVME în EFI.

Sursa: habr.com

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster