Atualização autônoma do grub-pc

5

Eu gostaria de saber como atualizar o grub-pc em uma distro derivativa do Ubuntu 10.04 sem o diálogo baseado no ncurses configure grub-pc. Eu tentei examinar debconf-get-selections antes e depois, bem como variações em:

apt-get -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" --force-yes -fuy install grub-pc

bem como definir DEBIAN_FRONTEND:

export DEBIAN_FRONTEND=noninteractive

Tudo isso sem sucesso, o que desejo fazer é manter a versão local do arquivo de configuração e usar esse código em um script para instalação off-line.

    
por fecko2130 12.09.2011 / 16:21

1 resposta

4

você pode pré-carregar a resposta debconf com 'debconf-set-selections'

Primeiro, instale o debconf-utils em um host que já tenha o grub-pc instalado. então corra:

debconf-get-selections | grep grub-pc > /tmp/grubpc.debconf

você terá um arquivo com a seguinte aparência:

grub-pc grub2/kfreebsd_cmdline  string
grub-pc grub2/device_map_regenerated    note
grub-pc grub2/linux_cmdline     string
grub-pc grub-pc/install_devices_failed  boolean false
grub-pc grub-pc/chainload_from_menu.lst boolean true
grub-pc grub-pc/kopt_extracted  boolean true
grub-pc grub-pc/postrm_purge_boot_grub  boolean false
grub-pc grub2/kfreebsd_cmdline_default  string  quiet
grub-pc grub2/linux_cmdline_default     string
grub-pc grub-pc/install_devices_empty   boolean false
grub-pc grub-pc/install_devices multiselect     /dev/sda
grub-pc grub-pc/install_devices_failed_upgrade  boolean true
grub-pc grub-pc/install_devices_disks_changed   multiselect     /dev/sda
grub-pc grub-pc/mixed_legacy_and_grub2  boolean true

Em seguida, edite /tmp/grubpc.debconf para adequar-se ao novo sistema. Em particular, a entrada grub-pc / install_devices.

Você não precisará de todas essas entradas. Meu palpite é que, para o grub-pc, você provavelmente só precisa das entradas install_devices e linux_cmdline *, e (se você já tinha o grub-legacy instalado), talvez a entrada chainload_from_menu.lst.

Depois de ter editado o arquivo, scp-lo para a máquina remota e alimentá-lo em debconf-set-seleções.

Agora você deve poder instalar remotamente o grub-pc sem um diálogo debconf.

[mais tarde]

O pacote grub-pc depende do ucf, que fornece o mesmo tipo de gerenciamento de arquivo de configuração para os arquivos pertencentes / criados por um pacote que não é listado como um arquivo de configuração.

Em todos os sistemas que eu verifiquei até agora, / var / lib / ucf / cache / contém um arquivo chamado: etc: default: grub, então é um provável candidato a causar isso.

tente remover o comentário da linha 'conf_force_conffold = YES' em /etc/ucf.conf na máquina de destino. isso pode ser automatizado para atualização em massa de muitas máquinas, é claro, com scp ou sed (não parece haver uma entrada debconf para isso).

se isso é o que está causando isso, o fato de que ele está ignorando sua configuração DEBIAN_FRONTEND = não interativa pode exigir um relatório de bug. olhando para os scripts, tanto o debconf quanto o ucf parecem usar um DEBIAN_HAS_FRONTEND env var (mas não tenho certeza se ele deve ser definido pelo usuário ou usado internamente. Ele não é mencionado nas man pages).

Também pode ser um bug que o ucf não herde a configuração do dpkg --force-confold que você especificou ... mas não há como o ucf saber sobre isso.

    
por 12.09.2011 / 16:46

Tags