저는 두 개의 서로 다른 GNU/Linux 기반 운영 체제를 실행하는 노트북을 가지고 있습니다. 각 운영 체제에는 자체 전용 루트 및 기본 파티션이 있지만 부팅 및 스왑 파티션을 공유합니다. 한 가지 문제를 제외하면 모두 훌륭하게 작동합니다. 다음 날처럼 컴퓨터를 최대 절전 모드로 전환하고 시작할 때마다 X OS를 최대 절전 모드로 전환했다는 사실을 잊어버리고 결국 FS 로그가 엉망이 됩니다. 이제 나는 스왑 공간을 공유함으로써 이것이 부작용일 수 있다는 것을 깨달았습니다. 그러나 일단 최대 절전 모드에 들어가면 GRUB이 스왑 공간이 사용 중임을 감지하고 최대 절전 모드 OS로 부팅했다는 인상을 받았습니다. 솔루션을 작성해야 했기 때문에 이는 저에게는 해당되지 않았습니다.
/etc/default/grub을 편집하세요:
GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true
grub-mkconfig를 실행하고 최대 절전 모드일 때 /boot/grub/grub.cfg의 시간 초과를 임의의 값에서 0으로 변경하는 스크립트를 작성하십시오(/etc/pm/sleep.d/10-hibernate-script.sh):
#!/bin/sh
case "$1" in
hibernate)
cat /boot/grub/grub.cfg | sed 's/timeout=10/timeout=0/g' > /boot/grub/grub.cfg~
mv /boot/grub/grub.cfg~ /boot/grub/grub.cfg
;;
thaw)
cat /boot/grub/grub.cfg | sed 's/timeout=0/timeout=10/g' > /boot/grub/grub.cfg~
mv /boot/grub/grub.cfg~ /boot/grub/grub.cfg
;;
esac
이를 수행하는 보다 "기본적인" 방법이 있습니까, 아니면 이것이 이를 달성하는 가장 좋은 방법입니까?
답변1
둘 다 Linux이므로 두 OS 중 하나가 저장한 이미지에서 두 OS 중 하나를 복원할 수 있도록 뭔가를 설정할 수 있습니까? 최대 절전 모드 이미지에 모든 커널 메모리(코드 포함)가 포함되어 있으면 어느 코어에서 다시 시작되는지는 중요하지 않습니다. 이것이 어떻게 작동하는지 잘 모르겠습니다.
또한 랩탑에 ACPI 최대 절전 모드가 지원되는 경우 Linux는 이 방식으로 최대 절전 모드를 수행할 수 있습니다. GRUB으로 부팅하는 대신 부팅 시 항상 재개되기를 원하십니까? 다시 말하지만, 일이 어떻게 작동하는지 잘 모르겠습니다.
스왑 파티션에 복구 이미지가 있는 경우 운영 체제에서 스왑 파티션을 사용하지 않도록 설정할 수 있습니다. 둘 다 동일한 스왑이 아닌 파티션을 읽기-쓰기로 마운트하는 경우에는 도움이 되지 않습니다. 로그 재생을 거부하는 마운트 옵션이 있을 수도 있습니다(최대 절전 모드를 방해함).
이 중 어느 것도 성공하지 못한다면 귀하의 솔루션이 귀하가 얻을 수 있는 최선의 솔루션이라고 생각합니다. 제 생각에는 grub이 스왑 파티션을 보고 사용 중인지 확인하는 방법을 모르는 것 같습니다. 그렇다면 grub 구성에 일부 논리를 추가하여 SAVEDEFAULT 항목만 부팅할 수 있도록 할 수 있습니다. (grub은 실제로 이해하지 못할 것 같습니다.어느운영 체제에 SAVEDEFAULT를 사용하지 않는 최대 절전 모드 이미지가 있습니다. )
인용하다:
https://superuser.com/a/405922/20798얻는 방법에 관한 것 같습니다.
resume=...
언제나동적으로 변경하는 대신 커널 명령줄에서 수행합니다.