@HardcoreVGN

(Ubuntu Mint) Preseed, как сделать автоустановку?

Суть вопроса, нашел в минте файл который отвечает за автоустановку isolinux.txt
Сделал отдельный preseed файл, почти всё отрабатывает, но всё равно выбивает окно с запросом выбора клавиатуры и плюс выходит запрос на перезагрузку, может кто помочь убрать их, уже всю голову сломал.
Плюс может кто сможет подсказать как создать второго пользователя с правами админа и с доступом к sudo во время автоустанвоки, знаю что есть preseed/late_command и в него можно забить скрипт на баше под chroot, но вот скрип не отрабатывает (может я его просто не туда положил, в данный момент находится в корне (там где лежат папки preseed,boot,isolinux и т.д.)).

Версия ОС: Mint 19.3 Tricia
preseed:
spoiler
# Locales
d-i debian-installer/locale string ru_RU.UTF-8

# Keyboard
d-i console-setup/ask_detect boolean false
d-i localechooser/shortlist select RU
d-i console-setup/layoutcode string ru
d-i console-setup/variant select Россия
d-i console-setup/toggle select Alt+Shift

# Network
d-i netcfg/choose_interface select auto
d-i netcfg/get_hostname string PC??
d-i netcfg/dhcp_failed note
d-i netcfg/dhcp_options select Do not configure the network at this time

# Clock
d-i clock-setup/utc boolean true
d-i time/zone string Europe/Moscow
d-i clock-setup/ntp boolean true

# Users
d-i passwd/root-login boolean true
d-i passwd/make-user boolean true
d-i passwd/root-password-crypted password $1$oEfU93nJ$xGwMnobNa16Mq.umvyUvY.
d-i passwd/user-fullname string User
d-i passwd/username string user
d-i passwd/user-password-crypted password
d-i user-setup/allow-password-weak boolean true
d-i user-setup/encrypt-home boolean false

# Partitioning
d-i partman-auto/disk string /dev/sda
d-i partman-auto/method string regular
partman-auto partman-auto/init_automatically_partition select Guided - use entire disk
partman-auto partman-auto/automatically_partition select
d-i partman-auto/purge_lvm_from_device boolean true
d-i partman/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

# GRUB
d-i grub-installer/only_debian boolean true
d-i grub-installer/with_other_os boolean true

# APT
d-i apt-setup/restricted boolean true
d-i apt-setup/universe boolean true
d-i apt-setup/multiverse boolean true
d-i apt-setup/non-free boolean true
d-i mirror/ftp/proxy string
d-i mirror/http/proxy string

# At last
d-i finish-install/reboot_in_progress note

tasksel tasksel/first multiselect ubuntu-desktop

d-i preseed/late_command string chroot /target chmod +x /install/createprofile.sh; chroot /target bash /install/createprofile.sh


Скрипт на баше
spoiler
<br>
#!/bin/bash<br>
<br>
#################################################<br>
 # Скрипт автоматического создания пользователя  #<br>
 # с отправной отсчета на E-mail                 #<br>
 # Написал: Клюкин Н.С.                          #<br>
 # E-mail: nik@nika-com.ru                       #<br>
 # WWW: http://www.nika-com.ru                   #<br>
 # Спецально для ООО "Компания НИКА"             #<br>
#################################################<br>
<br>
 # Задаём основные переменные<br>
PATCH=/var/calculate/user-create/<br>
<br>
 # Очищаем основное окно скрипта<br>
clear<br>
<br>
 # Секция ввода данных о пользователя (Ф.И.О.)<br>
echo "########## ВВОД ДАННЫХ О НОВОМ ПОЛЬЗОВАТЕЛЕ ##########"<br>
echo<br>
echo -e  "Фамилия И.О.: \c"<br>
read FULLNAME<br>
<br>
 # Проверка ввода данных о пользователе<br>
if [ -z "$FULLNAME" ]<br>
then<br>
    clear<br>
    echo<br>
    echo "### ВНИМАНИЕ ОШИБКА!!! ###"<br>
    echo<br>
    echo "Не введены данные о пользователе"<br>
    echo<br>
    echo "Работа зевершена"<br>
    echo<br>
    exit 1<br>
fi<br>
clear<br>
<br>
 # Секция ввода логина пользователя<br>
echo "########## ВВОД ДАННЫХ О НОВОМ ПОЛЬЗОВАТЕЛЕ ##########"<br>
echo<br>
echo -e "Логин пользователя: \c"<br>
read LOGIN<br>
<br>
 # Проверка ввода данных логина<br>
