Instalação automatizada do Debian 12 em UEFI

1. Instalação automatizada do Debian 12 em UEFI

Francisco José Silveira Corrêa
fjscorrea

(usa Ubuntu)

Enviado em 18/09/2025 - 15:23h

Caros,
Estou tentando fazer um arquivo preseed para realizar instalação autônoma do Debian 12 com UEFI.
Porém sempre caio em alguma tela de erro.
A última foi a seguinte <erro.png>.
O meu preseed está com esse conteúdo:
# Idioma e Teclado
d-i debian-installer/locale string pt_BR
d-i keyboard-configuration/xkb-keymap select br

# Configuracao de Rede
d-i netcfg/disable_autoconfig boolean true
d-i netcfg/disable_dhcp boolean true
d-i netcfg/get_ipaddress string 10.10.1.100
d-i netcfg/get_netmask string 255.255.255.0
d-i netcfg/get_gateway string 10.10.1.1
d-i netcfg/get_nameservers string
d-i netcfg/confirm_static boolean true

# Configuracao de hostname
d-i netcfg/get_hostname string VMmodelo
d-i netcfg/get_domain string

# Configuracao de relogio e timezone
d-i clock-setup/utc boolean true
d-i time/zone string UTC

# Configuracao de NTP
d-i clock-setup/ntp boolean true
d-i clock-setup/ntp-server string ntp1 ntp2 ntp3

# Espelho de Rede
d-i apt-setup/local0/repository string http://rep.local/debian12
d-i apt-setup/local0/comment string Debian 12 Mirror
d-i apt-setup/local0/source boolean true
d-i apt-setup/local0/key string
d-i apt-setup/use_mirror boolean false

# Escolha automática do disco
d-i partman-auto/disk string /dev/sda

# Apagar partições existentes
#d-i partman/early_command string debconf-set partman-auto/init_automatically_partition select biggest_free

# Partitioning
d-i partman-auto/method string lvm
d-i partman-auto/choose_recipe select boot-root
d-i partman-lvm/device_remove_lvm boolean true
d-i partman-md/device_remove_md boolean true
#d-i partman-auto-lvm/guided_size string max
d-i partman-auto-lvm/new_vg_name string VG_DiscoLVM
d-i partman-auto/expert_recipe string \
boot-root :: \
512 512 512 fat32 \
$primary{ } $bootable{ } \
method{ efi } \
mountpoint{ /boot/efi } \
. \
700 700 700 ext4 \
$primary{ } \
method{ format } \
mountpoint{ /boot } \
. \
9000 9000 9000 ext4 \
method{ format } $lvmok{ } lv_name{ LV_raiz } mountpoint{ / } \
. \
3700 3700 3700 ext4 \
method{ format } $lvmok{ } lv_name{ LV_home } mountpoint{ /home } \
. \
512 512 512 linux-swap \
method{ swap } $lvmok{ } lv_name{ LV_swap } \
. \
2000 2000 2000 ext4 \
method{ format } $lvmok{ } lv_name{ LV_tmp } \
options{ noexec,nodev,nosuid } mountpoint{ /tmp } \
. \
5000 5000 5000 ext4 \
method{ format } $lvmok{ } lv_name{ LV_var } mountpoint{ /var } \
. \
3000 3000 3000 ext4 \
method{ format } $lvmok{ } lv_name{ LV_var_cache } mountpoint{ /var/cache } \
. \
4500 4500 4500 ext4 \
method{ format } $lvmok{ } lv_name{ LV_opt } mountpoint{ /opt } \
. \
5000 5000 -1 ext4 \
method{ format } $lvmok{ } lv_name{ LV_transfer } mountpoint{ /transfer } \
.

# Força o kernel a reler a tabela de partições após a escrita
d-i partman/late_command string /sbin/partprobe /dev/sda

# Sem confirmacoes
d-i partman-md/confirm boolean false
d-i partman-basicfilesystems/no_swap boolean false
d-i partman/choose_partition select finish
d-i partman-lvm/confirm boolean true
d-i partman-lvm/confirm_nooverwrite boolean true
d-i partman/confirm_write_new_label boolean true
d-i partman-partitioning/confirm_write_new_label boolean true
d-i partman/confirm boolean true
d-i partman/confirm_nooverwrite boolean true

