v0.2.0 · software livre (MIT) · escrito em Rust

Seu Linux vira um template ou uma ISO.
Seus dados ficam com você.

O maloki transforma o sistema que está rodando numa imagem .qcow2 para VMs, com os usuários que você escolher, ou numa ISO instalável com sessão live e o instalador Calamares. Sem /home, sem senhas de Wi‑Fi, sem chaves.

template .qcow2ISO + CalamaresBIOSUEFISecure Bootzstd / xzmodo simulaçãoCtrl+C seguro
instalar com um comando
$ curl -fsSL https://daniel-pereira-linux.github.io/maloki/install.sh | sh

Linux x86_64 · o instalador confere o checksum SHA‑256 · leia o script antes · ou baixe o binário

Três comandos. Uma imagem.

Você responde algumas perguntas (ou passa um arquivo) e o maloki faz o resto, mostrando cada comando que executa.

$ maloki --simular # veja tudo antes, sem mudar nada $ cd /media/hd-externo $ sudo maloki Sistema atual: Fedora Linux 44 (família Fedora) A imagem vai ligar em: BIOS e UEFI Espaço: 412.3 GB livres, a imagem precisa de até 41.2 GB. ━━━ [3/9] Copiando o sistema ━━━ $ rsync -aAXH --exclude=/home/* --exclude=/root/* ... / /mnt/maloki-4242/ ━━━ [4/9] Removendo dados pessoais e identidade da máquina ━━━ ✗ apagado .../etc/NetworkManager/system-connections/CasaWifi.nmconnection ✗ apagado .../etc/ssh/ssh_host_ed25519_key ━━━ [7/9] Trocando os usuários ━━━ $ userdel -R /mnt/maloki-4242 daniel $ useradd -R /mnt/maloki-4242 -m -s /bin/bash -G wheel maria ✅ Imagem pronta: /media/hd-externo/template-fedora.qcow2

O que acontece por dentro

O maloki é um maestro: ele conduz as ferramentas que o Linux já tem, na ordem certa, e limpa tudo se algo der errado no caminho.

Cria o disco virtuallosetup faz um arquivo virar o disco /dev/loop0
Particiona e formataBIOS boot, EFI, /boot e raiz: liga em qualquer firmware
Copia o sistemarsync sem dados pessoais; bancos de dados pausados
Remove o que é seuWi‑Fi, VPN, chaves, machine-id, logs, histórico
Prepara o chrootPara rodar comandos "dentro" da imagem
Ajusta boot e redeGRUB, initramfs com drivers de VM, IP fixo vira DHCP
Troca os usuáriosRemove os seus e cria os que você escolheu
Gera o .qcow2qemu-img convert, compactado com zstd ou zlib
Confereqemu-img check na imagem pronta

Na ISO, os 5 primeiros passos são os mesmos. Depois o maloki cria a sessão live (usuário liveuser com login automático), configura o Calamares inteiro, compacta o sistema num squashfs (xz ou zstd) e grava uma ISO híbrida com o grub-mkrescue: DVD ou pendrive, BIOS ou UEFI.

O que vai e o que fica de fora

A regra: o que faz o sistema funcionar vai; o que é seu ou identifica esta máquina fica de fora.

✅ Vai para a imagem

  • Programas instalados (e Flatpaks, se quiser)
  • Configurações do sistema em /etc
  • Serviços e o que eles precisam
  • Kernel, com o boot ajustado para VMs
  • Os usuários que você criar

🚫 Fica de fora

  • /home, /root e o seu usuário
  • Senhas de Wi‑Fi e VPN
  • Chaves SSH do servidor e machine-id
  • IP fixo (vira DHCP)
  • Logs, caches, histórico, e‑mails, digitais
  • Discos de VMs e containers

Distribuições

"✓" quer dizer: geramos o arquivo numa máquina de verdade, ligamos em BIOS, UEFI e Secure Boot (na ISO: a sessão live e o sistema instalado por ela) e conferimos dezenas de itens por dentro. Na ISO, a instalação dos testes faz os mesmos passos do Calamares por script; a instalação clicando nas telas ainda não foi testada.

DistribuiçãoTemplateISO instalável
Debian 13✓ BIOS, UEFI, Secure Boot✓ BIOS, UEFI, Secure Boot
Fedora 44✓ BIOS, UEFI, Secure Boot✓ BIOS · ◐ UEFI corrigido, aguardando teste
Rocky 9 (Alma / RHEL / CentOS)✓ BIOS, UEFI, Secure Boot◐ não testada
Ubuntu 24.04 (Mint / Pop!_OS)✓ BIOS, UEFI, Secure Boot◐ em teste
Arch, openSUSE, Alpine✕ ainda não✕ ainda não

Uso

Três jeitos de rodar, para três momentos diferentes.

Mostra cada comando que seria executado, na ordem, sem executar nenhum. Não precisa de sudo. É o melhor jeito de entender o programa.

maloki --simular

Feito para não estragar nada

Ele roda como root e mexe com discos. Por isso cada risco tem uma trava.

🔍

Simulação

Veja todos os comandos antes. Nenhum é executado.

⌨️

Ctrl+C seguro

