Exatamente o que você está pedindo provavelmente não pode ser feito sem um sistema de arquivos personalizado, mas há ramfs (não ramdisk nem tmpfs ) que chega perto. Ramfs às vezes é usado como o sistema de arquivos inicial quando o Linux (incorporado) inicializa, ou seja, o initramfs . Como esse sistema de arquivos raiz está na memória, quaisquer alterações feitas nele não são propagadas de volta à sua origem em flash e são perdidas no desligamento ou na próxima reinicialização. O conteúdo do initramfs vem do arquivo initramfs.cpio que está anexado ao binário do kernel.
Um sistema de arquivos personalizado provavelmente seria necessário para "redirecionar todas as gravações do sistema de arquivos raiz para a RAM". Esse tipo de sistema lembra um sistema de arquivos em camadas que eu ajudei a desenvolver: o sistema de arquivos da camada superior era acessível ao usuário e, na verdade, era composto por dois sistemas de arquivos individuais. O acesso do usuário a um arquivo exigiria procurar o arquivo primeiro no sistema de arquivos A; se não existisse em A, então o sistema de arquivos B deveria ter o arquivo. (O sistema de arquivos A continha arquivos atualizados para o sistema de arquivos B sem precisar atualizar / substituir o sistema de arquivos B na mídia somente leitura.) Seu sistema de arquivos dos sonhos seria semelhante: acessar (ou seja, abrir) um arquivo exigiria primeiro verificar se o arquivo já está em ramfs . Se for, use essa cópia; caso contrário, copie o arquivo do disco rootfilesystem para o ramfs e use a cópia ramfs .
Talvez você possa configurar seu sistema para inicializar, criar & monte um ramfs , copie o rootfs para o ramfs e então o chroot para o ramfs . Isso colocaria todo o sistema de arquivos raiz na memória, em vez de apenas os arquivos modificados do seu sistema de arquivos dos sonhos.