if [ -z "$LOGIN" ]<br>
then<br>
    clear<br>
    echo<br>
    echo "### ВНИМАНИЕ ОШИБКА!!! ###"<br>
    echo<br>
    echo "Не введен логин пользователя"<br>
    echo<br>
    echo "Работа зевершена"<br>
    echo<br>
    exit 1<br>
fi<br>
if [ "`echo $LOGIN | sed 's/[a-z,0-9,_,-]*//'`" = "" ];<br>
then<br>
    echo<br>
    echo "Логин корректен"<br>
else<br>
    clear<br>
    echo<br>
    echo "### ВНИМАНИЕ ОШИБКА!!! ###"<br>
    echo<br>
    echo "Логин некорректен"<br>
    exit 1<br>
fi<br>
sleep 03<br>
clear<br>
<br>
 # Запуск генератора паролей<br>
echo "########## ВВОД ДАННЫХ О НОВОМ ПОЛЬЗОВАТЕЛЕ ##########"<br>
echo<br>
echo "Генерация пароля для пользователя"<br>
echo<br>
MATRIX="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"<br>
LENGTH="8"<br>
while [ "${n:=1}" -le "$LENGTH" ]<br>
do<br>
    PASS="$PASS${MATRIX:$(($RANDOM%${#MATRIX})):1}"<br>
    let n+=1<br>
done<br>
printf "[%60s] 0\045\r" " "<br>
for ((i=1;i<=10;i++)) {<br>
    sleep .25<br>
    printf "[%60s] $((i*10))\045\r" " "<br>
    printf "[%$((i*6))s\r" " " | tr ' ' '#'<br>
}<br>
echo<br>
echo -e "\nДля пользователя создан пароль: "$PASS""<br>
sleep 02<br>
clear<br>
<br>
 # Секция ввода данных о дополнительных группах UNIX<br>
echo "########## ВВОД ДАННЫХ О НОВОМ ПОЛЬЗОВАТЕЛЕ ##########"<br>
echo<br>
echo "users     - Группа доступа к Network manager"<br>
echo "wheel     - Группа доступа для получения привилегии используя команду su"<br>
echo "audio     - Группа предоставляет доступ к звуковой карте"<br>
echo "cdrom     - Группа доступа к CD/DVD приводу"<br>
echo "video     - Группа доступа к TV-тюнеру"<br>
echo "cdrw      - Группа доступа запись на CD/DVD-диски"<br>
echo "usb       - Группа доступа к mp3-плеерам, флеш-накопителям"<br>
echo "plugdev   - Группа доступа монтирование USB-устройств"<br>
echo "games     - Группа доступа к играм"<br>
echo "scanner   - Группа доступа к сканеру"<br>
echo "lp        - Группа доступа к сканеру, встроенному в МФУ"<br>
echo "uucp      - Группа доступа к модему"<br>
echo<br>
echo<br>
echo -e "Введите дополнительные группы пользователя: \c"<br>
read UGROUP<br>
<br>
 # Проверка ввода данных о дополнительных группах UNIX<br>
if [ -z "$UGROUP" ]<br>
then<br>
    clear<br>
    echo<br>
    echo "### ВНИМАНИЕ ОШИБКА!!! ###"<br>
    echo<br>
    echo "Не введены данные о дополнительных группах UNIX"<br>
    echo<br>
    echo "Работа завершена"<br>
    exit 1<br>
fi<br>
clear<br>
<br>
 # Секция проверки введеных данных<br>
echo "########## ПРОВЕРКА ВВЕДЕНЫХ ВАМИ ДАННЫХ ##########"<br>
echo<br>
echo<br>
echo "Пользователь:                     $FULLNAME"<br>
echo "Логин UNIX:                       $LOGIN"<br>
echo "Допольнительные группы UNIX:      $UGROUP"<br>
echo "Пароль пользователя:              $PASS"<br>
echo<br>
echo<br>
 # Секция проверки введеных вами данных<br>
echo -e "Вы хотите продолжить? (y/n) \c"<br>
read ZAPROS<br>
while [ "$ZAPROS" = n ]<br>
do<br>
    clear<br>
    echo<br>
    echo "### ВНИМАНИЕ!!! ###"<br>
    echo<br>
    echo "Работа скрипта прервана"<br>
    echo<br>
    exit 0<br>
done<br>
clear<br>
<br>
 # Секция создания пользователя UNIX<br>
