Utilizzo di un'unità SSD NVME come unità di sistema su computer con un vecchio BIOS e sistema operativo Linux

Utilizzo di un'unità SSD NVME come unità di sistema su computer con un vecchio BIOS e sistema operativo Linux

Se configurato correttamente, puoi eseguire l'avvio da un'unità SSD NVME anche su sistemi meno recenti. Si presume che il sistema operativo (SO) sia in grado di funzionare con NVME SSD. Sto prendendo in considerazione l'avvio del sistema operativo, perché con i driver disponibili nel sistema operativo, l'SSD NVME è visibile nel sistema operativo dopo l'avvio e può essere utilizzato. Non è richiesto software aggiuntivo (software) per Linux. Per i sistemi operativi della famiglia BSD e altri Unix, il metodo è molto probabilmente adatto anche.

Per eseguire l'avvio da qualsiasi unità, il bootloader (BOP), il BIOS o EFI (UEFI) devono contenere i driver per questo dispositivo. Le unità SSD NVME sono dispositivi abbastanza nuovi rispetto al BIOS e non ci sono driver di questo tipo nel firmware del firmware delle schede madri meno recenti. In EFI senza supporto SSD NVME, puoi aggiungere il codice appropriato, quindi diventa possibile lavorare completamente con questo dispositivo: puoi installare il sistema operativo e avviarlo. Per i vecchi sistemi con i cosiddetti. È improbabile che il "BIOS legacy" che avvia il sistema operativo lo faccia. Tuttavia, questo può essere aggirato.

Как делать

Ho usato openSUSE Leap 15.1. Per altri Linux, i passaggi saranno più o meno gli stessi.

1. Prepariamo il computer per installare il sistema operativo.
È necessario un PC o un server con uno slot PCI-E 4x libero o più lungo, indipendentemente dalla versione, PCI-E 1.0 è sufficiente. Naturalmente, più recente è la versione PCI-E, maggiore sarà la velocità. Bene, in realtà, SSD NVME con adattatore M.2 - PCI-E 4x.
È inoltre necessario un tipo di unità con una capacità di almeno 300 MB, visibile dal BIOS e dalla quale è possibile caricare il sistema operativo. Può essere un HDD con connessione IDE, SATA, SCSI. S.A.S. O un'unità flash USB o una scheda di memoria. Non entra in un floppy disk. Un CD-ROM non funzionerà e dovrà essere riscritto. DVD-RAM - non ne ho idea. Chiameremo condizionalmente questa cosa "unità BIOS legacy".

2. Carichiamo Linux per l'installazione (da un disco ottico o un'unità flash avviabile, ecc.).

3. Quando si partiziona un disco, distribuire il sistema operativo tra le unità disponibili:
3.1. Creiamo una partizione per il bootloader GRUB all'inizio del "BIOS dell'unità legacy" con una dimensione di 8 MB. Noto che qui viene utilizzata la funzionalità openSUSE: GRUB su una partizione separata. Per openSUSE, il file system predefinito (FS) è BTRFS. Se si posiziona GRUB su una partizione con un file system BTRFS, il sistema non si avvierà. Pertanto, viene utilizzata una sezione separata. Puoi posizionare GRUB altrove, purché si avvii.
3.2. Dopo la partizione con GRUB, creeremo una partizione con parte della cartella di sistema (“root”), ovvero con “/boot/”, di 300 MB di dimensione.
3.3. Il resto della bontà: il resto della cartella di sistema, la partizione di swap, la partizione utente "/home/" (se decidi di crearne una) può essere posizionata sull'SSD NVME.

Dopo l'installazione, il sistema carica GRUB, che carica i file da /boot/, dopodiché l'SSD NVME diventa disponibile, quindi il sistema si avvia dall'SSD NVME.
In pratica, ho ottenuto una notevole accelerazione.

Requisiti di capacità per un "BIOS di unità legacy": 8 MB per una partizione GRUB è l'impostazione predefinita e ovunque da 200 MB per /boot/. 300 MB che ho preso con un margine. Quando si aggiorna il kernel (e quando si installano quelli nuovi), Linux riempirà la partizione /boot/ con nuovi file.

Stima velocità e costi

Il costo di NVME SSD 128 GB - da circa 2000 rubli.
Il costo di un adattatore M.2 - PCI-E 4x - da circa 500 rubli.
Sono in vendita anche adattatori da M.2 a PCI-E 16x per quattro unità SSD NVME, con un prezzo da 3000 r. - se qualcuno ne ha bisogno.

Velocità limite:
PCI-E 3.0 4x circa 3900 MB/s
PCI-E 2.0 4x 2000 MB/sec
PCI-E 1.0 4x 1000 MB/sec
Le unità con PCI-E 3.0 4x in pratica raggiungono velocità di circa 3500 MB / s.
Si può ipotizzare che la velocità raggiungibile sarà la seguente:
PCI-E 3.0 4x circa 3500 MB/s
PCI-E 2.0 4x circa 1800 MB/s
PCI-E 1.0 4x circa 900 MB/s

Che è più veloce di SATA 600 MB/s. La velocità raggiungibile per SATA 600 MB/s è di circa 550 MB/s.
Allo stesso tempo, sulle schede madri più vecchie, la velocità SATA del controller integrato potrebbe non essere di 600 MB / s, ma di 300 MB / so 150 MB / s. Qui controller integrato = controller SATA integrato nel southbridge del chipset.

Noto che NCQ funzionerà per gli SSD NVME, mentre i controller di bordo meno recenti potrebbero non averlo.

Ho fatto i calcoli per PCI-E 4x, tuttavia, alcune unità hanno un bus PCI-E 2x. Questo è sufficiente per PCI-E 3.0, ma per i vecchi standard PCI-E - 2.0 e 1.0 - è meglio non prendere tali SSD NVME. Inoltre, un'unità con un buffer sotto forma di chip di memoria sarà più veloce che senza di essa.

Per coloro che vogliono abbandonare completamente il controller SATA integrato, consiglio di utilizzare il controller Asmedia ASM 106x (1061, ecc.), Che fornisce due porte SATA 600 (interne o esterne). Funziona abbastanza bene (dopo un aggiornamento del firmware), in modalità AHCI supporta NCQ. Collegato tramite bus PCI-E 2.0 1x.

La sua velocità massima:
PCI-E 2.0 1x 500 MB/sec
PCI-E 1.0 1x 250 MB/sec
La velocità raggiungibile sarà:
PCI-E 2.0 1x 460 MB/sec
PCI-E 1.0 1x 280 MB/sec

Questo è sufficiente per un SSD SATA o due dischi rigidi.

Carenze rilevate

1. Non letto Parametri SMART con NVME SSD, ci sono solo informazioni generali sul produttore, numero di serie, ecc. Forse a causa di una scheda madre troppo vecchia (mp). Per i miei esperimenti disumani, ho usato il più vecchio mp che ho trovato, con un chipset nForce4.

2. TRIM dovrebbe funzionare, ma deve essere controllato.

conclusione

Ci sono altre opzioni: acquista un controller SAS con uno slot PCI-E 4x o 8x (ci sono 16x o 32x?). Tuttavia, se sono economici, supportano SAS 600, ma SATA 300 e quelli costosi saranno più costosi e più lenti del metodo proposto sopra.

Per l'utilizzo con M $ Windows, è possibile installare software aggiuntivo: un bootloader con driver integrati per SSD NVME.

Vedere qui:
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

Invito il lettore a valutare da solo se ha bisogno di una tale applicazione di NVME SSD, o sarebbe meglio acquistare una nuova scheda madre (+ processore + memoria) con un connettore PCI-E M.2 esistente e supporto per l'avvio da NVME SSD nell'EFI.

Fonte: habr.com

Aggiungi un commento