![보류 중인 세션에 관심이 없다면 시작하는 것이 안전합니다.](https://linux55.com/image/160291/%EB%B3%B4%EB%A5%98%20%EC%A4%91%EC%9D%B8%20%EC%84%B8%EC%85%98%EC%97%90%20%EA%B4%80%EC%8B%AC%EC%9D%B4%20%EC%97%86%EB%8B%A4%EB%A9%B4%20%EC%8B%9C%EC%9E%91%ED%95%98%EB%8A%94%20%EA%B2%83%EC%9D%B4%20%EC%95%88%EC%A0%84%ED%95%A9%EB%8B%88%EB%8B%A4..png)
그래서 실수로 처형당하는 echo disk > /sys/power/state
대신 엉망으로 만들었습니다 . echo mem > /sys/power/state
그제야 나는 내가 방금 무슨 짓을 했는지 깨달았다.
설정에 대한 일부 세부정보:
- 루트 파티션에서 LUKS 암호화를 사용합니다.
- EFI 스텁 부트로더(efibootmgr 항목을 사용하여 커널 매개변수를 설정할 수 있음)
- 스왑 파일은 LUKS 파티션의 Btrfs 파일 시스템에 있습니다.
- 스왑 파일 오프셋이 없습니다... 망하지 않기를 바랍니다.
내 사용자 정의 initramfs init 스크립트가 아직 복구를 구현하지 않았습니다. 따라서 부팅 가능한 USB로 가서 어떻게든 커널 아카이브(initramfs가 커널에 내장되어 있음)를 추출하고 init 파일을 변경한 다음 다시 압축해야 합니다. 커널 실행 파일에 이것이 가능한 경우. 커널 소스 코드를 구하고 젠투 환경에 맞게 다시 컴파일하는 데 많은 시간을 소비하지 않는 한 아마도 커널을 다시 컴파일할 수 없을 것입니다. 하지만 최후의 수단으로 그렇게 할 수도 있겠네요. 그럼, 1. 업데이트된 초기화 파일로 vmlinuz(커널 아카이브)를 어떻게 편집하나요?
LUKS 파티션이 잠금 해제된 후 이 스왑 파일에 어떻게 액세스합니까? 스왑 파일의 오프셋이 없습니다. 이제 Linus가 내 스왑 파일이 어디에 있는지 알 수 있을지 궁금합니다. "echo /dev/mapper/myrootfs > /sys/power/state"처럼 간단합니까? 초기 최대 절전 모드는 잘 진행되는 것 같았기 때문에 Linux는 내 스왑 파일이 어디에 있는지 찾는 데 아무런 문제가 없는 것 같았습니다. 회복도 마찬가지 아닐까요? 그래서 2. 스왑 파일을 어떻게 처리해야 할까요? 오프셋을 모르겠습니다. 읽기 전용으로 설치한 다음 스왑 파일을 /sys/power/state로 지정하면 작동합니까, 아니면 파일 시스템이 손상됩니까? (파일 시스템이 기술적으로 "아직 마운트되어" 있기 때문입니다.) 이전에 말했듯이 /dev/mapper/myrootfs를 /sys/power/state에 echo할 수도 있지만, 오프셋을 지정하는 것은 Linux에게 스왑 파일이 어디에 있는지 알려주는 것입니다. 나는 아니에요.
편집: 저장되지 않은 문서 등 중요한 항목이 없습니다. 열려 있는 것은 X, WM 및 터미널 창뿐입니다. 정상적으로(복원된 상태에서) 부팅한 다음 해당 최대 절전 모드 복사본을 삭제할 수 있다면(말했듯이 저장되지 않은 문서나 이와 유사한 것이 없음) 문제가 되지 않습니다. 그게 가능합니까? 아니면 현재 내 파일 시스템이 안전하지 않은 상태이고 마운트하면 파일 시스템이 파괴될까요?
답변1
보류 중인 세션에 관심이 없다면 시작하는 것이 안전합니다.
일시 중지된 세션을 시작하고 재개하지 않으면 파일 시스템이 손상되지 않습니다. 세션을 복원하는 데 필요한 모든 데이터는 스왑 파일에만 저장됩니다. 세션을 저장한 후 파일 시스템이 "아직 마운트"되지 않도록 컴퓨터가 정상적으로 종료됩니다.
비슷한 설정이 있습니다 (systemd 사용). 무슨 일이 일어나는지 확인하기 위해 시나리오를 재현했습니다.
- 내 시스템을 디스크에 일시 중단
resume=<device> resume_offset=999999
부트로더의 커널 명령줄에서 제거
시스템이 정상적으로 시작됩니다(복구가 수행되지 않음). 내 파일 시스템은 정상이고 스왑 공간이 비어 있습니다.
일시 중지된 시스템 재개
최대 절전 모드에서 다시 시작하는 문제를 해결하려면 다음을 수행합니다.
- 일부 설치 미디어로 부팅
- 시스템 파티션(및 스왑 파일이 포함된 파티션)을 잠금 해제하고 마운트합니다.
- 스왑 파일의 오프셋을 찾습니다(참조:이 ArchWiki 기사Btrfs의 경우)
- 복구 장치 및 오프셋을 지정하려면 부트로더 항목을 수정하세요.
- 시스템을 정상적으로 다시 시작하십시오.
알아채다일시 중지 후 파일 시스템을 수정한 경우 재개하는 것이 안전하지 않습니다..
사용자 정의 init 스크립트를 사용하는 경우 initramfs에서 스크립트를 수정해야 합니다. 가장 쉬운 방법은 스크립트를 수정하고 일부 설치 미디어에서 다시 생성하는 것입니다.
스크립트에서 다음과 같은 작업을 수행해야 합니다.
echo 99999 > /sys/power/resume_offset
echo /dev/mapper/myrootfs > /sys/power/resume
설치 미디어에서 initramfs 수정 및 재구축