Cancelou no meio? Desmonta, desconecta, religa os serviços e apaga a imagem incompleta.

💾

Espaço conferido

Se não couber, nada começa. O seu disco nunca enche no meio.

🛡️

Trava de caminho

Só apaga dentro de /mnt/maloki-*. Qualquer outro caminho para tudo.

🔒

Uma execução por vez

Duas cópias juntas poderiam brigar pelo mesmo disco. Não deixamos.

🗄️

Bancos pausados

PostgreSQL, MySQL, Redis, MongoDB param durante a cópia e voltam no fim.

🛟

Troca só no fim

Vai substituir uma imagem antiga? Ela só é trocada quando a nova fica pronta. Deu erro no meio? A antiga continua lá.

Manual

O mesmo conteúdo de man maloki, que o instalador já deixa no seu sistema.

MALOKI(1)Comandos do UsuárioMALOKI(1)

NOME

maloki — transforma o Linux que está rodando, sem os seus dados pessoais, num template para VMs (.qcow2) ou numa ISO instalável

SINOPSE

sudo maloki
sudo maloki --plano arquivo.toml
maloki --simular [--plano arquivo.toml]
maloki --ajuda

OPÇÕES

--simular
Mostra todos os comandos que seriam executados, sem executar nenhum e sem alterar nada. Não precisa de sudo.
--plano arquivo
Modo automático: lê as respostas de um arquivo TOML. Nenhuma pergunta é feita.
--ajuda, -h, --help
Mostra um resumo do uso e sai.

ARQUIVO DE PLANO

tipo = "template"
"template" (padrão) ou "iso".
imagem = "template.qcow2"
Obrigatório. Nome do arquivo (relativo à pasta atual) ou caminho absoluto. A pasta precisa existir.
tamanho_gb = 40
Tamanho do disco da VM. Padrão: o usado + 30% + 5 GB (mínimo 20).
hostname = "template"
Nome da máquina.
flatpak · compactar · parar_servicos
Padrão true.
compressao
Template: "zstd" (padrão, QEMU 5.1+) ou "zlib". ISO: "xz" (padrão, a menor) ou "zstd".
sobrescrever
Padrão false. O arquivo antigo só é trocado quando o novo fica pronto.
senha_root · senha_root_hash
Sem nenhum dos dois, o root fica bloqueado (recomendado).
[[usuarios]]
nome, senha ou senha_hash, admin, trocar_senha, chave_ssh. No template, pelo menos um admin (ou senha de root) é obrigatório. Na ISO, quem instala cria os usuários.

STATUS DE SAÍDA

0
Imagem criada (ou ajuda exibida).
1
Erro; a mensagem diz o motivo. Nada fica montado nem conectado.
2
Opção inválida na linha de comando.

ARQUIVOS

/run/maloki.lock
Trava contra duas execuções simultâneas.
/mnt/maloki-PID
Onde a imagem fica montada durante a criação.
ARQUIVO.raw · ARQUIVO.tmp · ARQUIVO.conteudo/
Rascunhos ao lado do arquivo final; apagados no fim, dando certo ou não.

VEJA TAMBÉM

qemu-img(1), losetup(8), rsync(1), sfdisk(8), chroot(8), grub-install(8), dracut(8), useradd(8), mksquashfs(1), grub-mkrescue(1), calamares(8)

Manpage completa (fonte) →

Perguntas frequentes

Precisa de cloud-init, Docker ou alguma coisa especial?

Não. Precisa de qemu-img, rsync, dosfstools e do GRUB, que o instalador da sua distro já tem. O programa avisa se faltar algo.

# Fedora / Rocky
sudo dnf install qemu-img rsync dosfstools grub2-pc-modules
# Debian / Ubuntu
sudo apt install qemu-utils rsync dosfstools grub-pc-bin grub-efi-amd64-bin
Template ou ISO: qual eu escolho?

Template para criar VMs prontas e iguais em segundos (QEMU, Proxmox, virt-manager). ISO para instalar o seu sistema em outros computadores: quem instala escolhe o disco, o usuário e a senha no Calamares.

Dá para deixar o arquivo ainda menor?

O maloki já usa a melhor compressão de cada formato: zstd no .qcow2 e xz na ISO, e não guarda o espaço livre nem caches. O que mais pesa costuma ser os Flatpaks: se não precisar deles, use flatpak = false.

Minhas chaves de HTTPS vão para a imagem?

Sim. Um servidor web pode precisar delas para ligar, então o maloki não apaga, mas lista todas no final para você decidir. Se a imagem for compartilhada, troque essas chaves.

Quanto tempo demora?

Quase tudo é a cópia: um servidor de 3 GB leva poucos minutos; um desktop de 20 GB, de 10 a 20 minutos. Compactar leva outro tanto.

A imagem reiniciou sozinha no primeiro boot. É normal?

Sim, em sistemas com SELinux (Fedora, Rocky...): ela reetiqueta os arquivos e reinicia uma vez.

Quero contribuir mas estou aprendendo Rust.

Perfeito: o código foi escrito para isso. Comece pelo guia do código: ele mostra por onde ler, qual arquivo chama qual e receitas passo a passo.