Lançamento de um erro se um arquivo não existir nos comandos preseed do Ubuntu Installer

2

Estou trabalhando em uma imagem personalizada do Ubuntu Installer, e estou um pouco acima da minha cabeça.

Temos um arquivo de semente personalizado que está executando este comando:

d-i preseed/early_command string /cdrom/Snare/update_v5.sh

Dentro desse arquivo de script, adicionei uma verificação que gera um erro se não conseguir encontrar um arquivo no sistema existente:

if [ ! -f /target/path/to/file.gz ]; then
   logger custom-partition error "File not found, upgrade aborted!"
   logger custom-partition error "Please run the Upgrade Preparation script first."
   exit 1
fi

Quando a verificação falha, gera uma mensagem de erro praticamente inútil e fornece a opção de continuar com o processo de instalação.

Como posso fazer com que ele apresente uma mensagem de erro útil e bloqueie outras etapas de instalação?

    
por Stephen RC 12.04.2013 / 03:08

1 resposta

2

Com sugestões úteis do @CallmeV, encontrei uma solução.

Dentro do script preseed/early_command , você pode configurar um debconf error template e forçar um loop ilimitado para evitar qualquer progresso através do instalador.

if [ ! -f /target/path/to/file.gz ]; then

   . /usr/share/debconf/confmodule

   cat > /tmp/Notification.template <<'!EOF!'
Template: snare-upgrade/notification
Type: error
Description: ERROR - Unable to upgrade!
 Unable to upgrade your existing system... blah blah blah...
!EOF!

   debconf-loadtemplate snare-upgrade /tmp/Notification.template

   while [ 1 ]; do
      db_input critical snare-upgrade/notification || true
      db_go
      db_get snare-upgrade/notification
   done
fi

Como eu disse, muito obrigado a CallmeV e a estas páginas:

por Stephen RC 16.04.2013 / 05:29