Tendo em vista que memtest86+ não funciona com UEFI , existe uma alternativa de código aberto ou algo que eu possa usar do grub para testar a memória?
relate perguntas
-
A entrada efibootmgr Ubuntu 0000 reaparece após a reinicialização
-
Como fazer um backup incremental e pesquisável completo de todo o disco rígido e tabela de partições?
-
Inicialização de rede (PXE) do BIOS/EFI
-
Red Hat 7.4: Como injetar o arquivo kickstart na mídia USB para o sistema somente UEFI?
-
entradas de variável efi em /sys/firmware/efi/efivars/
Sim, existe, e agora é o próprio Memtest86+ v6 . Esta é uma nova versão do Memtest86+, baseada no PCMemTest , que é uma reescrita do Memtest86+ que pode ser inicializado a partir do UEFI. Seus autores ainda o rotulam como não pronto para produção, mas funciona em muitas configurações.
Os binários do Memtest86+ v6 estão disponíveis em memtest.org .
Como alternativa, o próprio kernel do Linux contém uma ferramenta de teste de memória: a
memtest
opção executará uma verificação de memória com até 17 padrões (atualmente). Se você adicionarmemtest
parâmetros de inicialização do kernel, ele executará todos os testes na inicialização e reservará todos os endereços com falha para que não sejam usados. Se você deseja menos testes, pode especificar o número de padrões (memtest=8
por exemplo).Isso não é tão extenso quanto os testes do Memtest86+, mas ainda dá bons resultados.
Alguns kernels de distribuição não incluem esse recurso; você pode verificar se está disponível procurando
CONFIG_MEMTEST
na configuração do kernel (tente/boot/config-$(uname -r)
). O kernel não reclamará se você especificarmemtest
, mas não o suporta; quando for executado, você deverá ver uma saída comoenquanto o kernel inicializa (ou em seus logs de inicialização, posteriormente).
Você pode usar o QEMU para ter uma ideia disso:
(ou o que
qemu-system-...
for apropriado para sua arquitetura) e procure por “early_memtest”. Para sair do QEMU após o kernel entrar em pânico, pressione Ctrla, c, q, Enter.Você pode adicionar a versão freeware (cerveja grátis) do memtest86 mais recente ao UEFI Grub2 no Ubuntu.
Com base em um tutorial , executei as seguintes etapas em um servidor Ubuntu 16.04 remoto para adicionar memtest86 ao UEFI Grub2:
Em primeiro lugar, observe que grub2 não mostra memtest86 nem memtest86+: Isso ocorre apesar do fato de minha pasta de inicialização claramente ter memtest86+. Veja a imagem abaixo.
Baixar memtest86-usb.zip para o laptop
Envie o arquivo zip para a máquina remota e descompacte-o em algum lugar (por exemplo
/home/<username>/memtest86-usb/
)Precisamos analisar o memtest86-usb.img usando
fdisk -lu memtest86-usb.img
para ver seu deslocamento de montagem. Queremos montar o segundo dispositivo listado na saída acima,memtest86-usb.img2
. A imagem acima mostra que cada setor tem 512 Bytes ememtest86-usb.img2
começa no setor 514048. Portanto, começa em 514048*512 Bytes=263192576 Bytes.Crie uma pasta (por exemplo
/home/<username/memtest-tmp
) e monte-a:Use lsblk para verificar detalhes sobre a partição EFI, bem como o arquivo .img montado. Na imagem acima, observamos o seguinte:
/boot/efi
.legacy
ouUEFI
na configuração do BIOS. Eu havia definido anteriormentelegacy
e, portanto, a/boot/efi
pasta não existia. Alterar o modo de inicialização paraUEFI
me permitiu ver a/boot/efi
pasta e verificar se a partição EFI está montada lá./home/<username>/memtest-tmp
.Em seguida, verificamos se o ponto de montagem contém uma
EFI/BOOT
pasta` e visualizamos seu conteúdo:Em seguida, copiamos e renomeamos simultaneamente
/home/<username>/memtest-tmp/EFI/BOOT
para/boot/efi/EFI/memtest86
(assumindo a pasta de destino/boot/efit/EFI/memtest86
):Em seguida, criamos uma entrada do chainloader do GRUB. Crie um arquivo /etc/grub.d/42_memtest, com conteúdo semelhante ao seguinte:
Na imagem acima, fizemos
set root='hd0,gtp1
, porque nossa partição EFI foi anotada como device name = sda1 . De acordo com a convenção do grub2...insmod part_gpt
. Podemos reconhecer o tipo de rótulo do disco como gpt usando ofdisk -l
comando e também olhando o/boot/grub/grub.cfg
arquivo.Observe também que usamos o UUID da partição EFI , que pode ser obtido no
blkid
comando que mostra o UUID de todas as partições em sua máquina.Atualizamos o grub2 com
update-grub2
.Reinicie e você deve ver memtest86 no grub2
Memtest 6 deve funcionar com uefi. Uma versão beta está disponível em memtest.org
o código está disponível em https://github.com/memtest86plus/memtest86plus
Memtest86+ v6.00 Beta 2 Lançado: 2022-06-03 v6 AINDA NÃO ESTÁ PRONTO para produção! Por favor, considere o código real como experimental e espere travamentos e congelamentos. A primeira versão não-beta é esperada para este verão.
Mesmo sendo beta, eu experimentei, baixei o iso, dd'ed para um pendrive e consegui inicializá-lo a partir do uefi e rodou o memtest como estou acostumado.