Назад | Перейти на главную страницу

Кикстарт - как выйти, если ОС уже существует

У меня есть исправительный вопрос для любого, у кого больше опыта в Linux. Мне нужно проверить, установлена ​​ли уже операционная система в моем сценарии кикстарта, и если да, спросить пользователя, хотят ли они продолжить (в основном переустановить) или выйти.

Как это сделать наиболее эффективно?

Я думал сделать что-то вроде следующего:

%pre
#!/bin/sh
if [ -f some_file ]; then
  read -p "An OS already exists, do you want to re-install?" yn
    case $yn in
        [Yy]* ) break;;
        [Nn]* ) exit;;
        * ) echo "Please answer yes or no.";;
    esac
fi

Я не уверен, какой файл лучше всего использовать вместо some_file в моем примере, или это даже хороший способ сделать это.

Обратите внимание, что причина, по которой мне нужно это сделать, заключается в том, что эта установка Linux является частью гораздо более крупной автоматической установки, поэтому пользователя нет, чтобы вручную проверить, существует ли уже ОС.

Где бы располагалась файловая система /, если бы была установлена ​​операционная система? Будет ли он находиться в одном месте на всех узлах, которые вы собираетесь установить?

Вы можете проверить наличие раздела:

[ -b /dev/sdXY ] && { do something ; }

Или логический том:

[ -b /dev/mapper/vg00/lvXYZ ] && { do something ; }

Вы можете попытаться смонтировать его и проверить наличие определенного файла:

mkdir /tmp/mt
if mount /dev/sdXY /tmp/mt && [ -f /tmp/mt/filename ]; then
      do something
fi

Мы просто устанавливаем порядок загрузки BIOS на HD, а затем на PXE.

Это означает, что при первой загрузке система будет установлена ​​из PXE, а последующие загрузки будут из установленной ОС.

Когда нам нужно переустановить, мы просто стираем загрузочный сектор изнутри ОС, а затем перезагружаемся.