물리적 머신의 스냅샷을 찍어 머신이 부팅될 때마다 해당 단계로 되돌릴 수 있나요?
이 작업은 가상 머신으로 수행할 수 있지만 실제 머신에서 수행하고 싶습니다.
배경
무작위로 종료되는 오래된 노트북이 있습니다. 디스크도 괜찮고, 메모리도 괜찮으니 다른 문제도 있습니다. 아주 기본적인 서핑+동영상 감상용으로 사용하고 싶습니다. 정전이 발생해도 견딜 수 있지만 부팅하고 관련 앱을 여는 데 시간이 오래 걸립니다. 그러나 매번 동일한 스냅샷으로 간단히 부팅할 수 있다면 괜찮을 것입니다.
디스크를 일시 중단하고 파일 시스템의 스냅샷을 찍을 수 있다는 점을 고려하면 이것이 가능할 수도 있다고 생각했습니다. 아마도 누군가가 이미 이 작업을 수행했을 수도 있습니다.
아이디어 1
디스크에 마운트된 시스템은 이 기능을 수행할 수 있는 완벽한 상태입니다. 따라서 우리가 해야 할 일은 다음 부팅 전에 디스크가 이 상태로 복원되었는지 확인하는 것뿐입니다.
이는 먼저 최소 GNU/Linux 시스템을 부팅하고 시스템을 설정한 다음 복구된 디스크에서 새 커널 부팅을 수행하여 수행할 수 있습니다.
다음 설정을 상상해 보세요.
- /dev/sda - 최소 부팅 시스템
- /dev/sdb - 일시 중지된 RAM/CPU 이미지 + 파일 시스템으로 공간 교체
- /dev/sdc - 장치 덮어쓰기
시스템이 /dev/sda에서 부팅되면 /dev/sdc는 /dev/sdb 위에 새로운 오버레이 장치로 사용되어 /dev/overlay를 제공합니다(다음과 유사).https://raid.wiki.kernel.org/index.php/Recovering_a_damaging_RAID). 설정이 완료되면 kexec
/dev/overlay에서 부팅을 사용하여 커널이 실행됩니다.
이제 문제는 kexec
오버레이 장치를 부팅 장치로 허용할지 여부입니다.
아이디어 2
시작 시 실행:
swapon /dev/sda2
swapoff /dev/sda1
dd if=/dev/sda3 /dev/sda1
(where /dev/sda3 is a copy of the suspend-to-disk image.)
그리고 grub에서 디스크 마운트 장치로 /dev/sda1을 사용하십시오.
/dev/sdb1을 /readonly에 마운트한 다음 /dev/sdc 오버레이를 /dev/sdb에 추가하고 /dev/overlay를 /read-write로 마운트합니다.
아이디어 3
- /dev/sda - /boot 및 initrd
- /dev/sdb - 일시 중지된 RAM/CPU 이미지 + 파일 시스템으로 공간 교체
- /dev/sdc - 장치 덮어쓰기
initrd 설정에서 /dev/overlay. /dev/overlay1을 바꾸고 파일 시스템을 /dev/overlay2, /dev/overlay3으로 바꿉니다. 그런 다음 일시 중지된 이미지를 다시 읽으려면 다음을 수행하십시오.
echo /dev/overlay1 > /sys/power/resume
상태를 "로그"하려면 /dev/overlay
다음 /dev/sdb
과 병합하세요.
echo disk > /sys/power/state
/dev/sd* 대신 LVM을 사용해야 할 수도 있습니다.https://www.kernel.org/doc/Documentation/device-mapper/snapshot.txt