Lubuntu 18.04가 설치된 이 노트북에는 부트로더가 설치되어 사용됩니까? 그렇지 않다면 대신 무엇을 사용합니까? 시작 프로세스는 무엇입니까?
노트북이 BIOS 대신 UEFI를 사용합니까? UEFI는 BIOS 교체 외에 부트로더이기도 합니까?
나는 팔로우한다https://unix.stackexchange.com/a/137587/674부트로더를 찾으세요.
감사해요.
$ sudo parted -l
[sudo] password for t:
Model: ATA TOSHIBA MQ01ABF0 (scsi)
Disk /dev/sda: 500GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 538MB 537MB fat32 EFI System Partition boot, esp
2 538MB 500GB 500GB ext4
$ sudo dd if=/dev/sda bs=512 count=1 2>&1 | grep GRUB
$ sudo dd if=/dev/sda bs=512 count=1 2>&1 | grep LILO
$ sudo ./bootinfoscript --stdout
Boot Info Script 0.61 [1 April 2012]
============================= Boot Info Summary: ===============================
=> No boot loader is installed in the MBR of /dev/sda.
sda1: __________________________________________________________________________
File system: vfat
Boot sector type: FAT32
Boot sector info: No errors found in the Boot Parameter Block.
Operating System:
Boot files: /efi/BOOT/fbx64.efi /efi/ubuntu/fwupx64.efi
/efi/ubuntu/grubx64.efi /efi/ubuntu/mmx64.efi
/efi/ubuntu/shimx64.efi
sda2: __________________________________________________________________________
File system: ext4
Boot sector type: -
Boot sector info:
Operating System: Ubuntu 18.04.2 LTS
Boot files: /boot/grub/grub.cfg /etc/fstab
============================ Drive/Partition Info: =============================
Drive: sda _____________________________________________________________________
Disk /dev/sda: 465.8 GiB, 500107862016 bytes, 976773168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Partition Boot Start Sector End Sector # of Sectors Id System
/dev/sda1 1 976,773,167 976,773,167 ee GPT
GUID Partition Table detected.
Partition Start Sector End Sector # of Sectors System
/dev/sda1 2,048 1,050,623 1,048,576 EFI System partition
/dev/sda2 1,050,624 976,771,071 975,720,448 Data partition (Linux)
"blkid" output: ________________________________________________________________
Device UUID TYPE LABEL
/dev/sda1 0C1E-EE69 vfat
/dev/sda2 7a7ed7ca-d939-49d6-8951-ba573929f41f ext4
================================ Mount points: =================================
Device Mount_Point Type Options
/dev/sda1 /boot/efi vfat (rw,relatime,fmask=0077,dmask=0077,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro)
/dev/sda2 / ext4 (rw,relatime,errors=remount-ro,data=ordered)
=========================== sda2/boot/grub/grub.cfg: ===========================
--------------------------------------------------------------------------------
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#
### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
set have_grubenv=true
load_env
fi
if [ "${next_entry}" ] ; then
set default="${next_entry}"
set next_entry=
save_env next_entry
set boot_once=true
else
set default="0"
fi
if [ x"${feature_menuentry_id}" = xy ]; then
menuentry_id_option="--id"
else
menuentry_id_option=""
fi
export menuentry_id_option
if [ "${prev_saved_entry}" ]; then
set saved_entry="${prev_saved_entry}"
save_env saved_entry
set prev_saved_entry=
save_env prev_saved_entry
set boot_once=true
fi
function savedefault {
if [ -z "${boot_once}" ]; then
saved_entry="${chosen}"
save_env saved_entry
fi
}
function recordfail {
set recordfail=1
if [ -n "${have_grubenv}" ]; then if [ -z "${boot_once}" ]; then save_env recordfail; fi; fi
}
function load_video {
if [ x$feature_all_video_module = xy ]; then
insmod all_video
else
insmod efi_gop
insmod efi_uga
insmod ieee1275_fb
insmod vbe
insmod vga
insmod video_bochs
insmod video_cirrus
fi
}
if [ x$feature_default_font_path = xy ] ; then
font=unicode
else
insmod part_gpt
insmod ext2
set root='hd0,gpt2'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2 7a7ed7ca-d939-49d6-8951-ba573929f41f
else
search --no-floppy --fs-uuid --set=root 7a7ed7ca-d939-49d6-8951-ba573929f41f
fi
font="/usr/share/grub/unicode.pf2"
fi
if loadfont $font ; then
set gfxmode=auto
load_video
insmod gfxterm
set locale_dir=$prefix/locale
set lang=en_US
insmod gettext
fi
terminal_output gfxterm
if [ "${recordfail}" = 1 ] ; then
set timeout=30
else
if [ x$feature_timeout_style = xy ] ; then
set timeout_style=hidden
set timeout=0
# Fallback hidden-timeout code in case the timeout_style feature is
# unavailable.
elif sleep --interruptible 0 ; then
set timeout=0
fi
fi
### END /etc/grub.d/00_header ###
### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=white/black
set menu_color_highlight=black/light-gray
### END /etc/grub.d/05_debian_theme ###
### BEGIN /etc/grub.d/10_linux ###
function gfxmode {
set gfxpayload="${1}"
if [ "${1}" = "keep" ]; then
set vt_handoff=vt.handoff=1
else
set vt_handoff=
fi
}
if [ "${recordfail}" != 1 ]; then
if [ -e ${prefix}/gfxblacklist.txt ]; then
if hwmatch ${prefix}/gfxblacklist.txt 3; then
if [ ${match} = 0 ]; then
set linux_gfx_mode=keep
else
set linux_gfx_mode=text
fi
else
set linux_gfx_mode=text
fi
else
set linux_gfx_mode=keep
fi
else
set linux_gfx_mode=text
fi
export linux_gfx_mode
menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-7a7ed7ca-d939-49d6-8951-ba573929f41f' {
recordfail
load_video
gfxmode $linux_gfx_mode
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod ext2
set root='hd0,gpt2'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2 7a7ed7ca-d939-49d6-8951-ba573929f41f
else
search --no-floppy --fs-uuid --set=root 7a7ed7ca-d939-49d6-8951-ba573929f41f
fi
linux /boot/vmlinuz-4.15.0-45-generic root=UUID=7a7ed7ca-d939-49d6-8951-ba573929f41f ro quiet splash $vt_handoff
initrd /boot/initrd.img-4.15.0-45-generic
}
submenu 'Advanced options for Ubuntu' $menuentry_id_option 'gnulinux-advanced-7a7ed7ca-d939-49d6-8951-ba573929f41f' {
menuentry 'Ubuntu, with Linux 4.15.0-45-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.15.0-45-generic-advanced-7a7ed7ca-d939-49d6-8951-ba573929f41f' {
recordfail
load_video
gfxmode $linux_gfx_mode
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod ext2
set root='hd0,gpt2'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2 7a7ed7ca-d939-49d6-8951-ba573929f41f
else
search --no-floppy --fs-uuid --set=root 7a7ed7ca-d939-49d6-8951-ba573929f41f
fi
echo 'Loading Linux 4.15.0-45-generic ...'
linux /boot/vmlinuz-4.15.0-45-generic root=UUID=7a7ed7ca-d939-49d6-8951-ba573929f41f ro quiet splash $vt_handoff
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-4.15.0-45-generic
}
menuentry 'Ubuntu, with Linux 4.15.0-45-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.15.0-45-generic-recovery-7a7ed7ca-d939-49d6-8951-ba573929f41f' {
recordfail
load_video
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod ext2
set root='hd0,gpt2'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2 7a7ed7ca-d939-49d6-8951-ba573929f41f
else
search --no-floppy --fs-uuid --set=root 7a7ed7ca-d939-49d6-8951-ba573929f41f
fi
echo 'Loading Linux 4.15.0-45-generic ...'
linux /boot/vmlinuz-4.15.0-45-generic root=UUID=7a7ed7ca-d939-49d6-8951-ba573929f41f ro recovery nomodeset
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-4.15.0-45-generic
}
menuentry 'Ubuntu, with Linux 4.15.0-20-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.15.0-20-generic-advanced-7a7ed7ca-d939-49d6-8951-ba573929f41f' {
recordfail
load_video
gfxmode $linux_gfx_mode
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod ext2
set root='hd0,gpt2'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2 7a7ed7ca-d939-49d6-8951-ba573929f41f
else
search --no-floppy --fs-uuid --set=root 7a7ed7ca-d939-49d6-8951-ba573929f41f
fi
echo 'Loading Linux 4.15.0-20-generic ...'
linux /boot/vmlinuz-4.15.0-20-generic root=UUID=7a7ed7ca-d939-49d6-8951-ba573929f41f ro quiet splash $vt_handoff
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-4.15.0-20-generic
}
menuentry 'Ubuntu, with Linux 4.15.0-20-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.15.0-20-generic-recovery-7a7ed7ca-d939-49d6-8951-ba573929f41f' {
recordfail
load_video
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod ext2
set root='hd0,gpt2'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2 7a7ed7ca-d939-49d6-8951-ba573929f41f
else
search --no-floppy --fs-uuid --set=root 7a7ed7ca-d939-49d6-8951-ba573929f41f
fi
echo 'Loading Linux 4.15.0-20-generic ...'
linux /boot/vmlinuz-4.15.0-20-generic root=UUID=7a7ed7ca-d939-49d6-8951-ba573929f41f ro recovery nomodeset
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-4.15.0-20-generic
}
}
### END /etc/grub.d/10_linux ###
### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###
### BEGIN /etc/grub.d/20_memtest86+ ###
### END /etc/grub.d/20_memtest86+ ###
### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###
### BEGIN /etc/grub.d/30_uefi-firmware ###
menuentry 'System setup' $menuentry_id_option 'uefi-firmware' {
fwsetup
}
### END /etc/grub.d/30_uefi-firmware ###
### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###
### BEGIN /etc/grub.d/41_custom ###
if [ -f ${config_directory}/custom.cfg ]; then
source ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f $prefix/custom.cfg ]; then
source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###
--------------------------------------------------------------------------------
=============================== sda2/etc/fstab: ================================
--------------------------------------------------------------------------------
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
# / was on /dev/sda2 during installation
UUID=7a7ed7ca-d939-49d6-8951-ba573929f41f / ext4 errors=remount-ro 0 1
# /boot/efi was on /dev/sda1 during installation
UUID=0C1E-EE69 /boot/efi vfat umask=0077 0 1
/swapfile none swap sw 0 0
--------------------------------------------------------------------------------
=================== sda2: Location of files loaded by Grub: ====================
GiB - GB File Fragment(s)
=============================== StdErr Messages: ===============================
cat: /tmp/BootInfo-7fBr4xK8/Tmp_Log: No such file or directory
답변1
예, 이 노트북에는 UEFI 버전의 GRUB 부트로더가 설치되어 있습니다. /efi/ubuntu/grubx64.efi
파일을 볼 수 있습니다. 하지만MBR 유형출력에 표시된 대로 부트로더가 설치됩니다.
=> No boot loader is installed in the MBR of /dev/sda
아니요, UEFI는 기술적으로 부트로더가 아닙니다.
UEFI는시스템 펌웨어, 최신 PC에서 BIOS의 역할을 대체합니다. 부트로더는 "실제 운영 체제를 로드하기 위해 시스템 펌웨어에서 제공하는 서비스를 활용하는 (실제 운영 체제에 비해) 비교적 간단한 것"으로 정의할 수 있습니다.
시스템 펌웨어는 초기에 시스템을 제어하므로부트로더의 모습. 기존 PC BIOS는 기본적으로 다음과 같습니다.
- 시스템을 16비트 8086 호환 모드로 설정
- 모호한 방식으로 이전에 선택한 디스크의 첫 번째 512바이트 블록을 읽습니다.
- 블록의 마지막 2바이트가 0x55 및 0xaa인 경우 블록의 처음 446바이트 정도를 프로그램으로 실행해 보십시오. 이는 원래 1986년 IBM PC/AT와 기본적으로 동일한 기본 입/출력 기능을 제공하며 수년에 걸쳐 다양한 확장 기능이 추가되었습니다.
최신 시스템에서 446바이트는 가능한 디스크 액세스 인터페이스(이전 C/H/S 및 최신 LBA)를 처리하고 나머지 부트로더를 로드하는 데 거의 충분하지 않습니다. 이는 일반적으로 기본 부팅 사이에 포함됩니다. 첫 번째 파티션의 시작 공간에 기록됩니다.
반면에 UEFI는 다음을 수행합니다.
- 32비트이든 64비트이든 시스템의 기본 비트 심도를 사용할 수 있습니다.
- GPT 파티션에서 최소한 FAT32 파일 시스템(특정 버전)을 읽기 위한 기본 지원을 제공합니다. 다른 파일 시스템도 지원될 수 있습니다.
- 부팅 순서 설정을 포함한 펌웨어 설정에 액세스할 수 있도록 부트 로더 및 운영 체제에 대한 표준 인터페이스를 제공합니다.
- 부트로더 허용일반 파일, 특정 위치에 있는 고정된 크기의 기계어 코드 블록이 아닙니다.
이 명령을 사용하면 sudo efibootmgr -v
시스템 펌웨어와 부트 로더 간의 링크(UEFI 부팅 순서 설정)가 표시됩니다. 이는 시스템의 배터리 지원 NVRAM 메모리(= 기본적으로 UEFI 대신 BIOS가 있는 시스템에 BIOS 설정이 저장되는 위치와 동일)에 저장되며 각 구성의 부트로더에 대해 네 가지 사항을 지정합니다.
- 사람이 읽을 수 있는 이름
- 부트로더가 포함된 파티션의 GUID 스타일 파티션 ID
- 일반적으로 DOS/Windows 스타일 백슬래시를 디렉터리 구분 기호로 사용하는 부트 로더의 파일 이름
- 각 부트로더가 사용 방법을 결정할 수 있는 추가 매개변수 문자열입니다.
귀하의 경우 UEFI 부팅 순서에 등록된 부트 로더는 실제로는 UEFI 보안 부팅 심 부트 로더가 아닐 수도 /efi/ubuntu/grubx64.efi
있습니다 /efi/ubuntu/shimx64.efi
. 이는 Microsoft에서 서명했으므로 기본적으로 UEFI 보안 부팅을 지원하는 모든 64비트 x86 시스템에 로드할 수 있습니다. 여기에는 Canonical Secure Boot 인증서의 복사본이 내장되어 있으며 해당 인증서(또는 선택적으로 시스템 NVRAM에 시스템 소유자 키 또는 MOK로 설치된 다른 인증서)를 사용하여 규칙에 따라 로드하는 다음 파일을 암호화 방식으로 인증합니다. 파일은 grubx64.efi
파일과 동일한 디렉터리에 있습니다 .shimx64.efi
시스템에서 보안 부팅이 활성화되지 않은 경우 이 단계를 건너뛰고 \efi\ubuntu\grubx64.efi
UEFI 부팅 순서 설정에서 직접 지정할 수 있습니다.
UEFI에는 이동식 미디어에 대한 대체 부트로더 경로와 부트로더가 NVRAM 설정에 등록되지 않을 수 있는 기타 경우도 포함되어 있습니다. 64비트 x86 아키텍처의 경우 \efi\boot\bootx64.efi
이 파일이 이동식 미디어의 FAT32 파티션에 존재하는 경우 해당 미디어는 실제로 삭제된 것입니다.부팅 가능UEFI의 경우.
UEFI 호환 부트로더를 시스템 펌웨어에 내장하는 것은 기술적으로 가능하며 실제로 쉽습니다. 그러나 이로 인해 특정 운영 체제나 운영 체제 제품군에 특정한 부트로더를 업데이트하기가 어렵습니다. 따라서 일반적으로 다음과 같은 임베디드 부트로더를 볼 가능성이 더 높습니다.가전제품대신에일반 컴퓨터.