문맥

문맥

문맥

  • 윈도우 10 홈 21H1
  • 버추얼박스 6.1
  • CentOS 8 VM
  • BIOS 모드:

버추얼박스 BIOS 설정

질문

이 VM에서는 어떤 부팅 기술이 사용되고 있나요?

BIOS가 GRUB2를 로드하는 1단계 MBR 부트 로더를 로드하고 있는 것 같습니다. 혼란스러운 점은 파티션의 훨씬 더 현대적인 레이아웃입니다 /boot.

systemd-boot 스타일 구성을 갖춘 systemd-boot 준비의 하이브리드처럼 느껴지지만 /bootBIOS, MBR 및 GRUB2가 제어됩니다.

분석

systemd-boot는 .NET용 FAT 기반 파일 시스템이 포함된 GPT 디스크가 있는 UEFI 시스템에서만 사용할 수 있다고 생각합니다 /boot.

/dev/sda1내 설치 프로그램은 FAT 기반이 아닌 XFS 와 마찬가지로 합법적인 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.cfg, device.mapi386-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가 담당하고 있습니다.

[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

페도라 30부터, 배포판의 GRUB2 패키지에는 새로운"blscfg" 모듈부트로더 사양 구성 파일을 읽고 GRUB 메뉴 항목을 생성합니다.


일반적으로 GRUB 구성은 다양한 소스에서 나올 수 있습니다. 표준 grub.cfg는 확장 가능한 스크립트를 통해 생성되며, 그 중 일부는 별도의 패키지(예: os-prober)로 설치되며 /boot에서 커널 목록을 수집하는 데만 국한되지 않습니다. 대신 distro에는 /boot/loader/entries를 grub.cfg로 변환하는 grub-mkconfig가 있었습니다.

관련 정보