Я пытаюсь настроить метод установки Ubuntu на некоторые поля. Ящики - это компьютеры x86, которые загружаются из внутреннего хранилища MMC. Я хотел бы, чтобы этот метод был максимально автоматическим, так как у нас может быть большое количество ящиков для его установки; моя главная цель - сделать так, чтобы после каждой установки машины были в согласованном состоянии. Я нашел этот вопрос, но ни один из ответов не решил эту проблему.
Я использую файл preseed для автоматизации шагов установки; установка, похоже, работает на этапе разбиения, но с ошибкой возникает расплывчатое сообщение об ошибке. Вот строки в / var / log / syslog, которые я считаю релевантными:
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
Вот файл preseed, который я использую:
# 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
Я использую файл preseed на USB-накопителе, на котором записано изображение Ubuntu Server 16.04.3, с файлом isolinux / txt.cfg, измененным для использования моего файла preseed. Установка выполняется успешно, когда я делаю обычную установку, поэтому я считаю, что это проблема с файлом preseed.
Обратите внимание, что в ящиках нет доступа в Интернет; они должны использовать HTTP-прокси для apt. Я подтвердил, что прокси-сервер HTTP работает правильно, и он правильно указан в файле preseed.
Я попытался переписать образ ISO, что по-прежнему приводит к той же ошибке.
Есть ли проблема с моим файлом preseed, который приводит к сбою установки?
Оказалось, что в syslog произошла еще одна интересная ошибка:
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
Это то, что мой модифицированный txt.cfg выглядел так:
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
Из этого ответа я получил директивы layoutcode = en (которые предназначены для пропустить подсказки клавиатуры), но оказывается, что это должно быть «us», а не «en». Изменение этого приводит к успешному выполнению команды ckbcomp, что приводит к успешной установке системы.
Оказалось, что в syslog произошла еще одна интересная ошибка:
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
Это то, что мой модифицированный txt.cfg выглядел так:
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
Из этого ответа я получил директивы layoutcode = en (которые предназначены для пропустить подсказки клавиатуры), но оказывается, что это должно быть «us», а не «en». Изменение этого приводит к успешному выполнению команды ckbcomp, что приводит к успешной установке системы.
Оказалось, что в syslog произошла еще одна интересная ошибка:
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
Это то, что мой модифицированный txt.cfg выглядел так:
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
Из этого ответа я получил директивы layoutcode = en (которые предназначены для пропустить подсказки клавиатуры), но оказывается, что это должно быть «us», а не «en». Изменение этого приводит к успешному выполнению команды ckbcomp, что приводит к успешной установке системы.