Posso tirar um instantâneo de uma máquina física e voltar a esse estágio toda vez que a máquina inicializa?
Isso pode ser feito com máquinas virtuais, mas eu quero fazer isso para uma máquina física.
Antecedentes
Eu tenho um laptop antigo que é desligado aleatoriamente. O disco está bem e a RAM está bem, então são alguns outros problemas. Eu gostaria de usar isso para assistir vídeos muito básicos sobre o surf + vídeo. Eu posso viver com o poder aleatório desligado, mas leva muito tempo para inicializá-lo e abrir os aplicativos relevantes. Se, no entanto, ele pudesse simplesmente inicializar o mesmo instantâneo todas as vezes, tudo bem.
Dado que você pode suspender para o disco e fazer snapshots de sistemas de arquivos, estou pensando que isso pode ser factível - e talvez alguém já tenha feito isso.
Idéia 1
Um sistema suspenso para o disco está em perfeitas condições para que isso funcione. Portanto, tudo o que precisamos fazer é garantir que o disco seja revertido para esse estado antes da próxima inicialização.
Isso pode ser feito primeiro inicializando um sistema GNU / Linux mínimo que configura isso e que, então, executa uma nova inicialização do kernel no disco revertido.
Imagine esta configuração:
Quando o sistema é inicializado em / dev / sda, então / dev / sdc é usado como um novo dispositivo de sobreposição em / dev / sdb fornecendo / dev / overlay (similar a: link ). Após isso ser configurado, o kernel é executado usando kexec
para inicializar em / dev / overlay.
Agora, a questão é se kexec
aceitará um dispositivo sobreposto como dispositivo de inicialização.
Idéia 2
Ao inicializar, execute:
swapon /dev/sda2
swapoff /dev/sda1
dd if=/dev/sda3 /dev/sda1
(where /dev/sda3 is a copy of the suspend-to-disk image.)
e use / dev / sda1 como dispositivo de suspensão para disco no grub.
Monte / dev / sdb1 em / readonly e adicione / dev / sdc overlay a / dev / sdb e monte / dev / overlay como / read-write.
Idéia 3
Na configuração do initrd / dev / overlay. Troque em / dev / overlay1, sistema de arquivos em / dev / overlay2, / dev / overlay3. Em seguida, faça isso para ler a imagem suspensa:
echo /dev/overlay1 > /sys/power/resume
Se você quiser "registrar" um estado, mescle /dev/overlay
em /dev/sdb
e:
echo disk > /sys/power/state
Em vez de / dev / sd * provavelmente deveríamos usar o LVM: link
Tags snapshot