У меня есть исправительный вопрос для любого, у кого больше опыта в 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, а последующие загрузки будут из установленной ОС.
Когда нам нужно переустановить, мы просто стираем загрузочный сектор изнутри ОС, а затем перезагружаемся.