Debian preseed не выбирает зеркало

Вопрос или проблема

Я пытаюсь настроить полностью автоматизированную установку для debian bookworm vm.

В основном все работает. Но установщик всегда останавливается, чтобы предложить мне выбрать зеркало.

Следует отметить, что когда я устанавливаю протокол на FTP, выбор зеркала работает. Но тогда установка завершается с ошибкой на этапе base-install (конкретно на пакете busybox).

Что я делаю не так?

Вот мой скрипт virt-install:

#!/usr/bin/sh

virt-install \
    --connect qemu:///system \
    --name "${1}" \
    --vcpus 1 \
    --memory 1024 \
    --network default \
    --disk ${HOME}/virtual_machines/"${1}".qcow2,size=25,format=qcow2 \
    --cdrom ${HOME}/download/images/debian-12.9.0-amd64-netinst.iso \
    --install debian12 \
    --initrd-inject ${PWD}/preseed.cfg

и preseed.cfg:

### Locale ###
d-i debian-installer/locale string en_US
d-i keyboard-configuration/xkb-keymap select us

### Network ###
d-i netcfg/choose_interface select auto
d-i netcfg/get_hostname string unassigned-hostname
d-i netcfg/get_domain string unassigned-domain
d-i netcfg/hostname string bookworm-vm
d-i netcfg/wireless_wep string

### Mirrors ###
d-i mirror/protocol string http
d-i mirror/country string US
d-i mirror/http/hostname string mirrors.ocf.berkeley.edu
d-i mirror/http/directory string /debian
d-i mirror/http/proxy string
d-i mirror/suite string stable

### User & Passwords ###
d-i passwd/root-password-crypted password $y$j9T$~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
d-i passwd/user-fullname string Virtual User
d-i passwd/username string usrx
d-i passwd/user-password-crypted password $y$j9T$~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
d-i passwd/user-default-groups string adm sudo

### Time ###
d-i clock-setup/utc boolean true
d-i time/zone string US/Pacific
d-i clock-setup/ntp boolean true

### Disk ###
d-i partman-auto/init_automatically_partition select biggest_free
d-i partman-auto/method string regular
d-i partman-auto/choose_recipe select atomic
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/confirm_nooverwrite boolean true
d-i partman-md/confirm boolean true
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/confirm_nooverwrite boolean true

### Apt ###
d-i apt-setup/cdrom/set-first boolean false
d-i apt-setup/disable-cdrom-entries boolean true
d-i apt-setup/use_mirror boolean true
d-i apt-setup/services-select multiselect security, updates

### Packages ###
d-i pkgsel/run_tasksel boolean false
d-i pkgsel/include string openssh-server build-essential sudo

### Feedback ###
popularity-contest popularity-contest/participate boolean false

### Grub ###
d-i grub-installer/only_debian boolean true
d-i grub-installer/with_other_os boolean true
d-i grub-installer/bootdev  string /dev/vda

### Final ###
d-i finish-install/reboot_in_progress note

Ответ или решение

Для решения проблемы, связанной с тем, что Debian preseed не выбирает зеркало по умолчанию, давайте разберем все аспекты, которые могут влиять на это поведение. Мы также рассмотрим ваш текущий скрипт и preseed-файл, чтобы определить возможные ошибки и предложить оптимальное решение.

Теория

Debian preseed предоставляет возможность автоматизации установки операционной системы Debian на виртуальные машины или физические устройства. Это достигается путем указания различных параметров в файле preseed.cfg, который определяет конфигурацию системы, включая выбор зеркала для загрузки пакетов.

Основные элементы, на которые стоит обратить внимание при конфигурировании preseed для выбора зеркала:

  1. Протокол доступа: в вашем случае это HTTP (и FTP, который, как вы упомянули, имеет проблемы с установкой).
  2. Хостное имя зеркала: это полный адрес сервера, с которого будет производиться загрузка.
  3. Директория: путь, относительно которого хранится дерево пакетов; обычно это "/debian".
  4. Кеширующий прокси: опциональная настройка, если в сети используется прокси-сервер для загрузки.

Пример

В вашем скрипте virt-install и файле preseed.cfg вы уже указали ряд параметров для выбора зеркала:

d-i mirror/protocol string http
d-i mirror/country string US
d-i mirror/http/hostname string mirrors.ocf.berkeley.edu
d-i mirror/http/directory string /debian
d-i mirror/http/proxy string

Эти настройки предназначены для того, чтобы preseed автоматически выбрал зеркало, используя протокол HTTP. Однако возникшая у вас проблема указывает на то, что процесс останавливается, чтобы запросить ввод пользователя для выбора зеркала, что говорит о том, что некоторые параметры могли быть неправильно указаны или неработающие в данном контексте.

Применение

  1. Проверка доступности зеркала: Убедитесь, что указанный URL-адрес mirrors.ocf.berkeley.edu актуален и доступен из вашей сети. Вы можете попробовать выполнить команду curl или wget с сервера, на котором вы запускаете виртуальную машину, чтобы убедиться, что доступ к этому зеркалу возможен.

  2. Актуальность данных зеркала: Возможно, указанные вами данные устарели. Свяжитесь с администраторами зеркала или проверьте сайт на предмет актуальных настроек.

  3. Проверка параметров preseed: Дважды проверьте, что параметры указаны правильно и не содержат опечаток. Особенно обратите внимание на то, что d-i mirror/http/hostname не содержит опечаток.

  4. Тестирование на другом зеркале: Попробуйте сменить зеркало на другой популярный сервер, чтобы исключить возможность проблемы с текущим зеркалом. Например, вы можете использовать официальное зеркало Debian.

  5. Логирование: Включите расширенное логирование для процесса установки, чтобы отслеживать, где именно возникает проблема.

  6. Обновление preseed файла: Убедитесь, что preseed-файл специфицирован строго в соответствии с имеющимися версиями документации. Иногда изменения в конфигурации дистрибутива требуют обновлений в preseed-конфигурациях.

  7. Проблема с протоколами: Поскольку FTP-протокол не работает корректно, возможно, стоит полностью сконцентрироваться на HTTP и проверить, нет ли блокировок портов или других сетевых ограничений, что может препятствовать корректной работе HTTP.

С этими изменениями и проверками вы сможете настроить preseed так, чтобы он автоматически выбирал зеркало без необходимости вмешательства. Убедитесь, что конфигурационные файлы всегда синхронизируются с последними изменениями и рекомендациями от создателей дистрибутива. Если проблема сохранится, рассмотрите возможность обращения к более глубоким уровням настройки сети или взаимодействия с командой поддержки Debian.

Оцените материал
Добавить комментарий

Капча загружается...