efivars에 덤프 파일 쓰기 비활성화

efivars에 덤프 파일 쓰기 비활성화

최근에 저는 제 컴퓨터 중 두 대(ThinkPad X230 및 W530)가 UEFI 부팅 변수가 저장된 NVRAM이 독립적으로 부족해지기 시작하는 문제를 발견했습니다. 이렇게 하면 시작되지 않습니다. 다행히 레거시 부팅 모드(모두 Ubuntu 20.04.1)로 전환한 후 성공적으로 OS 부팅을 했으나 문제가 해결되지 않았습니다.

추가 조사 결과, 시작할 /sys/firmware/efi/efivars때 마다 -ting cat변수 에 아무것도 표시되지 않는 것으로 나타났습니다. 완전히 비어 있는 것처럼 보이지만 많은 공간을 차지합니다. 이러한 덤프 변수는 종종 .catdumpdump-type0-11-1-1643821377-C-cfc8fc79-be2e-4ddc-97f0-9f98bfe298a0

나는 더 자세히 파고들고 이 변수 ​​이름의 일부에 대해 Journalctl을 검색하기 시작했습니다. 다음 로그에서 알 수 있듯이 pstore에 의해 efivars에 작성된 것으로 나타났습니다.

Feb 03 10:37:35 slazien-thinkpad-x230 systemd-pstore[1367]: PStore dmesg-efi-164382137702001 moved to /var/lib/systemd/pstore/164382137/dmesg-efi-164382137702001

내가 이해한 바로는 코어 덤프를 /sys/fs/pstore다음 으로 이동하는 역할을 담당하는 것은 systemd-pstore입니다 /sys/firmware/efi/efivars(틀렸다면 정정해 주십시오). 그래서 설정으로 pstore 처리를 비활성화해 보았습니다. Storage=none그래서 설정으로 시도해 보았습니다.pstore.conf(5). 이렇게 하면 앞서 언급한 저널ctl 로그가 제거되지만 (비어 있는?) 덤프 파일은 계속 기록됩니다.

참고로 systemd-pstore는 잘 작동합니다.

systemctl status systemd-pstore.service
● systemd-pstore.service - Platform Persistent Storage Archival
     Loaded: loaded (/lib/systemd/system/systemd-pstore.service; enabled; vendor preset: enabled)
     Active: active (exited) since Thu 2022-02-03 11:03:13 EST; 2h 13min ago
       Docs: man:systemd-pstore(8)
   Main PID: 1287 (code=exited, status=0/SUCCESS)
      Tasks: 0 (limit: 18853)
     Memory: 0B
     CGroup: /system.slice/systemd-pstore.service

Feb 03 11:03:13 slazien-thinkpad-x230 systemd[1]: Starting Platform Persistent Storage Archival...
Feb 03 11:03:13 slazien-thinkpad-x230 systemd[1]: Finished Platform Persistent Storage Archival.

dump현재 는 근본 원인을 해결하는 동안 이러한 efivars 쓰기를 비활성화 하고 싶습니다 . 어떻게 해야 하나요?

편집하다:몇 가지 탐정 작업을 마친 후, 나는근본 원인을 찾아보세요. 좋은 개요가 제공됩니다이 점.

답변1

pstoreEFI 스토리지 백엔드 사용을 방지하려면 커널 부팅 옵션을 추가해 보세요 efi_pstore.pstore_disable=1(지금은 직접 확인할 수 없지만).

NVRAM 오버플로는 특정 노트북 모델(ThinkPads xx30 포함)에만 영향을 미치고 다른 노트북 모델에는 영향을 미치지 않는 드문 문제인 것으로 보입니다. 제가 올바르게 이해했다면 일부 시스템의 EFI 펌웨어는 제대로 구현되지 않았거나 NVRAM 공간이 너무 제한되어 있어 pstore동작이 결합되어 오버플로가 발생할 수 있습니다.

이 문제에 대한 초기 언급을 찾을 수 있습니다.여기. 더 많은 (그러나 여전히 부족한) 정보:여기그리고여기. 그러나 전체 그림을 밝히려면 더 많은 조사가 필요합니다.

PS 아이러니하게도 오래된 커널 모듈의 일부 중요하지 않은 버그는 커널 덤프를 저장하기 위해 너무 열심히 노력하는 디버깅 메커니즘으로 인해 치명적일 수 있습니다.

관련 정보