web-dev-qa-db-fra.com

Installation sans tête: impossible d'installer busybox-initramfs

J'essaie de mettre en place une méthode pour installer Ubuntu sur certaines boîtes. Les boîtes sont des machines x86 qui démarrent à partir du stockage interne MMC. J'aimerais que la méthode soit aussi automatisée que possible, car nous pourrions avoir un grand nombre de boîtes sur lesquelles l'installer; Mon objectif principal est de faire en sorte que les machines soient dans un état cohérent après l’installation. J'ai trouvé this question, mais aucune des réponses ne résout ce problème.

J'utilise un fichier de préconfiguration pour automatiser les étapes d'installation; l'installation semble fonctionner à travers l'étape de partitionnement, mais elle échoue avec un message d'erreur frustrant et vague. Voici les lignes de/var/log/syslog que je crois pertinentes:

Aug 25 17:46:07 base-installer: apt-install or in-target is already running, so you cannot run either of
Aug 25 17:46:07 base-installer: them again until the other instance finishes. You may be able to use
Aug 25 17:46:07 base-installer: 'chroot /target ...' instead.
Aug 25 17:46:07 in-target: Unexpected error; command not executed: 'sh -c debconf-apt-progress --no-progress --logstderr --     apt-get -q -y --no-remove install busybox-initramfs'
Aug 25 17:46:07 base-installer: error: exiting on error base-installer/kernel/failed-package-install

Voici le fichier de préconfiguration que j'utilise:

# no splash and be verbose
d-i debian-installer/splash boolean false
d-i debian-installer/quiet  boolean false

# installer locale
d-i debian-installer/locale string en_US

# keyboard
d-i console-setup/ask_detect boolean false
d-i keyboard-configuration/xkb-keymap select us

# network
d-i hw-detect/load_firmware boolean true
d-i netcfg/choose_interface select enp1s0
d-i netcfg/disable_autoconfig boolean true
d-i netcfg/disable_dhcp boolean true
d-i netcfg/confirm_static boolean true
d-i netcfg/get_ipaddress string my-lan-ip
d-i netcfg/get_netmask string 255.255.255.0
d-i netcfg/get_gateway string my-lan-gateway
d-i netcfg/get_nameservers string my-nameserver
d-i netcfg/get_hostname string my-hostname
d-i netcfg/get_domain string unassigned-domain
d-i netcfg/hostname string my-hostname

# software mirror
d-i mirror/protocol string http
d-i mirror/country string manual
d-i mirror/http/hostname string archive.ubuntu.com
d-i mirror/http/directory string /ubuntu
d-i mirror/http/proxy string my-http-proxy
d-i mirror/suite string xenial

# accounts
d-i passwd/root-login boolean false
d-i passwd/username string myuser
d-i passwd/user-fullname string Some Full Name
d-i passwd/user-password-crypted password my-encrypted-password
d-i user-setup/encrypt-home boolean false

# clock
d-i clock-setup/utc boolean true
d-i time/zone string US/Eastern
d-i clock-setup/ntp boolean true
d-i clock-setup/ntp-server string my-ntp-server

# partitioning
d-i partman-auto/disk string /dev/mmcblk0
d-i partman-auto/method string lvm
d-i partman-lvm/device_remove_lvm boolean true
d-i partman-lvm/confirm boolean true
d-i partman-lvm/confirm_nooverwrite boolean true
d-i partman-auto-lvm/guided_size string max
d-i partman-auto/choose_recipe select multi
d-i partman/default_filesystem string ext4
d-i partman-partitioning/confirm_write_new_label boolean true
d-i partman/choose_partition select finish
d-i partman/confirm boolean true
d-i partman/mount_style select uuid

# installation
d-i live-installer/net-image string /install/filesystem.squashfs
d-i base-installer/kernel/image string linux-image-generic

# apt
d-i apt-setup/restricted boolean true
d-i apt-setup/universe boolean true
d-i apt-setup/backports boolean true

# package selection
tasksel tasksel/first multiselect standard
d-i pkgsel/include string a few packages
d-i pkgsel/upgrade select safe-upgrade
d-i pkgsel/language-packs multiselect en
d-i pkgsel/update-policy select unattended-upgrades
popularity-contest popularity-contest/participate boolean false
d-i pkgsel/updatedb boolean true

# bootloader
d-i grub-installer/only_debian boolean true
d-i grub-installer/bootdev  string /dev/mmcblk0

# finishing
d-i debian-installer/exit/poweroff boolean true
d-i finish-install/reboot_in_progress note

J'utilise le fichier de préconfiguration sur un lecteur USB sur lequel l'image Ubuntu Server 16.04.3 est écrite, avec le fichier isolinux/txt.cfg modifié pour utiliser mon fichier de préconfiguration. L'installation est réussie quand je fais une installation normale, donc je pense que c'est un problème avec le fichier preseed.

Notez que les boîtes n'ont pas d'accès Internet; ils doivent utiliser un proxy HTTP pour apt. J'ai confirmé que le proxy HTTP fonctionne correctement et qu'il est spécifié correctement dans le fichier preseed.

J'ai essayé de réécrire l'image ISO, ce qui entraîne toujours la même erreur.

Y at-il un problème avec mon fichier de préconfiguration qui provoque l’échec de l’installation?

1
millinon

Il s'est avéré qu'il y avait une autre erreur intéressante dans syslog que j'avais manquée:

Aug 25 21:03:12 live-installer: /usr/bin/ckbcomp: Can not find file "symbols/en" in any known directory
Aug 25 21:03:12 base-installer: warning: /usr/lib/post-base-installer.d/25live-installer-console-setup returned error code 1

Voici à quoi ressemblait mon txt.cfg modifié:

default my-installation
LABEL my-installation
  menu label ^my custom installation
  kernel /install/vmlinuz
  append  file=/cdrom/preseed/my-installation.seed debian-installer/locale=en_US locale=en_US console-setup/ask_detect=false keyboard-configuration/layoutcode=en console-setup/layoutcode=en netcfg/choose_interface=enp1s0 initrd=/install/initrd.gz ramdisk_size=16384 root=/dev/ram rw quiet

J'avais reçu les directives "layoutcode = en" (qui sont censées ignorer les invites du clavier) de this répondre, mais il s'avère que ce devrait être "nous" et non "en". Si vous modifiez cette option, la commande ckbcomp réussit, ce qui aboutit à une installation système réussie.

0
millinon