반면memtest86+는 UEFI에서 작동하지 않습니다, 오픈 소스 대안이 있습니까? 아니면 grub을 사용하여 메모리를 테스트할 수 있습니까?
답변1
네, 있어요, 그리고 지금이에요메모리 테스트 86+ v6그 자체. 이것은 Memtest86+의 새로운 버전입니다.PCM 테스트, 이는 UEFI에서 부팅할 수 있는 Memtest86+를 다시 작성한 것입니다. 작성자는 아직 프로덕션용으로 사용할 준비가 되지 않았다고 표시하지만 다양한 구성에서 작동합니다.
Memtest86+ v6용 바이너리를 사용할 수 있습니다.memtest.org에서.
또는 Linux 커널 자체에 메모리 테스트 도구가 포함되어 있습니다. 이 memtest
옵션은 현재 최대 17개의 메모리 검사 모드를 실행합니다. 커널 부팅 매개변수에 추가되면 memtest
부팅 시 모든 테스트를 실행하고 실패한 주소는 사용되지 않도록 유지합니다. 더 적은 수의 테스트를 원할 경우 패턴 수를 지정할 수 있습니다( memtest=8
예:).
이는 Memtest86+만큼 광범위한 테스트는 아니지만 여전히 꽤 좋은 결과를 제공합니다.
일부 배포 커널에는 이 기능이 포함되어 있지 않습니다. 검색하여 사용 가능한지 확인할 수 있습니다.CONFIG_MEMTEST
커널 구성에서 (시도해 보세요 /boot/config-$(uname -r)
). 커널은 이를 지정해도 불평하지 않지만 memtest
커널이 실행될 때 이를 지원하지 않으면 다음과 유사한 출력이 표시됩니다.
[ 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
...
커널이 부팅될 때(또는 나중에 부팅 로그에서).
QEMU를 사용하여 느낌을 얻을 수 있습니다.
qemu-system-x86_64 -kernel /boot/vmlinuz-$(uname -r) -append "memtest console=ttyS0" -nographic
(또는 qemu-system-...
귀하의 아키텍처에 적합한 것 중 하나) "early_memtest"를 찾으십시오. 커널 패닉 이후 QEMU를 종료하려면 , , Ctrla를 누르십시오 .cqEnter
답변2
최신 프리웨어(무료 맥주) 버전을 추가하실 수 있습니다기억력 테스트 86Ubuntu에서 UEFI Grub2를 입력합니다.
을 기반으로지도 시간, 원격 Ubuntu 16.04 서버에서 다음 단계를 수행하여 추가했습니다.기억력 테스트 86UEFI Grub2:
먼저, grub2는 memtest86이나 memtest86+를 표시하지 않는다는 점에 유의하세요. 내 시작 폴더에 memtest86+가 있다는 사실에도 불구하고. 아래를 참조하세요.
다운로드memtest86-usb.zip노트북으로
zip 파일을 원격 컴퓨터로 보내고 특정 위치(예
/home/<username>/memtest86-usb/
: ) 에 압축을 푼다.fdisk -lu memtest86-usb.img
설치 오프셋을 확인하려면 memtest86-usb.img 분석을 사용해야 합니다 . 위 출력에 나열된 두 번째 장치를 설치하려고 합니다memtest86-usb.img2
. 위 그림은 각 섹터가memtest86-usb.img2
514048 섹터부터 시작하여 512바이트임을 보여줍니다. 따라서 514048*512바이트=263192576바이트부터 시작하세요.폴더(예
/home/<username/memtest-tmp
: )를 만들고 마운트합니다.mkdir /home/<username>/memtest-tmp sudo mount -o loop,offset=263192576 /home/<username>/memtest86-usb/memtest86-usb.img
lsblk를 사용하여 EFI 파티션 및 마운트된 .img 파일에 대한 세부 정보를 확인하세요. 위 이미지에서 우리는 다음을 알 수 있습니다.
- EFI 파티션이 마운트되는 위치는 여기 입니다
/boot/efi
.legacy
내 서버에서는 BIOS 설정에서 부팅 모드를 선택할 수 있습니다 . 폴더 가 존재하지 않도록UEFI
이전에 설정했습니다 . 부팅 모드를 변경하면 폴더 를 보고 EFI 파티션이 여기에 마운트되어 있는지 확인할 수 있습니다.legacy
/boot/efi
UEFI
/boot/efi
- 장치 아이디. 장치 이름은 sd입니다.ㅏ1;이것은 편지입니다ㅏ. 이것은 나중에 중요할 것입니다.
- 파티션 번호. 장치 이름은 sda입니다.1;그러므로 파티션이다1. 이것은 미래에 중요할 것이다
- 온전한 상태를 확인하기 위해 다음 사항도 참고합니다.memtest86-usb.img2에 설치되었습니다
/home/<username>/memtest-tmp
.
- EFI 파티션이 마운트되는 위치는 여기 입니다
다음으로 둘 다 복사하고 이름을 바꿉니다
/home/<username>/memtest-tmp/EFI/BOOT
(/boot/efi/EFI/memtest86
대상 폴더 가정/boot/efit/EFI/memtest86
).다음으로 GRUB 체인로더 항목을 생성합니다. 다음과 유사한 내용으로 /etc/grub.d/42_memtest 파일을 생성합니다.
#!/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}
위 이미지에서는
set root='hd0,gtp1
EFI 파티션에 장치 이름 = 레이블이 지정되어 있으므로 이 작업을 수행했습니다.sda1. grub2 규칙에 따르면...- 이것ㅏ존재하다표준 편차ㅏ에 해당0존재하다HD0
- 이것1존재하다sda1에 해당1존재하다GTP1.
- 우리는 사용할 수 있습니다총 점수*파티션 형식 지정1장비sda우리가 그랬기 때문에
insmod part_gpt
. 디스크 레이블 유형을 다음과 같이 식별할 수 있습니다.총 단백질fdisk -l
명령을 사용 하거나/boot/grub/grub.cfg
파일을 확인하세요.
또한 우리는 EFI 파티셔닝을 사용했습니다.보편적으로 고유한 식별자, 이는
blkid
컴퓨터에 있는 모든 파티션의 UUID를 표시하는 명령에서 얻을 수 있습니다.grub2를
update-grub2
.
답변3
Memtest 6은 uefi와 함께 사용해야 합니다. 베타 버전은 memtest.org에서 사용할 수 있습니다.
코드는 다음에서 찾을 수 있습니다.https://github.com/memtest86plus/memtest86plus
Memtest86+ v6.00 베타 2 출시: 2022-06-03 v6은 아직 생산 준비가 되지 않았습니다! 실제 코드를 실험용으로 간주하고 충돌 및 정지가 발생할 수 있다고 예상하십시오. 첫 번째 비베타 버전은 올 여름 출시될 예정이다.
베타임에도 불구하고 시도해 보고 iso를 다운로드하고 USB 스틱에 추가하고 uefi에서 부팅할 수 있었고, 예전처럼 memtest가 실행되었습니다.