Usando um SSD NVME como uma unidade de sistema em computadores com um BIOS antigo e sistema operacional Linux

Usando um SSD NVME como uma unidade de sistema em computadores com um BIOS antigo e sistema operacional Linux

Se configurado corretamente, você pode inicializar a partir de um SSD NVME mesmo em sistemas mais antigos. Presume-se que o sistema operacional (SO) seja capaz de funcionar com SSD NVME. Estou pensando em inicializar o sistema operacional, porque com os drivers disponíveis no sistema operacional, o NVME SSD fica visível no sistema operacional após a inicialização e pode ser usado. Software adicional (software) para Linux não é necessário. Para sistemas operacionais da família BSD e outros Unixes, o método provavelmente também é adequado.

Para inicializar a partir de qualquer unidade, o bootloader (BOP), BIOS ou EFI (UEFI) deve conter drivers para este dispositivo. As unidades SSD NVME são dispositivos bastante novos em comparação com o BIOS, e não existem tais drivers no firmware de placas-mãe mais antigas. Em EFI sem suporte a SSD NVME, você pode adicionar o código apropriado e, em seguida, torna-se possível trabalhar totalmente com este dispositivo - você pode instalar o sistema operacional e inicializá-lo. Para sistemas antigos com os chamados. É improvável que o "BIOS herdado" inicialize o sistema operacional. No entanto, isso pode ser contornado.

Como

Eu usei o openSUSE Leap 15.1. Para outros Linux, as etapas serão as mesmas.

1. Vamos preparar o computador para instalar o sistema operacional.
Você precisa de um PC ou servidor com um slot PCI-E 4x ou maior gratuito, não importa qual versão, PCI-E 1.0 é suficiente. Obviamente, quanto mais recente a versão PCI-E, mais rápida será a velocidade. Bem, na verdade, SSD NVME com adaptador M.2 - PCI-E 4x.
Você também precisa de algum tipo de unidade com capacidade de 300 MB ou mais, visível no BIOS e da qual você pode carregar o sistema operacional. Pode ser um HDD com conexão IDE, SATA, SCSI. S.A.S. Ou unidade flash USB ou cartão de memória. Não vai caber em um disquete. Um CD-ROM não funcionará e precisará ser reescrito. DVD-RAM - não faço ideia. Chamaremos isso condicionalmente de "unidade de BIOS herdada".

2. Carregamos o Linux para instalação (a partir de um disco óptico ou de uma unidade flash inicializável, etc.).

3. Ao particionar um disco, distribua o sistema operacional entre as unidades disponíveis:
3.1. Vamos criar uma partição para o carregador de inicialização GRUB no início do "BIOS da unidade herdada" com um tamanho de 8 MB. Observo que aqui o recurso openSUSE é usado - GRUB em uma partição separada. Para o openSUSE, o sistema de arquivos padrão (FS) é o BTRFS. Se você colocar o GRUB em uma partição com um sistema de arquivos BTRFS, o sistema não inicializará. Portanto, uma seção separada é usada. Você pode colocar o GRUB em outro lugar, desde que inicialize.
3.2. Após a partição com GRUB, criaremos uma partição com parte da pasta do sistema (“raiz”), nomeadamente com “/boot/”, com 300 MB de tamanho.
3.3. O resto da bondade - o resto da pasta do sistema, a partição swap, a partição de usuário "/home/" (se você decidir criar uma) pode ser colocada no SSD NVME.

Após a instalação, o sistema carrega o GRUB, que carrega os arquivos de /boot/, após o qual o SSD NVME fica disponível e, em seguida, o sistema inicializa a partir do SSD NVME.
Na prática, obtive uma aceleração significativa.

Requisitos de capacidade para um "BIOS de unidade legada": 8 MB para uma partição GRUB é o padrão e qualquer valor entre 200 MB para /boot/. 300 MB tirei com margem. Ao atualizar o kernel (e ao instalar novos), o Linux reabastecerá a partição /boot/ com novos arquivos.

Estimando velocidade e custo

O custo do NVME SSD de 128 GB - de cerca de 2000 rublos.
O custo de um adaptador M.2 - PCI-E 4x - de cerca de 500 rublos.
Adaptadores M.2 para PCI-E 16x para quatro unidades SSD NVME também estão à venda, com preços em torno de 3000 r. - se alguém precisar.

Limite de velocidade:
PCI-E 3.0 4x cerca de 3900 MB/s
PCI-E 2.0 4x 2000 MB/s
PCI-E 1.0 4x 1000 MB/s
Drives com PCI-E 3.0 4x na prática atingem velocidades de cerca de 3500 MB/s.
Pode-se supor que a velocidade alcançável será a seguinte:
PCI-E 3.0 4x cerca de 3500 MB/s
PCI-E 2.0 4x cerca de 1800 MB/s
PCI-E 1.0 4x cerca de 900 MB/s

Que é mais rápido que SATA 600 MB/s. A velocidade alcançável para SATA 600 MB/s é de cerca de 550 MB/s.
Ao mesmo tempo, em placas-mãe mais antigas, a velocidade SATA do controlador integrado pode não ser de 600 MB / s, mas de 300 MB / s ou 150 MB / s. Aqui, controlador integrado = controlador SATA embutido na ponte sul do chipset.

Observo que o NCQ funcionará para SSDs NVME, enquanto os controladores integrados mais antigos podem não ter isso.

Fiz os cálculos para PCI-E 4x, porém, alguns drives possuem barramento PCI-E 2x. Isso é suficiente para o PCI-E 3.0, mas para os padrões PCI-E mais antigos - 2.0 e 1.0 - é melhor não usar esses SSDs NVME. Além disso, uma unidade com um buffer na forma de um chip de memória será mais rápida do que sem ela.

Para quem deseja abandonar completamente o controlador SATA on-board, aconselho usar o controlador Asmedia ASM 106x (1061, etc.), que fornece duas portas SATA 600 (internas ou externas). Funciona muito bem (após uma atualização de firmware), no modo AHCI suporta NCQ. Conectado via barramento PCI-E 2.0 1x.

Sua velocidade máxima:
PCI-E 2.0 1x 500 MB/s
PCI-E 1.0 1x 250 MB/s
A velocidade alcançável será:
PCI-E 2.0 1x 460 MB/s
PCI-E 1.0 1x 280 MB/s

Isso é suficiente para um SSD SATA ou dois discos rígidos.

Deficiências notadas

1. Não lido Parâmetros SMART com NVME SSD, há apenas informações gerais sobre o fabricante, número de série, etc. Talvez devido à placa-mãe muito antiga (mp). Para meus experimentos inumanos, usei o mp mais antigo que pude encontrar, com um chipset nForce4.

2. O TRIM deve funcionar, mas precisa ser verificado.

Conclusão

Existem outras opções: compre um controlador SAS com slot PCI-E 4x ou 8x (existem 16x ou 32x?). Porém, se forem baratos, suportam SAS 600, mas SATA 300, e os caros serão mais caros e lentos que o método proposto acima.

Para uso com M $ Windows, você pode instalar software adicional - um gerenciador de inicialização com drivers integrados para SSD NVME.

Veja aqui:
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

Convido o leitor a avaliar por si mesmo se precisa de tal aplicação do SSD NVME, ou seria melhor comprar uma nova placa-mãe (+ processador + memória) com um conector M.2 PCI-E existente e suporte para inicializar a partir do NVME SSD em EFI.

Fonte: habr.com

Adicionar um comentário