Skip to content

Latest commit

 

History

History
224 lines (165 loc) · 8.1 KB

File metadata and controls

224 lines (165 loc) · 8.1 KB

Próximos passos — Migração para Ubuntu 26.04

Checklist auto-contido pra retomar a migração depois. Cada bloco assume que você abriu este arquivo do zero, sem contexto extra.


0. Estado atual do repo

Tudo já foi escrito. O que está pronto:

  • bootstrap.sh — orquestrador do pós-install, roda scripts/00..70 em 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.


1. Antes de formatar (nesta máquina)

1.1 Editar autoinstall/user-data

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/Ubuntu

Trocar GITHUB_USER pelo seu usuário real.

c) Hostname (opcional) — em identity.hostname. Default é joao-ubuntu.

1.2 Push pro GitHub

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 main

Confirme antes do push: abrir .gitignore e os arquivos em dotfiles/ pra garantir que não tem segredo. .gitconfig só tem nome+email — OK.

1.3 Backup do que não está no repo

  • ~/.ssh/ → 1Password (chaves privadas + públicas + known_hosts + config se 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. Preparar o pendrive

# 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/cidata

Recomendado: testar primeiro numa VM (virt-manager / QEMU) com a ISO + um disco virtual contendo a partição CIDATA. Descobrir bugs do user-data em VM é muito mais barato que no metal.


3. Instalar Ubuntu 26.04

  1. Plugar pendrive na máquina alvo.
  2. Bootar pelo USB (F12/F10/Del depende da BIOS).
  3. No GRUB do live USB, escolher "Try or Install Ubuntu".
  4. Não tocar em nada. O cloud-init detecta a partição CIDATA e roda o autoinstall automaticamente. Vai instalar, configurar, e reiniciar.

Se algo aparecer interativo: provavelmente erro no user-data. Anote a mensagem.


4. Pós-instalação (primeiro login)

# 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.

4.7 Re-login em apps

  • 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 Codeclaude no terminal e seguir auth flow.
  • gh CLIgh auth login.
  • flyctlfly auth login.
  • supabase CLIsupabase login.
  • Telegram — login com número.

5. Se algo der errado

Autoinstall falhou / parou

  • Logs em /var/log/installer/ no sistema instalado (se chegou na fase de install).
  • No live USB: journalctl -b pra ver mensagens do cloud-init.
  • Erros de YAML aparecem cedo no boot — anote.
  • Workaround: comentar late-commands problemáticos e refazer o pendrive.

bootstrap.sh falhou no meio

  • Cada script é idempotente — pode re-rodar do zero (./bootstrap.sh) ou pular pra um específico (./bootstrap.sh 20-dev-tools).
  • lib/common.sh tem o helper apt_install que é no-op pra pacotes já instalados.

Docker rootless não funciona depois do bootstrap

  • Precisa logout/login pro DOCKER_HOST ser exportado.
  • Verificar: systemctl --user status docker.service.
  • Se necessário: dockerd-rootless-setuptool.sh install de novo.

Repo Slack com erro 404 / suite errada


6. Manutenção depois (refresh do snapshot)

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

7. Referências externas