Software-Raid

如何判斷設備上是否安裝了 grub?

  • March 26, 2021

如何判斷 grub 是否安裝在磁碟上,以及它是否具有哪些設置(值得注意的是,它對 root 參數有什麼設置)

我需要檢查軟體 RAID1 陣列中的許多磁碟,以確保兩個磁碟都安裝了 grub,每個磁碟上的 grub 都具有適當的 root 值。

這是判斷是否安裝了 GRUB 的簡單方法。如果它不起作用,您的file命令的數據庫可能已過時,您可以更新其數據庫或使用另一個答案的替代方法。

您可以使用file來辨識 MBR 中的 GRUB。例如

# file -s /dev/sda
/dev/sda: x86 boot sector; GRand Unified Bootloader, stage1 version 0x3
, stage2 address 0x2000, stage2 segment 0x200; partition 1:
ID=0xfd, starthead 1, startsector 63, 1044162 sectors; partition
2: ID=0x82, starthead 0, startsector 1044225, 1028160 sectors;
partition 3: ID=0xfd, starthead 0, startsector 2072385,
1951447680 sectors, code offset 0x48

root=參數不儲存在 MBR 中,它儲存在 GRUB 的文件中,該menu.lst文件儲存在文件系統中(通常在根 fs 的 /boot/grub 目錄或 /boot 文件系統的 grub 目錄中 - 但並非總是如此,它可以在任何地方)。

您必須解析上面文件的輸出,確定文件在哪個磁碟/分區menu.lst上,掛載它,讀入並解析它。您還需要閱讀 grub/default 文件以確定哪個 grub 菜單項是預設的,因為這可能是您最感興趣的具有 root= 參數的菜單項。

引用自:https://serverfault.com/questions/61400