Я хотел бы знать, как обновить grub-pc в производном дистрибутиве ubuntu 10.04 без диалогового окна configure grub-pc ncurses. Я пробовал исследовать debconf-get-selections до и после, а также варианты:
apt-get -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" --force-yes -fuy install grub-pc
а также установка DEBIAN_FRONTEND:
export DEBIAN_FRONTEND=noninteractive
Все безрезультатно, я хочу сохранить локальную версию файла конфигурации и использовать этот код в сценарии для автономной установки.
вы можете предварительно загрузить ответ debconf с помощью 'debconf-set-selections'
сначала установите debconf-utils на хост, на котором уже установлен grub-pc. затем запустите:
debconf-get-selections | grep grub-pc > /tmp/grubpc.debconf
у вас будет файл, который выглядит примерно так:
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
Затем отредактируйте /tmp/grubpc.debconf в соответствии с новой системой. В частности, запись grub-pc / install_devices.
Вам не понадобятся все эти записи. Я предполагаю, что для grub-pc вам, вероятно, понадобятся только записи install_devices и linux_cmdline *, и (если у вас ранее был установлен grub-legacy), возможно, запись chainload_from_menu.lst.
После того, как вы отредактировали файл, скопируйте его на удаленную машину и загрузите в debconf-set-selections.
Теперь у вас должна быть возможность удаленно установить grub-pc без диалога debconf.
[ потом ]
Пакет grub-pc зависит от ucf, который обеспечивает такое же управление conffile для файлов, принадлежащих / созданных пакетом, который не указан как conffile.
Во всех системах, которые я проверял до сих пор, / var / lib / ucf / cache / содержит файл с именем: etc: default: grub, так что это вероятный кандидат на то, чтобы вызвать это.
попробуйте раскомментировать строку conf_force_conffold = YES в /etc/ucf.conf на целевой машине. это можно автоматизировать для массового обновления многих машин, конечно, с помощью scp или sed (для этого, похоже, нет записи в debconf).
если это является причиной этого, тот факт, что он игнорирует ваш параметр DEBIAN_FRONTEND = noninteractive, может потребовать отчета об ошибке. глядя на сценарии, и debconf, и ucf, похоже, используют DEBIAN_HAS_FRONTEND env var (но я не уверен, предназначен ли он для определения пользователем или для внутреннего использования. Он не упоминается на страницах руководства).
Также может быть ошибка, что ucf не наследует заданный вами параметр dpkg --force-confold ... но ucf может не знать об этом.