Checklist auto-contido pra retomar a migração depois. Cada bloco assume que você abriu este arquivo do zero, sem contexto extra.
Tudo já foi escrito. O que está pronto:
bootstrap.sh— orquestrador do pós-install, rodascripts/00..70em ordem.scripts/— 9 scripts numerados (00-apt, 10-apps-deb, 20-dev-tools, 30-keyboard, 40-gnome, 50-dotfiles, 60-ssh, 70-vscode, 90-amd-rocm).dotfiles/—.bashrc,.gitconfig,.profile,.XCompose(cópia do estado atual).gnome/dconf.ini— dump das configs do GNOME.packages/—apt-manual.txt(referência) +code-extensions.txt(39 extensões).autoinstall/user-data— autoinstall pro Ubuntu 26.04 Desktop (NoCloud, sem modificar ISO).autoinstall/meta-data— vazio mas necessário pro NoCloud.autoinstall/README.md— instruções específicas do autoinstall.
Faltam apenas: edição de placeholders no user-data e push pro GitHub.
Tem 3 placeholders pra trocar:
a) Hash da senha — em identity.password:
sudo apt install -y whois
mkpasswd -m sha-512
# Digite uma senha, copie o hash retornado (começa com $6$...)
# Substitua a linha:
# password: "$6$REPLACE_ME$RUN_mkpasswd_-m_sha-512_TO_GENERATE_THIS_HASH"b) Usuário GitHub — em late-commands, linha do git clone:
- curtin in-target --target=/target -- git clone https://github.com/GITHUB_USER/ubuntu-setup.git /home/joao/Projetos/UbuntuTrocar GITHUB_USER pelo seu usuário real.
c) Hostname (opcional) — em identity.hostname. Default é joao-ubuntu.
cd /home/joao/Projetos/Ubuntu
git init
git add .
git commit -m "Initial: post-install scripts + autoinstall for Ubuntu 26.04"
git branch -M main
gh repo create ubuntu-setup --public --source=. --push
# Ou: criar o repo na UI do GitHub e
# git remote add origin git@github.com:SEU_USER/ubuntu-setup.git
# git push -u origin mainConfirme antes do push: abrir
.gitignoree os arquivos emdotfiles/pra garantir que não tem segredo..gitconfigsó tem nome+email — OK.
~/.ssh/→ 1Password (chaves privadas + públicas +known_hosts+configse tiver)- Documentos, projetos em
~/Projetos/...— mover pra HD externo se for grande - Sessões de apps: Telegram (chats locais), Slack (faz logout/login depois), Chrome (se sincroniza com conta, OK)
- Downloads importantes
- Histórico bash (
~/.bash_history) — opcional - Tokens/credentials em
~/.config/(gh CLI, supabase login, fly auth) — vão precisar refazer login depois
# 2.1 — Baixar ISO do Ubuntu 26.04 Desktop em ubuntu.com/download
# 2.2 — Gravar no pendrive (qualquer ferramenta DD)
# Linux: sudo dd if=ubuntu-26.04-desktop-amd64.iso of=/dev/sdX bs=4M status=progress conv=fsync
# Ou: Startup Disk Creator (GUI)
# 2.3 — Adicionar 2ª partição FAT32 com label CIDATA
# Mais fácil pelo gparted:
# - identificar espaço livre depois da partição da ISO
# - criar partição FAT32, label = CIDATA
# Via CLI (o número da partição depende, ajuste sdXN):
sudo mkfs.vfat -n CIDATA /dev/sdXN
# 2.4 — Copiar user-data e meta-data pra dentro
sudo mkdir -p /mnt/cidata
sudo mount /dev/sdXN /mnt/cidata
sudo cp autoinstall/user-data autoinstall/meta-data /mnt/cidata/
sudo umount /mnt/cidataRecomendado: testar primeiro numa VM (virt-manager / QEMU) com a ISO + um disco virtual contendo a partição CIDATA. Descobrir bugs do
user-dataem VM é muito mais barato que no metal.
- Plugar pendrive na máquina alvo.
- Bootar pelo USB (F12/F10/Del depende da BIOS).
- No GRUB do live USB, escolher "Try or Install Ubuntu".
- Não tocar em nada. O cloud-init detecta a partição
CIDATAe roda o autoinstall automaticamente. Vai instalar, configurar, e reiniciar.
Se algo aparecer interativo: provavelmente erro no user-data. Anote a mensagem.
# 4.1 — Login com usuário "joao" e a senha que você gerou no passo 1.1
# 4.2 — Conferir o lembrete deixado pelo autoinstall:
cat ~/PRIMEIRO-LOGIN.md
# 4.3 — Restaurar chaves SSH do 1Password — copiar pra ~/.ssh/:
# (id_ed25519, id_ed25519.pub, known_hosts, config se tiver)
# Faça isso ANTES do bootstrap pra ele não precisar pausar.
# 4.4 — Rodar o bootstrap completo:
cd ~/Projetos/Ubuntu
./bootstrap.sh
# Vai pedir sudo uma vez no início. Depois roda tudo:
# 00-apt: pacotes apt base (tilix, nemo, pavucontrol, telegram-desktop, ...)
# 10-apps: Chrome, VS Code, Slack
# 20-dev: Docker rootless, nvm + Node LTS, flyctl, Supabase CLI, Claude Code
# 30-keyboard: us/alt-intl + cedilla
# 40-gnome: dconf load
# 50-dotfiles: stow dos dotfiles
# 60-ssh: chmod + test GitHub (pula prompt se já tiver chave)
# 70-vscode: instala extensões
# 4.5 — Logout/login (ou reboot) pra:
# - DOCKER_HOST entrar em vigor (Docker rootless)
# - XKBVARIANT/cedilla aplicar em todas as apps
# - grupo docker (se aplicável)
# 4.6 — Drivers AMD + ROCm (manual, NÃO está no bootstrap):
./scripts/90-amd-rocm.sh # imprime instruções; não executa nada
# Verificar versão do amdgpu-install que suporta 26.04 em:
# https://repo.radeon.com/amdgpu-install/
# Editar AMDGPU_VERSION e rodar os comandos manualmente.
# Logout/login depois pra entrar nos grupos render/video.- Slack (já instalado) — login no workspace.
- Chrome — login na conta Google pra sincronizar.
- VS Code — sign in pra sincronizar settings/extensions (se você usa Settings Sync).
- Claude Code —
claudeno terminal e seguir auth flow. - gh CLI —
gh auth login. - flyctl —
fly auth login. - supabase CLI —
supabase login. - Telegram — login com número.
- Logs em
/var/log/installer/no sistema instalado (se chegou na fase de install). - No live USB:
journalctl -bpra ver mensagens do cloud-init. - Erros de YAML aparecem cedo no boot — anote.
- Workaround: comentar
late-commandsproblemáticos e refazer o pendrive.
- Cada script é idempotente — pode re-rodar do zero (
./bootstrap.sh) ou pular pra um específico (./bootstrap.sh 20-dev-tools). lib/common.shtem o helperapt_installque é no-op pra pacotes já instalados.
- Precisa logout/login pro
DOCKER_HOSTser exportado. - Verificar:
systemctl --user status docker.service. - Se necessário:
dockerd-rootless-setuptool.sh installde novo.
- A linha
Suites: jessieemscripts/10-apps-deb.shpode estar desatualizada. - Conferir em https://packagecloud.io/slacktechnologies/slack qual a suite atual.
Quando algo mudar na máquina e você quiser que o repo reflita:
cd ~/Projetos/Ubuntu
# Atualizar dumps
dconf dump / > gnome/dconf.ini
apt-mark showmanual > packages/apt-manual.txt
code --list-extensions > packages/code-extensions.txt
# Se mudou algum dotfile e quer versionar:
cp ~/.bashrc dotfiles/.bashrc
# (se você usou stow, ~/.bashrc já é symlink; nesse caso edite direto em dotfiles/)
git add -A
git commit -m "Atualizar snapshot do estado da máquina"
git push