GRUB2 未从 MBR 加载

GRUB2 未从 MBR 加载

我有一台使用 PXE 映像的新计算机。它会加载内核、initrd 并验​​证是否需要应用映像。如果需要,它会执行一些逻辑,对磁盘进行分区(BIOS,非 GPT)并应用磁盘映像(SLES 12 SP2),然后通过网络进行 TFTP 传输。在此环境中,它会直接从启动分区加载内核和 initrd,并从根分区启动 systemd。但是,如果我尝试直接启动驱动器而不使用 PXE 启动,我会收到通用的“未找到可启动操作系统”错误,并且没有 GRUB。

因此从操作系统来看,我完成了常规的例行工作。

该驱动器是 SSD。验证我当前的磁盘和分区:

# fdisk -l
Disk /dev/sda: 119.2 GiB, 128035676160 bytes, 250069680 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0x63305a1b

Device     Boot   Start       End   Sectors    Size Id Type
/dev/sda1          2048   2056319   2054272 1003.1M 82 Linux swap / Solaris
/dev/sda2       2058240 250067789 248009550  118.3G 83 Linux

# lsblk
NAME   MAJ:MIN RM    SIZE RO TYPE MOUNTPOINT
sda      8:0    0  119.2G  0 disk 
├─sda1   8:1    0 1003.1M  0 part [SWAP]
└─sda2   8:2    0  118.3G  0 part /

# cat /proc/scsi/scsi
Attached devices:
  Host: scsi0 Channel: 00 Id: 00 Lun: 00
  Vendor: ATA      Model: SanDisk SD7SN3Q- Rev: 0006
  Type:   Direct-Access                    ANSI  SCSI revision: 05

将 GRUB2 安装到 MBR:

# grub2-install /dev/sda                                                                                                                                                                                                                           
Installing for i386-pc platform.
Installation finished. No error reported.

然后生成我的配置:

# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.4.120-92.70-default
Found initrd image: /boot/initrd-4.4.120-92.70-default
done

现在在 UEFI 选项中,我已禁用 UEFI 启动。相反,它会尝试使用传统 PXE 并以传统方式启动驱动器。因此,我预计当它尝试启动该磁盘时,它会查看前 512MB 以找到 MBR 并启动 GRUB。然而,这部分似乎没有发生。我还能检查其他什么来查看哪里可能出了问题吗?

答案1

必须使用 fdisk 将分区标记为可启动。

相关内容