Назад | Перейти на главную страницу

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 и ​​устаревший диск. Поэтому я ожидаю, что когда он попытается загрузить указанный диск, он будет искать первые 512 МБ, чтобы найти MBR и загрузочный GRUB. Эта часть, похоже, не происходит .. Могу ли я еще что-нибудь проверить, чтобы увидеть, где что-то идет не так?

Пришлось пометить раздел как загрузочный с помощью fdisk.