假设我有一组从 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。