Linux 커널 4.9.0, Debian 9에서 최대 절전 모드 복구가 실패함

Linux 커널 4.9.0, Debian 9에서 최대 절전 모드 복구가 실패함

최근에 커널을 3.16.4(Debian jessie)에서 4.9.0(Debianstretch)으로 업그레이드했습니다. "최대 절전 모드"(디스크 일시 중지)를 시도하기 전까지는 모든 것이 정상입니다.

LXDE에서 최대 절전 모드 옵션을 사용하면 최대 절전 모드로 표시됩니다. 디스크 스핀들이 똑딱거리고 데이터가 기록되는 소리가 들렸습니다. 그러나 최대 절전 모드에서 다시 시작하면 문제가 발생합니다. 커널이 스왑에서 이미지를 성공적으로 복원했지만 정지 및 재부팅되어 모든 작업이 손실되었습니다. 인터넷 어디에서도 답을 찾을 수 없습니다. 사람들은 /etc/initramfs-tools/conf.d/resume을 설정하지 않거나 커널 매개변수를 설정하지 않거나 /etc/fstab에 잘못된 항목을 설정하는 것과 관련된 일부 버그를 수정합니다. 나에게는 이러한 권리가 있습니다. /etc/initramfs-tools/conf.d/resume에서 UUID를 수정하고, fstab을 수정하고, 복구 커널 매개변수를 설정하지 마세요.

  • 확장 파티션 외부의 스왑 파티션을 기본 파티션으로 옮겼습니다. UUID가 저장되어 새 교환에 적용됩니다.

  • 시스템이 "이미지 100% 복원"에 도달한 후 "콘솔 일시 중지"에 도달한 다음 전원이 꺼지고 정상적으로 부팅되면 모든 작업이 손실됩니다.

  • 새로 설치를 시도했지만 운이 없었습니다.

  • i386(32비트 x86)에서만 발생하며 amd64(64비트 x86)에는 영향을 미치지 않습니다.

디스크 파티션 테이블 레이아웃:

NAME   FSTYPE LABEL    UUID                                 MOUNTPOINT
sda                                                         
├─sda1 ext4   HDD      <ROOT-UUID> /
└─sda2 swap   HDD-SWAP <SW-UUID> [SWAP]
sr0

업그레이드 전에는 sda2가 논리적이었습니다(내부 확장에 있음).

안정적인 테이블:

UUID=<ROOT-UUID> / ext4 errors=remount-ro 0 1
UUID=<SW-UUID> none swap sw 0 0

/etc/initramfs-tools/conf.d/resume

RESUME=UUID=<SW-UUID>

커널 명령줄

BOOT_IMAGE=/boot/vmlinuz-4.9.0-3-686-pae root=UUID=<ROOT-UUID> ro quiet

시스템 메시지:

Computer: Compaq CQ60-120ec
Swap Size: 3.5GiB
Processor: AMD Athlon X2 64 QL-66
GPU: Nvidia Geforce 8200M G
Memory: 2G DDR2 667MHz
Desktop Environment: LXDE
Debian Version: 9 (stretch)
Kernel version: 4.9.0-3
Graphics Driver: nvidia legacy 304xxx

(프로세서는 64비트인 것으로 알고 있는데 원래 32비트 OS가 탑재되어 있어서 /proc/cpuinfo를 확인하기 전까지는 32비트인줄 알았습니다.)

답변1

이 문제는 최대 절전 모드와 최대 절전 모드 간의 충돌로 인해 발생합니다.kASLR존재하다x86-32. kASLR을 비활성화하면 이 문제를 해결할 수 있습니다.노캐슬커널 부팅 옵션.x86-64영향을받지 않았다.

Grub의 경우 /etc/default/grub을 편집하고 추가할 수 있습니다.노캐슬부팅 옵션(예: GRUB_CMDLINE_LINUX_DEFAULT="quiet)노캐슬"

그런 다음 실행그럽 업데이트구성 업데이트 및재시작시도 해봐.


저도 똑같은 문제를 겪고 있는데 PAE 커널만 이 문제의 영향을 받는 것 같습니다. PAE가 없는 동일한 커널은 잘 작동합니다.

내 해결책은 linux-image-686을 설치하고 linux-image-686-pae 및 linux-image-4.9.0-4-686-pae를 제거하는 것이었습니다. 정확한 커널 버전은 업그레이드로 인해 시간이 지남에 따라 변경될 수 있지만 기본적으로 현재 실행 중인 PAE 커널을 PAE가 없는 커널로 교체해야 합니다.

내 CPU는 /proc/cpuinfo에 따라 PAE를 지원하므로 이는 실제로 CPU의 PAE 지원과 아무 관련이 없습니다. 그러나 PAE는 어쨌든 오래된 노트북에서는 별로 사용되지 않습니다.

커널 4.13 PAE의 Debian 백포트에서도 동일한 문제가 발생하므로 이는 커널 4.9 PAE와도 관련이 없습니다.

답변2

"복구 장치"에 대한 항목을 변경해야 할 수도 /etc/uswsusp.conf있습니다. 이 항목을 사용하지 않으면 myabe는 /etc변경해야 할 위치를 찾기 위해 모든 파일에서 이전 UUID를 grep하려고 시도합니다. update-initramfs나는 이것이 또한 필요하다고 말하고 싶다.

답변3

같은 오류가 발생했습니다. 최신 netinst iso인 debian-9.1.0-amd64-netinst.iso를 다시 설치하면 문제가 해결되었습니다. 버그가 수정된 것 같습니다(적어도 이 아키텍처에서는).

답변4

스왑 파티션(정확한 크기)이 있고 "/etc/initramfs-tools/conf.d/resume"을 "#blkid" 결과로 편집했는데 i386이 올바르게 최대 절전 모드로 전환되지 않으면 이는 Debian i386 4.9의 파티션입니다. 코어가 틀렸어! 커널을 4.9 이상의 버전으로 업데이트하거나 3.16 커널로 롤백합니다.

관련 정보