我有一个对任何有更多 Linux 经验的人来说肯定是补救性的问题。我需要检查我的 kickstart 脚本中是否已安装操作系统,如果已安装,则提示用户是否要继续(基本上是重新安装)或退出。
实现此目的最有效的方法是什么?
我正在考虑做以下的事情:
%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 安装是更大规模自动化安装的一部分,因此用户无需手动检查操作系统是否已存在。
答案1
如果安装了操作系统,/ 文件系统将驻留在哪里?它会位于您打算安装的所有节点上的同一位置吗?
您可以测试分区是否存在:
[ -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
答案2
我们只需将 BIOS 启动顺序设置为 HD,然后是 PXE。
这意味着系统将在首次启动时从 PXE 安装,后续启动将从已安装的操作系统安装。
当我们需要重新安装时,我们只需从操作系统内部擦除引导扇区,然后重新启动。