コンテクスト

コンテクスト

コンテクスト

  • Windows 10 Home 21H1
  • バーチャルボックス6.1
  • CentOS 8 仮想マシン
  • BIOS モード:

VirtualBox BIOS設定

質問

この VM ではどのようなブート テクノロジが使用されていますか?

BIOS がステージ 1 MBR ブート ローダーをロードし、それが GRUB2 をロードしているのではないかと思います。混乱しているのは、/bootパーティションのレイアウトがはるかに新しいことです。

/bootこれは、systemd-boot スタイルの設定で、BIOS、MBR、および GRUB2 が制御する、systemd-boot prepped のハイブリッドのように感じられます。

分析

systemd-boot は、FAT ベースのファイルシステムを含む GPT ディスクを備えた UEFI システムでのみ使用できると思います/boot

/dev/sda1私のインストーラーは、 XFS が FAT ベースではないため、正当な systemd-boot 拡張ブートローダーパーティション (XBOOTLDR) を作成しませんでした。

私のVMはEFIを使用しないように設定されているので(つまりBIOSがデフォルトになっている)、CentOS 8は正しいディレクトリ構造systemd-boot ( /boot/loader/entries/) の場合、パーティションタイプが正しくありません(非 ESP/XBOOTLDR 上の XFS) BIOS を使用しているため、これは問題ではありません。

私の知る限り、GRUB2 は MBR ブート セクターによってロードされています。その後、GRUB2 は/boot/loader/entries/?内のブート メニュー フラグメントを取得します。

/boot/efi/*空のディレクトリです。通常、grub 構成ファイルと EFI イメージが格納されています。

/boot/grub2/grub.cfgdevice.mapおよびが含まれていますi386-pc/*.mod- GRUB2 が適切にインストールされていることを示す良い兆候です。

システムがプレーンな GRUB ではなく systemd-boot スタイルの設定を使用していることを示すエントリがあります。

[root@c8 ~]# cat /boot/loader/entries/7d05af5fc5db47fbb5e0c5c6d5bdece7-4.18.0-305.10.2.el8_4.x86_64.conf
title CentOS (4.18.0-305.10.2.el8_4.x86_64) 8
version 4.18.0-305.10.2.el8_4.x86_64
linux /vmlinuz-4.18.0-305.10.2.el8_4.x86_64
initrd /initramfs-4.18.0-305.10.2.el8_4.x86_64.img $tuned_initrd
options $kernelopts $tuned_params
id centos-20210720173403-4.18.0-305.10.2.el8_4.x86_64
grub_users $grub_users
grub_arg --unrestricted
grub_class kernel

ディスク検査

MBR ディスクと msdos パーティション テーブル:

[root@c8 ~]# lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda           8:0    0   80G  0 disk
├─sda1        8:1    0    1G  0 part /boot
└─sda2        8:2    0   79G  0 part
  ├─cl-root 253:0    0 49.8G  0 lvm  /
  ├─cl-swap 253:1    0    5G  0 lvm  [SWAP]
  └─cl-home 253:2    0 24.3G  0 lvm  /home
sr0          11:0    1 1024M  0 rom

[root@c8 ~]# parted -l /dev/sda
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sda: 85.9GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  1075MB  1074MB  primary  xfs          boot
 2      1075MB  85.9GB  84.8GB  primary               lvm


[root@c8 ~]# file -sL /dev/{sda,sda1}
/dev/sda:  DOS/MBR boot sector
/dev/sda1: SGI XFS filesystem data (blksz 4096, inosz 512, v2 dirs)

[root@c8 ~]# df -hTP
Filesystem          Type      Size  Used Avail Use% Mounted on
/dev/mapper/cl-root xfs        50G  6.1G   44G  13% /
/dev/sda1           xfs      1014M  407M  608M  41% /boot

ファームウェアによってロードされたイメージを検査できません - BIOS が担当しているもう 1 つの兆候:

[root@c8 ~]# bootctl status
Couldn't find EFI system partition. It is recommended to mount it to /boot or /efi.
Alternatively, use --path= to specify path to mount point.
System:
    Not booted with EFI

[root@c8 ~]# efibootmgr -v
EFI variables are not supported on this system.

答え1

Fedora 30 以降ディストリビューションのGRUB2パッケージには新しい「blscfg」モジュールブートローダー仕様の設定ファイルを読み取り、GRUB メニュー項目を生成します。


一般的に、GRUB の設定はさまざまなソースから取得できます。標準の grub.cfg は拡張可能なスクリプトによって生成されます。拡張可能なスクリプトの一部は別のパッケージ (os-prober など) によってインストールされ、/boot からカーネルのリストを収集するだけに限定されません。代わりに、ディストリビューションに /boot/loader/entries を grub.cfg に変換する grub-mkconfig が含まれていても、特に異常なことはありません。

関連情報