如何测试内部驱动器在启动时是否没有分区,如果没有,如何自动设置驱动器?

如何测试内部驱动器在启动时是否没有分区,如果没有,如何自动设置驱动器?

假设我有一组从 PXE 启动的全新服务器。

我想要做的是自动检测内部硬盘未格式化,因此在启动时自动创建分区并格式化。然后将适当的条目添加到 fstab 并安装它。之后,它将保持不变。该驱动器仅用于缓存数据。

我遇到的问题有:1) 识别磁盘是否有分区。即检查磁盘是否有分区表。我可以只测试文件 /dev/sda 是否存在,而不测试 /dev/sda1 是否存在吗?2) 识别我从哪个磁盘启动,这样我就可以忽略它。3) 从命令行创建分区。

因此,我希望整理一个可以放入启动过程的脚本。

答案1

1) 识别磁盘是否有分区。即检查磁盘是否有分区表。我可以只测试文件 /dev/sda 是否存在,而不测试 /dev/sda1 是否存在吗?

我不明白为什么这行不通,但你也fdisk -l /dev/sda可以 列出分区磁盘。

2)识别我从哪个磁盘启动,以便我可以忽略它。

表格应该足以告诉您已安装的文件系统。这应该足以避免系统磁盘。您还可以查找可启动标志。

但是,如果您的目标是在原始磁盘上创建一个分区 - 我不明白为什么您需要特别忽略“系统”分区。

3)从命令行创建分区

我认为 fdisk 没有办法处理这个问题。不过 sfdisk 应该可以。Parted 还可以使用脚本

分区完成后,你可能还需要刷新分区表进而在其上放置一个文件系统

答案2

您可以通过调整 BIOS 启动顺序来实现相同的目的,使硬盘驱动器先于网络/PXE。这样,如果您有一个正常运行的操作系统,它将启动,否则它将尝试 PXE。

相关内容