Inicializando uma imagem do sistema de arquivos de um HDD usando o GRUB2 com persistência

8

Como preservo as alterações que faço nos arquivos ao executar um sistema operacional inicializado - usando o GRUB2 - a partir de um arquivo que contém um sistema de arquivos.

Consegui fazer com que o GRUB2 inicializasse um arquivo de imagem que reside em um disco rígido. Até agora tudo bem, muito útil para inicializar no FreeDOS para vários utilitários não Linux. O que desejo é que, se eu criar um arquivo - ou alterá-lo - neste SO em execução, ele for gravado de volta no arquivo de imagem, para que na próxima vez em que inicie esse arquivo de imagem, possa retomar de onde parei, em vez de começar de novo com a mesma imagem que foi inicializada pela primeira vez.

runas
fonte

Respostas:

1

O Memdisk (é isso que você está usando, certo?) Funciona substituindo o driver de disco do BIOS por seu próprio código, que altera a cópia na memória em vez de chegar ao disco. O carregador de inicialização (Syslinux, Grub ou qualquer outra coisa que você esteja usando) faz o trabalho de carregar a imagem do disco e não permanece na memória após o início do Memdisk.

Para recuperar as alterações no disco, você precisará adicionar suporte ao sistema de arquivos e discos ao Memdisk. Isso não é impossível em princípio, mas é um esforço de desenvolvimento significativo, e não conheço ninguém trabalhando nisso.

O que você pode fazer é criar uma pequena partição FAT no disco, copiar a imagem do disco antes de reiniciar e copiar a imagem do disco posteriormente, se desejar que ela persista.

Gilles 'SO- parar de ser mau'
fonte
Sugestão interessante sobre como copiar o conteúdo da memória para o disco. Você saberia como conseguir isso na prática? Tenho algumas idéias sobre como isso pode ser feito se o SO ativo em execução for Linux, mas como gravar o sistema de arquivos na memória em um arquivo no disco usando o Windows, não tenho idéia de como alcançá-lo.
Runeks
@runeks Como eu disse, é um esforço de desenvolvimento significativo. O Memdisk não está sendo executado no Linux ou Windows, está sendo executado diretamente na máquina - é seu próprio sistema operacional para fins especiais.
Gilles 'SO- stop be evil'
Eu vejo. Eu estava pensando em fazê-lo no sistema operacional. Por exemplo, no Linux, montando uma partição do disco rígido, criando um novo sistema de arquivos em um arquivo nessa partição, montando este sistema de arquivos e copiando o conteúdo do sistema de arquivos raiz do sistema operacional em execução para esse arquivo. Em seguida, inicialize a partir deste arquivo na próxima vez. Pode ser automatizado em algum script para ser desligado. Eu acho que só preciso experimentá-lo para ver se funciona, seria interessante se o mesmo pudesse ser feito para o Windows de alguma forma.
Runeks