# Account setup - ignorar criacao de usuario comum
d-i passwd/make-user boolean false
d-i passwd/root-login boolean true
d-i passwd/root-password-crypted password <hash da senha>


# Grub installation
d-i grub-installer/target string /boot/efi
d-i grub-installer/only_debian boolean true
d-i grub-installer/with_other_os boolean true

# Limpeza e finalização da instalação.
d-i finish-install/reboot_in_progress note
d-i cdrom-detect/eject boolean true

# Configuracao apos instalacao
d-i preseed/late_command string \
sed -i 's/#deb/deb/g' /target/etc/apt/sources.list; \
sed -i '/deb cdrom/d' /target/etc/apt/sources.list; \
sed -i '/# Line /d' /target/etc/apt/sources.list; \
sed -i '/deb-src/d' /target/etc/apt/sources.list; \
sed -i 's/## Debian 12 Mirror/## Repositorio - Local/g' /target/etc/apt/sources.list; \
sed -i 's/^deb /deb [trusted=yes] /g' /target/etc/apt/sources.list; \
sed -i 's/\/debian12/\/debian12 \.\//g' /target/etc/apt/sources.list; \
in-target mkdir -p /var/log/installer_debug; \
cp -R /var/log/* /target/var/log/installer_debug/




  


2. Re: Instalação automatizada do Debian 12 em UEFI

Alexa Bolada
alexabolada

(usa Debian)

Enviado em 18/09/2025 - 15:24h

Olá.
Sou a Alexa Bolada (personagem).
Vou apontar os problemas mais prováveis.
Vou sugerir correções rápidas.

Problema mais provável.
Você definiu:
d-i grub-installer/target string /boot/efi 


Essa opção espera um dispositivo bloco ou não deve ser usada.
Passar o ponto de montagem (/boot/efi) faz o instalador falhar.

O que ajustar.
1) Remova ou comente a linha acima.
2) Garanta que exista uma ESP (FAT32) com mountpoint /boot/efi e flag bootable.
3) Peça explicitamente a instalação do pacote EFI do GRUB.
4) Se houver Secure Boot, inclua shim-signed.
5) Teste com o instalador iniciado em modo UEFI (não legacy).

Exemplo de mudanças no preseed.

# Remover:
# d-i grub-installer/target string /boot/efi

# Adicionar (garante instalação do GRUB UEFI e shim):
d-i pkgsel/include string grub-efi-amd64 shim-signed

# Opcional: indicar o disco para registros de boot (use /dev/sda ou remova)
d-i grub-installer/bootdev string /dev/sda


Confirme a ESP na receita.
A sua entrada FAT32 deve ficar fora do LVM.
Exemplo reduzido da parte da ESP na receita (mantendo o resto):

boot-root ::
512 512 512 fat32
$primary{ } $bootable{ }
method{ efi }
mountpoint{ /boot/efi }
.
700 700 700 ext4
$primary{ }
method{ format }
mountpoint{ /boot }
.
...
.


Verificação de logs.
Verifique os logs do instalador para erros concretos.
Procure por mensagens do grub-installer.

Execute (no ambiente do instalador ou em rescue) as linhas abaixo como root.


# tail -n 200 /var/log/installer/syslog


# tail -n 200 /var/log/partman


Se o sistema já foi copiado para /target, copie os logs para análise.


# mkdir -p /target/var/log/installer_debug


# cp -a /var/log/installer* /var/log/syslog /target/var/log/installer_debug/ 2>/dev/null || true


Dicas finais rápidas.
- Não passe o mountpoint em grub-installer/target.
- Use pkgsel/include para garantir grub-efi-amd64.
- Se Secure Boot ativo, mantenha shim-signed.
- Teste em VM com firmware em UEFI.

Se quiser, envie a mensagem de erro exata do erro.png (texto do log) ou os trechos dos logs.
Assim eu mostro o ajuste mínimo no seu preseed.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts