Eu não sei a distro de bruxa em que você está. No gentoo, estou acostumado a escrever um script de init initramfs. O Initramfs é apenas um pequeno root fs com apenas ferramentas essenciais instaladas nele para montar sua partição root e switch_root para seus rootfs reais e executar o init real para assumir.
Para um sistema básico ro root, sugiro usar o squashfs . Tem suporte de kernel de linha principal completo e faz seu sistema rápido. Para sua sobreposição de RAM, você pode usar tmpfs , também suportado pelo kernel.
Então você precisa "unificá-los" para ser um único sistema de arquivos. Eu uso aufs . Não é suportado pelo kernel da linha principal e, se não for suportado nas correções de kernel da sua distro, você precisa fazer o patch você mesmo. (Não há um único sindicato FS apoiado na linha principal)
Você provavelmente é o melhor de escrever um você mesmo. (Eu tentei dracut e genkernel, mas eles não fornecem os módulos necessários para lidar com qualquer um dos meus casos)
- Crie um diretório (eu uso
/usr/src/initramfs
) -
Faça o download do busybox estático para o diretório acima. Este é um shell estático fornecendo todos os linux_utils necessários para fsck, mount etc.
-
mkdir /usr/src/initramfs/{bin,dev,lib,mnt,sbin,tmp,etc,proc,sys}
Para a estrutura base - Crie um script / usr / src / initramfs / init e coloque todos os comandos para montar suas partições, sistema de arquivos ro e sobreposição de rw
- Unifique o ro e o rw com a sintaxe de montagem do aufs .
- Não se esqueça de
--move
seu ponto de montagem para a raiz recém-criada eumount
das coisas que você não precisa mais -
exec switch_root /sbin/init
limpa (exclui) tudo no initramfs carregado e alterna a raiz para continuar sua inicialização. - Se você tem algum módulo do kernel que não pode compilar no kernel, mas ainda precisa (como aufs ): copie-o para
/usr/src/initramfs/lib
- Crie um arquivo compactado com o conteúdo de
/usr/src/initramfs
, você pode usar gz, xz, cpio ou quantos quiser - Coloque o arquivo criado em seu diretório / boot e edite o grub para carregá-lo como initrd.
Para garantir que seu sistema seja inicializado com sua imagem customizada, compile seu próprio kernel também. (Realmente não é difícil): Documentação do kernel do Gentoo . No momento em que você tiver que instalar as fontes, basta substituir o comando pelo seu gerenciador de pacotes. A maioria das distribuições fornece pacotes de fontes do kernel.
Se você estiver disposto a mudar distros para fazê-lo, sugiro mudar para o Gentoo ou Arch. Eles são mais flexíveis para o "material manual" do que os outros, e ambos fornecem excelente documentação para hacká-lo em qualquer forma que você desejar.