echo "########## ВЫПОЛНЕНИЕ ПОСТАВЛЕНЫХ ЗАДАЧ ##########"<br>
echo<br>
echo ">Создание пользователя UNIX"<br>
echo<br>
printf "[%60s] 0\045\r" " "<br>
for ((i=1;i<=10;i++)) {<br>
    sleep .25<br>
    printf "[%60s] $((i*10))\045\r" " "<br>
    printf "[%$((i*6))s\r" " " | tr ' ' '#'<br>
}<br>
echo -e<br>
/usr/bin/cl-useradd -G $UGROUP -c "$FULLNAME" $LOGIN unix<br>
echo -e "$PASS" | cl-usermod -P $LOGIN unix<br>
echo -e "\nГотово."<br>
sleep 02<br>
clear<br>
<br>
 # Секция создания пользователя UNIX<br>
echo "########## ВЫПОЛНЕНИЕ ПОСТАВЛЕНЫХ ЗАДАЧ ##########"<br>
echo<br>
echo ">>Создание пользователя UNIX"<br>
echo<br>
printf "[%60s] 0\045\r" " "<br>
for ((i=1;i<=10;i++)) {<br>
    sleep .25<br>
    printf "[%60s] $((i*10))\045\r" " "<br>
    printf "[%$((i*6))s\r" " " | tr ' ' '#'<br>
}<br>
echo -e<br>
/usr/bin/cl-useradd -c "$FULLNAME" -g $SGROUP $LOGIN samba<br>
echo -e "$PASS" | cl-usermod -P $LOGIN samba<br>
echo -e "\nГотово."<br>
sleep 02<br>
clear<br>
clear<br>
<br>
echo "Создание пользователя завершено: `date`"                  >$PATCH/$LOGIN.txt<br>
echo ""                                                         >>$PATCH/$LOGIN.txt<br>
echo "Пользователь:                     $FULLNAME"              >>$PATCH/$LOGIN.txt<br>
echo "Логин UNIX:                       $LOGIN"                 >>$PATCH/$LOGIN.txt<br>
echo "Допольнительные группы UNIX:      $UGROUP"                >>$PATCH/$LOGIN.txt<br>
echo "Пароль пользователя:              $PASS"                  >>$PATCH/$LOGIN.txt<br>
echo                                                            >>$PATCH/$LOGIN.txt<br>
<br>
echo "########## ВЫПОЛНЕНИЕ ПОСТАВЛЕНЫХ ЗАДАЧ ##########"<br>
echo<br>
echo ">>>>>>>Отправка письма с данными администратору"<br>
echo<br>
printf "[%60s] 0\045\r" " "<br>
for ((i=1;i<=10;i++)) {<br>
    sleep .25<br>
    printf "[%60s] $((i*10))\045\r" " "<br>
    printf "[%$((i*6))s\r" " " | tr ' ' '#'<br>
}<br>
echo<br>
sendEmail -f r.saf@i-help.ru -t $ADMMAIL -o message-charset=utf-8 -u "Пользователь $FULLNAME создан" -m "<br>
Создание пользователя завершено: `date`<br>
<br>
Пользователь:                   $FULLNAME<br>
Логин UNIX:                     $LOGIN<br>
Логин FTP:                      $LOGIN<br>
Адрес электронной почты:        $LOGIN@$DOMAIN<br>
Основная группа samba:          $SGROUP ($JGROUP)<br>
Допольнительные группы UNIX:    $UGROUP<br>
Группы Proxy:                   $PGROUP<br>
Основная группа Jabber:         $JGROUP<br>
Пользователь Jabber:            $LOGIN@$DOMAIN<br>
Пароль пользователя:            $PASS<br>
<br>
" -s smtp.yandex.ru -xu r.saf@i-help.ru -xp kolbasa -l $PATCH/send.log -a $PATCH/$LOGIN.txt<br>
sleep 02<br>
clear<br>
exit 1<br>
<br>


Совсем зеленый в этих линуксах, но стараюсь разобраться. Заранее всем спасибо за ответы.
  • Вопрос задан
  • 220 просмотров
Пригласить эксперта
Ответы на вопрос 1
@neol
выбивает окно с запросом выбора клавиатуры

Попробуйте так:
d-i debian-installer/language string en_US:en
d-i debian-installer/country string GB
d-i debian-installer/locale string en_US.UTF-8
d-i localechooser/supported-locales multiselect ru_RU.UTF-8, ru_RU.CP1251
d-i keyboard-configuration/xkb-keymap select us


плюс выходит запрос на перезагрузку

Подозреваю, что в этом виноват ваш скрипт, который завершается ненулевым кодом возврата.
Попробуйте закоментировать строчку с ним ради эксперимента.

Скрипт на баше

Жесть какая-то. Вам же там всё-равно данные вводить приходится, нафига оно надо?
Для такого лучше использовать ansible или вообще вручную пользователя добавить после установки.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы