Бросок ошибки, если файл не существует в командах Установщика Ubuntu перед семенем

Я работаю над пользовательским изображением Установщика Ubuntu, и я нахожусь в немногим выше моей головы.

У нас есть пользовательский файл семени, который выполняет эту команду:

d-i preseed/early_command string /cdrom/Snare/update_v5.sh

В том файле сценария я добавил проверку, которая бросает ошибку, если он не может найти файл в существующей системе:

if [ ! -f /target/path/to/file.gz ]; then
   logger custom-partition error "File not found, upgrade aborted!"
   logger custom-partition error "Please run the Upgrade Preparation script first."
   exit 1
fi

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

preseed-failure

Как я могу заставить его бросить полезное сообщение об ошибке и блок дальнейшие действия по установке?

3
задан 12 April 2013 в 05:08

1 ответ

С помощью полезных указателей из @CallmeV я нашел решение.

В скрипте preseed/early_command вы можете настроить шаблон debconf error и принудительно запустить неограниченный цикл, чтобы предотвратить дальнейшее продвижение через установщик.

if [ ! -f /target/path/to/file.gz ]; then

   . /usr/share/debconf/confmodule

   cat > /tmp/Notification.template <<'!EOF!'
Template: snare-upgrade/notification
Type: error
Description: ERROR - Unable to upgrade!
 Unable to upgrade your existing system... blah blah blah...
!EOF!

   debconf-loadtemplate snare-upgrade /tmp/Notification.template

   while [ 1 ]; do
      db_input critical snare-upgrade/notification || true
      db_go
      db_get snare-upgrade/notification
   done
fi

Как я уже сказал, большое спасибо CallmeV и этим страницам:

0
ответ дан 12 April 2013 в 05:08

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

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