preseed / late_command сервер Ubuntu 15.04

У меня проблемы с preseed / late_command при установке сервера ubuntu 15.04 amd64 (установка строки cmd)

d-i preseed/late_command string in-target wget http://url

возвращается с кодом выхода 1, а файл отсутствует в файловой системе. Следующая команда также не выполняется (создайте сценарий для загрузки этого файла позже):

d-i preseed/late_command string echo "wget http://url"> /target/home/username/getscript.sh

И эта (только что сделанная в качестве теста) также не работает:

d-i preseed/late_command string apt-get install -y htop

Любая идеи?

Спасибо заранее!

Тим

1
задан 30 August 2015 в 12:20

2 ответа

Мое предположение было бы то, что URL, который Вы пытаетесь получить, становится перенаправленным к https://, и по крайней мере одному из сертификатов в цепочке не доверяют среде установки. Среда установки отличается от целевой среды; среда установки является временным ядром и initrd, на который Вы указываете во время начальной загрузки, и целевая среда - то, что ядро и файловые системы, которые на самом деле установлены.

В точке, в которой preseed/late_command, работал, целевая среда смонтирована в/mnt/target и к командам выполнения там, Вам будет нужно к chroot в него через chroot /mnt/target. После того как Вы сделали это, все команды, которые Вы выполняете, произведут целевую среду, не среду установки. Теперь строка над заголовком - то, что debconf предоставляет Вам эти in-target команда, какой chroots к цели, выполняет данную команду, затем выходит назад к среде установки. Таким образом:

d-i preseed/late_command string apt-get install -y htop

попытки установить htop в среде установки (не "Законченная" целевая среда), в то время как:

d-i preseed/late_command string in-target apt-get install -y htop

попытки установить htop в законченной целевой среде.

Поэтому теперь, когда мы устанавливаем на правильном месте, могло бы также случиться так, что сертификату все еще не доверяют, в этом случае еще можно или устранить доверительную проблему приблизительно с in-target команды, затем сделать wget или бросить осторожность в конец и отключить доверительное сверение wget с чем-то вроде этого:

d-i preseed/late_command string in-target wget -O /tmp/post-install.sh "https://foo.bar/postinstall.sh" --no-check-certificate; in-target chmod +x /tmp/post-install.sh; in-target /bin/bash /tmp/post-install.sh;
1
ответ дан 30 August 2015 в 22:20
  • 1
    То же для меня, делая 1. предложение, предложенное автором, кажется фиксированным Ubuntu 16.04 от упорно продолженного фиолетовый экран во время запуска/начальной загрузки на моем thinkpad x220i. Хотя я don' t понимают механизм позади.. – ycheng 12 April 2019 в 21:13

В Ubuntu 16.04 я имел подобную проблему и узнал после расследования, что wget не был установлен, таким образом, я добавил его к шаблону перед семенем

d-i pkgsel/include string ... wget
1
ответ дан 30 August 2015 в 22:20
  • 1
    И что является целью установить " рекурсия no"? в каких случаях нужно использовать эту опцию? – Bulat M. 20 November 2016 в 20:43

Другие вопросы по тегам:

Похожие вопросы: