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.
$ 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
Você responde algumas perguntas (ou passa um arquivo) e o maloki faz o resto, mostrando cada comando que executa.
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.
losetup faz um arquivo virar o disco /dev/loop0/boot e raiz: liga em qualquer firmwarersync sem dados pessoais; bancos de dados pausadosmachine-id, logs, históricoqemu-img convert, compactado com zstd ou zlibqemu-img check na imagem prontaNa 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.
A regra: o que faz o sistema funcionar vai; o que é seu ou identifica esta máquina fica de fora.
/etc/home, /root e o seu usuáriomachine-id"✓" 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ção | Template | ISO 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 |
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
Para scripts, cron e Ansible: as respostas vêm de um arquivo TOML e nenhuma pergunta é feita. Use senha_hash para não deixar a senha escrita no arquivo.
imagem = "template.qcow2" hostname = "web-01" compactar = true [[usuarios]] nome = "maria" senha_hash = "$6$..." # openssl passwd -6 admin = true chave_ssh = "~/.ssh/id_ed25519.pub"
sudo maloki --plano meu-plano.toml
O sistema precisa de uma tela de login gráfica (GDM, SDDM ou LightDM) e destes pacotes:
# Fedora / Rocky
sudo dnf install calamares dracut-live squashfs-tools xorriso mtools \
grub2-tools-extra grub2-pc-modules grub2-efi-x64-modules
# Debian / Ubuntu
sudo apt install calamares live-boot squashfs-tools xorriso mtools \
grub-common grub-pc-bin grub-efi-amd64-bin
Gere (pelo menu, ou sem perguntas) e grave num pendrive. Cuidado: o dd apaga o pendrive; confira o nome com lsblk.
printf 'tipo = "iso"\nimagem = "meu.iso"\n' > iso.toml sudo maloki --plano iso.toml sudo dd if=meu.iso of=/dev/sdX bs=4M status=progress oflag=sync
A ISO liga com o Secure Boot desligado; a sessão live entra sozinha (liveuser / senha live) e abre o instalador. O sistema instalado liga em BIOS, UEFI e Secure Boot.
Crie um disco "filho" (overlay) para não alterar o template, e ligue:
qemu-img create -f qcow2 -b template.qcow2 -F qcow2 vm1.qcow2 qemu-system-x86_64 -enable-kvm -m 4G -cpu host \ -drive file=vm1.qcow2,if=virtio -nic user,hostfwd=tcp::2222-:22 ssh -p 2222 maria@localhost
Para o VirtualBox ou o VMware, converta:
qemu-img convert -O vdi template.qcow2 template.vdi qemu-img convert -O vmdk template.qcow2 template.vmdk
Ele roda como root e mexe com discos. Por isso cada risco tem uma trava.
Veja todos os comandos antes. Nenhum é executado.
Cancelou no meio? Desmonta, desconecta, religa os serviços e apaga a imagem incompleta.
Se não couber, nada começa. O seu disco nunca enche no meio.
Só apaga dentro de /mnt/maloki-*. Qualquer outro caminho para tudo.
Duas cópias juntas poderiam brigar pelo mesmo disco. Não deixamos.
PostgreSQL, MySQL, Redis, MongoDB param durante a cópia e voltam no fim.
Vai substituir uma imagem antiga? Ela só é trocada quando a nova fica pronta. Deu erro no meio? A antiga continua lá.
O mesmo conteúdo de man maloki, que o instalador já deixa no seu sistema.
maloki — transforma o Linux que está rodando, sem os seus dados pessoais, num template para VMs (.qcow2) ou numa ISO instalável
sudo maloki
sudo maloki --plano arquivo.toml
maloki --simular [--plano arquivo.toml]
maloki --ajuda
"template" (padrão) ou "iso".true."zstd" (padrão, QEMU 5.1+) ou "zlib". ISO: "xz" (padrão, a menor) ou "zstd".false. O arquivo antigo só é trocado quando o novo fica pronto.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.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)
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 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.
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.
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.
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.
Sim, em sistemas com SELinux (Fedora, Rocky...): ela reetiqueta os arquivos e reinicia uma vez.
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.