AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 439674
Accepted
Evan Carroll
Evan Carroll
Asked: 2018-04-25 00:22:21 +0800 CST2018-04-25 00:22:21 +0800 CST 2018-04-25 00:22:21 +0800 CST

Existe uma alternativa de código aberto gratuita (livre) para memtest86+ que funciona com UEFI?

  • 772

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?

uefi
  • 3 3 respostas
  • 6200 Views

3 respostas

  • Voted
  1. Best Answer
    Stephen Kitt
    2018-04-25T06:56:35+08:002018-04-25T06:56:35+08:00

    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 memtestopção executará uma verificação de memória com até 17 padrões (atualmente). Se você adicionar memtestparâ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=8por 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_MEMTESTna configuração do kernel (tente /boot/config-$(uname -r)). O kernel não reclamará se você especificar memtest, mas não o suporta; quando for executado, você deverá ver uma saída como

    [    0.000000] early_memtest: # of tests: 17
    [    0.000000]   0x0000000000010000 - 0x0000000000099000 pattern 4c494e5558726c7a
    [    0.000000]   0x0000000000100000 - 0x0000000003800000 pattern 4c494e5558726c7a
    [    0.000000]   0x000000000500d000 - 0x0000000007fe0000 pattern 4c494e5558726c7a
    [    0.000000]   0x0000000000010000 - 0x0000000000099000 pattern eeeeeeeeeeeeeeee
    [    0.000000]   0x0000000000100000 - 0x0000000003800000 pattern eeeeeeeeeeeeeeee
    [    0.000000]   0x000000000500d000 - 0x0000000007fe0000 pattern eeeeeeeeeeeeeeee
    [    0.000000]   0x0000000000010000 - 0x0000000000099000 pattern dddddddddddddddd
    [    0.000000]   0x0000000000100000 - 0x0000000003800000 pattern dddddddddddddddd
    [    0.000000]   0x000000000500d000 - 0x0000000007fe0000 pattern dddddddddddddddd
    [    0.000000]   0x0000000000010000 - 0x0000000000099000 pattern bbbbbbbbbbbbbbbb
    [    0.000000]   0x0000000000100000 - 0x0000000003800000 pattern bbbbbbbbbbbbbbbb
    ...
    

    enquanto o kernel inicializa (ou em seus logs de inicialização, posteriormente).

    Você pode usar o QEMU para ter uma ideia disso:

    qemu-system-x86_64 -kernel /boot/vmlinuz-$(uname -r) -append "memtest console=ttyS0" -nographic
    

    (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.

    • 24
  2. Bon Ryu
    2021-02-05T12:50:51+08:002021-02-05T12:50:51+08:00

    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:

    1. Em primeiro lugar, observe que grub2 não mostra memtest86 nem memtest86+: Menu de inicialização do GRUB Isso ocorre apesar do fato de minha pasta de inicialização claramente ter memtest86+. Veja a imagem abaixo. listagem do diretório /boot

    2. Baixar memtest86-usb.zip para o laptop

    3. Envie o arquivo zip para a máquina remota e descompacte-o em algum lugar (por exemplo /home/<username>/memtest86-usb/)

    4. Precisamos analisar o memtest86-usb.img usando fdisk -lu memtest86-usb.imgpara ver seu deslocamento de montagem. fdisk -lu memtest86-usb.img Queremos montar o segundo dispositivo listado na saída acima, memtest86-usb.img2. A imagem acima mostra que cada setor tem 512 Bytes e memtest86-usb.img2começa no setor 514048. Portanto, começa em 514048*512 Bytes=263192576 Bytes.

    5. Crie uma pasta (por exemplo /home/<username/memtest-tmp) e monte-a:

      mkdir /home/<username>/memtest-tmp
      sudo mount -o loop,offset=263192576 /home/<username>/memtest86-usb/memtest86-usb.img
      
    6. Use lsblk para verificar detalhes sobre a partição EFI, bem como o arquivo .img montado. saída lsblk Na imagem acima, observamos o seguinte:

      1. Onde a partição EFI está montada, aqui está em /boot/efi.
        • Observe, no meu servidor, tenho a opção de escolher o modo de inicialização legacyou UEFIna configuração do BIOS. Eu havia definido anteriormente legacye, portanto, a /boot/efipasta não existia. Alterar o modo de inicialização para UEFIme permitiu ver a /boot/efipasta e verificar se a partição EFI está montada lá.
      2. O número do dispositivo. O nome do dispositivo é sd a 1; assim é a letra a . Isso é importante depois.
      3. O número da partição. O nome do dispositivo é sda 1 ; portanto, é a partição 1 . Isso é importante para mais tarde
      4. Como verificação de sanidade, também observamos que memtest86-usb.img2 foi montado em /home/<username>/memtest-tmp.
    7. Em seguida, verificamos se o ponto de montagem contém uma EFI/BOOTpasta` e visualizamos seu conteúdo: insira a descrição da imagem aqui

    8. Em seguida, copiamos e renomeamos simultaneamente /home/<username>/memtest-tmp/EFI/BOOTpara /boot/efi/EFI/memtest86(assumindo a pasta de destino /boot/efit/EFI/memtest86): insira a descrição da imagem aqui

    9. Em seguida, criamos uma entrada do chainloader do GRUB. Crie um arquivo /etc/grub.d/42_memtest, com conteúdo semelhante ao seguinte:

      #!/bin/sh
      exec tail -n +3 $0
      # This file provides an easy way to add custom menu entries.  Simply type the
      # menu entries you want to add after this comment.  Be careful not to change
      # the 'exec tail' line above.
      
      menuentry 'memtest86' {
      insmod part_gpt
      insmod fat
      set root='hd0,gpt1'
      if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1 4418-37D3
      else
          search --no-floppy --fs-uuid --set=root 4418-37D3
      fi
      chainloader /EFI/memtest86/BOOTX64.efi}
      
      

      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...

      1. O a em sd a corresponde ao 0 em hd 0
      2. O 1 em sda 1 corresponde ao 1 em gtp 1 .
      3. Podemos usar o formato gpt* para especificar a partição 1 do dispositivo sda porque o fizemos insmod part_gpt. Podemos reconhecer o tipo de rótulo do disco como gpt usando o fdisk -lcomando e também olhando o /boot/grub/grub.cfgarquivo.

      Observe também que usamos o UUID da partição EFI , que pode ser obtido no blkidcomando que mostra o UUID de todas as partições em sua máquina.

    10. Atualizamos o grub2 com update-grub2.

    11. Reinicie e você deve ver memtest86 no grub2 Menu de inicialização do GRUB com memtest86

    • 4
  3. Jens Timmerman
    2022-06-13T12:30:29+08:002022-06-13T12:30:29+08:00

    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.

    • 2

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/

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    ssh Não é possível negociar: "nenhuma cifra correspondente encontrada", está rejeitando o cbc

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    Como descarregar o módulo do kernel 'nvidia-drm'?

    • 13 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Wong Jia Hau ssh-add retorna com: "Erro ao conectar ao agente: nenhum arquivo ou diretório" 2018-08-24 23:28:13 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST
  • Martin Hope
    Bagas Sanjaya Por que o Linux usa LF como caractere de nova linha? 2017-12-20 05:48:21 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve