Windows 10이 사전 설치되어 있고 보안 부팅이 가능하며 EFI 모드가 활성화된 노트북 DELL Latitude 5491이 있습니다. 구매 후 Windows와 함께 듀얼 부팅으로 Ubuntu 20.04를 설치했으며 여전히 보안 부팅/EFI가 활성화되어 있었습니다. 파티션 2, 3, 5는 Windows 시스템용이고 파티션 1과 4는 Ubuntu 시스템용입니다. 파티션 6은 백업 목적으로 Clonezilla Live CD의 ISO를 저장합니다. 여태까지는 그런대로 잘됐다. 다음 단계에서는 Parted Magic 라이브 CD의 압축을 푼 ISO를 파티션 7에 저장하고 grub 메뉴를 편집했지만 grub 메뉴에서 Parted Magic을 실행하면 오류가 발생하고 BzImage 서명이 유효하지 않습니다... 그런데 실행하면 Parted Magic 직접 EFI(임시 부팅 메뉴 또는 EFI 설정)에서 시스템이 정상적으로 부팅됩니다. 무엇이 잘못될 수 있나요? 그것은 다음과 같습니다
파티션 레이아웃:
Device Start End Sectors Size Type
/dev/sda1 2048 1394687 1392640 680M EFI System
/dev/sda2 1394688 1656831 262144 128M Microsoft reserved
/dev/sda3 1656832 507570175 505913344 241,2G Microsoft basic data
/dev/sda4 507570176 983883775 476313600 227,1G Linux filesystem
/dev/sda5 983883776 985911295 2027520 990M Windows recovery environment
/dev/sda6 985911296 987500543 1589248 776M Linux filesystem
/dev/sda7 987500544 1000214527 12713984 6,1G Microsoft basic data
40_custom 파일을 편집합니다.
#!/bin/sh
exec tail -n +3 $0
# 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.
menuentry "clonezilla" {
set isofile="/clonezilla-live-20210127-groovy-amd64.iso"
loopback loop (hd0,gpt6)$isofile
linuxefi (loop)/live/vmlinuz boot=live components config findiso=$isofile ip=frommedia toram=filesystem.squashfs union=overlay username=user
initrdefi (loop)/live/initrd.img
}
menuentry "partedmagic" {
insmod chain
set root=(hd0,gpt7)
configfile /boot/grub/grub.cfg
}
grub.cfg 파일:
set default="0"
set timeout="20"
set hidden_timeout_quiet=false
set gfxmode=auto
insmod efi_gop
insmod efi_uga
insmod gfxterm
terminal_output gfxterm
set color_normal=white/black
set color_highlight=black/white
loadfont /boot/grub/unicode.pf2
background_image /boot/grub/pmagic.png
set default_settings="edd=on vga=normal mem=32G"
set live_settings="boot=live eject=no"
set linux="/pmagic/bzImage"
set initrd_img="/pmagic/initrd.img /pmagic/fu.img /pmagic/m.img"
set default=2
set message="Loading kernel and initramfs. Please wait..."
menuentry "Parted Magic UEFI Boot Menu"{
set
}
menuentry ' '{
set
}
menuentry "1. Default settings (Runs from RAM 4GB+)"{
echo $message
search --set -f $linux
linux $linux $default_settings
initrd $initrd_img
}
menuentry "1a. Default settings with 4K Monitor"{
echo $message
search --set -f $linux
linux $linux $default_settings m4k=yes
initrd $initrd_img
}
menuentry "1b. Default settings + language menu"{
echo $message
search --set -f $linux
linux $linux $default_settings lang=yes
initrd $initrd_img
}
menuentry ' '{
true
}
menuentry "2. Live with default settings (2GB+ RAM)"{
echo $message
search --set -f $linux
linux $linux $default_settings $live_settings
initrd $initrd_img
}
menuentry "2a. Live with default settings + language menu"{
echo $message
search --set -f $linux
linux $linux $default_settings $live_settings lang=yes
initrd $initrd_img
}
menuentry ' '{
true
}
menuentry "3. Black/Blank Screen workaround"{
echo $message
search --set -f $linux
linux $linux $default_settings nomodeset
initrd $initrd_img
}
menuentry "4. No official NVIDIA driver - Use Nouveau NVIDIA driver instead."{
echo $message
search --set -f $linux
linux $linux $default_settings modprobe="nouveau"
initrd $initrd_img
}
menuentry "5. *** Hyper-V ***"{
echo $message
search --set -f $linux
linux $linux $default_settings fbdev=yes
initrd $initrd_img
}
menuentry "6. Memtest86+" {
chainloader /boot/memtest/BOOTX64.EFI
}
menuentry "7. EFI Shell" {
insmod fat
insmod chain
terminal_output console
chainloader /boot/edk2/Shell.efi
}
menuentry ' '{
true
}
submenu "Extras Menu"{
set default_settings="edd=on vga=normal mem=32G"
set live_settings="boot=live eject=no"
set linux="/pmagic/bzImage"
set initrd_img="/pmagic/initrd.img /pmagic/fu.img /pmagic/m.img"
set message="Loading kernel and initramfs. Please wait..."
menuentry "1. Super Grub2 Disk EFI" {
chainloader /boot/supergrub2disk/super_grub2_disk_standalone_x86_64_efi_2.04s1.EFI
}
menuentry "2. Clonezilla"{
echo $message
search --set -f $linux
linux $linux $default_settings clonezilla=yes
initrd $initrd_img
}
menuentry "3. Nwipe"{
echo $message
search --set -f $linux
linux $linux $default_settings nwipe=yes
initrd $initrd_img
}
menuentry "4. Load iSCSI Kernel Modules"{
echo $message
search --set -f $linux
linux $linux $default_settings iscsi=yes
initrd $initrd_img
}
menuentry "5. Load config for xf86-video-qxl module"{
echo $message
search --set -f $linux
linux $linux $default_settings qxl=yes
initrd $initrd_img
}
}
}
submenu "Failsafe Menu"{
set default_settings="edd=on vga=normal mem=32G"
set live_settings="boot=live eject=no"
set linux="/pmagic/bzImage"
set initrd_img="/pmagic/initrd.img /pmagic/fu.img /pmagic/m.img"
set message="Loading kernel and initramfs. Please wait..."
menuentry "1. No ACPI (Advanced Configuration and Power Interface)"{
echo $message
search --set -f $linux
linux $linux $default_settings acpi=off
initrd $initrd_img
}
menuentry "2. Do not eject CD"{
echo $message
search --set -f $linux
linux $linux $default_settings eject=no
initrd $initrd_img
}
menuentry "3. Emulator compatibility"{
echo $message
search --set -f $linux
linux $linux $default_settings $live_settings noreplace-paravirt
initrd $initrd_img
}
menuentry "4. Console (boots to the shell)"{
echo $message
search --set -f $linux
linux $linux $default_settings consoleboot=yes
initrd $initrd_img
}
menuentry "5. Initrd.img (boot to initrd.img shell)"{
echo $message
search --set -f $linux
linux $linux $default_settings initrd_shell=yes
initrd $initrd_img
}
menuentry "6. Radeon no modeset"{
echo $message
search --set -f $linux
linux $linux $default_settings blacklist=radeon
initrd $initrd_img
}
menuentry "7. No / force CPU Frequency Scaling"{
echo $message
search --set -f $linux
linux $linux $default_settings cpufreq=no
initrd $initrd_img
}
menuentry "8. Force vesa workaround"{
echo $message
search --set -f $linux
linux $linux $default_settings xconfig=forcevesa
initrd $initrd_img
}
menuentry "9. Force refresh rate"{
echo $message
search --set -f $linux
linux $linux $default_settings xconfig=forcerefresh nomodeset
initrd $initrd_img
}
menuentry "10. Disable accelerated 3D graphics (DRI)"{
echo $message
search --set -f $linux
linux $linux $default_settings nodri=yes
initrd $initrd_img
}
menuentry "11. Missing Mouse Pointer"{
echo $message
search --set -f $linux
linux $linux $default_settings xmouse=yes
initrd $initrd_img
}
menuentry "12. Macbook Pro 8,x Dual Graphics Workaround"{
echo $message
search --set -f $linux
linux $linux $default_settings
outb 0x728 1 # Switch select
outb 0x710 2 # Switch display
outb 0x740 2 # Switch DDC
outb 0x750 0 # Power down discrete graphics
initrd $initrd_img
}
menuentry "13. Libata noncq - Drive will not unlock"{
echo $message
search --set -f $linux
linux $linux $default_settings libata.force=1.0:noncq
initrd $initrd_img
}
menuentry "14. No IPV6 - Stop Network Manager from disconnecting."{
echo $message
search --set -f $linux
linux $linux $default_settings blacklist=ipv6
initrd $initrd_img
}
}
menuentry ' '{
true
}
submenu "List of Cheat Codes"{
menuentry "directory= Directory containing the pmagic folder"{set}
menuentry "iso_filename= [path to/]iso filename"{set}
menuentry "root= SQFS boot device by partition id"{set}
menuentry "label= SQFS boot device by label"{set}
menuentry "uuid= SQFS boot device by [partial] uuid"{set}
menuentry "blacklist= Do not load kernel modules, e.g. blacklist=kmod1:kmod2:kmod3"{set}
menuentry "ahci=no Do not load the ahci kernel module"{set}
menuentry "modprobe= Load kernel modules, e.g. modprobe=kmod4:kmod5:kmod6"{set}
menuentry "consoleboot=yes Do not start X-windows"{set}
menuentry "eject=no Do not eject CD"{set}
menuentry "gpm=no Disable the console mouse server"{set}
menuentry "pmodules=no Do not install pmagic/pmodules"{set}
menuentry "slapt=no Do not install /home/partedmagic/slapt-get/ packages"{set}
menuentry "scripts=no Do not execute pmagic/pmodules/scripts"{set}
menuentry "sound=no Do not let ALSA set volume levels (mute)"{set}
menuentry "numlock=on Set numlock to on at boot"{set}
menuentry "conky=no Do not auto-start conky"{set}
menuentry "zfs=no Do not start zfs services"{set}
menuentry "hostname= Set hostname to XXXXXX[.YYYYYY.ZZZ]"{set}
menuentry "timeconfig=<timezone>|no Set timezone | do not start timeconfig at boot"{set}
menuentry "clockfmt=<format> clockfmt=%R (24-hours), clockfmt=%l:%M%P (am/pm)"{set}
menuentry "mdadm=no Do not assemble raid filesystems"{set}
menuentry "lvm=no Do not start the device mapper"{set}
menuentry "sshd=no Do not start SSH daemon"{set}
menuentry "bluetooth=no Do not start the bluetooth daemon"{set}
menuentry "consolekit=no Do not start the consolekit daemon"{set}
menuentry "dmeventd=no Do not start the device mapper event daemon"{set}
menuentry "dbus=no Do not start the Dbus daemon"{set}
menuentry "smart=no Do not start the smartmontools daemon"{set}
menuentry "fstabdaemon=no Do not start the Parted Magic /etc/fstab daemon"{set}
menuentry "nfs=no Do not start the NFS daemon"{set}
menuentry "acpid=no Do not start the acpi daemon"{set}
menuentry "cups=no Do not start the CUPS server"{set}
menuentry "netw=no Do not start the network at boot"{set}
menuentry "samba=yes Start the samba daemons"{set}
menuentry "rdate=yes Sync time with rdate at boot"{set}
menuentry "monday=1 Monday as first day of the week"{set}
menuentry "ntpd=yes Start the ntpd daemon"{set}
menuentry "cpufreq=no/yes/<gov> No (laptop), force (desktop) CPU freq scaling governor"{set}
menuentry "powermanager=no/yes No (laptop), force (desktop) power manager"{set}
menuentry "iscsi=yes Start iscsi initiator"{set}
menuentry "xconfig=XXXXXX|no Use /etc/X11/xorg.conf.XXXXXX | Undo"{set}
menuentry "nodri=yes No DRI"{set}
menuentry "qxl=yes X to start with QXL device"{set}
menuentry "xmouse=yes Try this if your X does not show a mouse cursor"{set}
menuentry "clonezilla=yes Boot into clonezilla"{set}
menuentry "nwipe=yes Boot into nwipe"{set}
menuentry "cmd= Boot into <command>, e.g. cmd="nwipe --method dod""{set}
menuentry "device_list=yes Show devices/partitions being scanned for the SQFS"{set}
menuentry "removableonly=yes Only scan devices/partitions with "removable" attribute"{set}
menuentry "testing=yes Wait at boot completion, use <Shift+Page Up|Down> to scroll"{set}
menuentry " Press <Enter> to continue"{set}
menuentry ""{set}
menuentry "Keyboard maps:"{set}
menuentry "azerty be-latin1 fr-latin1 fr-latin9 fr-pc fr wangbe wangbe2 ANSI-dvorak"{set}
menuentry "dvorak-l dvorak-r dvorak tr_f-latin5 trf bg-cp1251 bg-cp855 bg_bds-cp1251"{set}
menuentry "bg_bds-utf8 bg_pho-cp1251 bg_pho-utf8 br-abnt br-abnt2 br-latin1-abnt2"{set}
menuentry "br-latin1-us by cf cz-cp1250 cz-lat2-prog cz-lat2 cz defkeymap"{set}
menuentry "defkeymap_V1.0 dk-latin1 dk emacs emacs2 es-cp850 es et-nodeadkeys et"{set}
menuentry "fi-latin1 fi-latin9 fi gr-pc gr hu101 hypermap.m4 il-heb il-phonetic il"{set}
menuentry "is-latin1-us is-latin1 it-ibm it it2 jp106 la-latin1 lt.baltic lt.l4 lt"{set}
menuentry "mk-cp1251 mk-utf mk mk0 nl nl2 no-latin1.doc no-latin1 no pc110 pl pl2"{set}
menuentry "pt-latin1 pt-latin9 ro_win ru-cp1251 ru-ms ru-yawerty ru ru1 ru2 ru3 ru4"{set}
menuentry "ru_win se-fi-ir209 se-fi-lat6 se-ir209 se-lat6 sk-prog-qwerty sk-qwerty"{set}
menuentry "speakup-jfw speakup-jfw.readme speakupmap sr-cy sv-latin1 tr_q-latin5 tralt"{set}
menuentry "trq ua-utf-ws ua-utf ua-ws ua uk us-acentos us croat cz-us-qwertz"{set}
menuentry "de-latin1-nodeadkeys de-latin1 de de_CH-latin1 fr_CH-latin1 fr_CH hu"{set}
menuentry "sg-latin1-lk450 sg-latin1 sg sk-prog-qwertz sk-qwertz slovene"{set}
menuentry "Example:"{set}
menuentry "At the boot menu press <TAB> and then change 'keymap=us' to 'keymap=fr-latin1'"{set}
menuentry ""{set}
menuentry "VGA modes:"{set}
menuentry "Normal VGA console: vga=normal"{set}
menuentry "VESA framebuffer console @ 1024x768x64k: vga=791"{set}
menuentry "VESA framebuffer console @ 1024x768x32k: vga=790"{set}
menuentry "VESA framebuffer console @ 1024x768x256: vga=773"{set}
menuentry "VESA framebuffer console @ 800x600x64k: vga=788"{set}
menuentry "VESA framebuffer console @ 800x600x32k: vga=787"{set}
menuentry "VESA framebuffer console @ 800x600x256: vga=771"{set}
menuentry "VESA framebuffer console @ 640x480x64k: vga=785"{set}
menuentry "VESA framebuffer console @ 640x480x32k: vga=784"{set}
menuentry "VESA framebuffer console @ 640x480x256: vga=769"{set}
}
그러나 EFI 설정에서 파티션 7의 "부트로더" 경로는 다음과 같습니다.
\EFI\boot\bootx64.efi
grub.cfg 파일을 사용하는 대신 이 경로를 사용하여 40_custom 파일을 편집하면 오류가 발생합니다.
답변 주셔서 감사합니다. 피.
편집하다:
옵션 1: custom_40 파일의 후속 편집을 사용했습니다.
menuentry "partedmagic" {
insmod chain
set root=(hd0,gpt7)
configfile /boot/EFI/bootx64.efi
}
이 파일을 편집하려고 할 때 다음을 수행합니다.
menuentry "partedmagic" {
insmod chain
set root=(hd0,gpt7)
chainloader /boot/EFI/bootx64.efi
}
오류 메시지가 나타납니다.
부트로더가 로드된 이미지를 확인하지 않았습니다... 시스템이 손상되었습니다. 정지시키다.
옵션 2: Parted Magic의 bzImage 종료 프로세스가 성공적으로 완료되었지만 실행하려고 하면 여전히 오류가 발생합니다.
...서명이 유효하지 않습니다. 먼저 커널을 로드해야 합니다.
답변1
Clonezilla의 커널은 Ubuntu에서 제공되므로 Canonical(Ubuntu 배포판을 유지 관리하는 회사)의 Secure Boot 개인 키를 사용하여 서명됩니다.
부팅 프로세스에 shimx64.efi
Ubuntu에서의 부팅이 포함된 경우 Canonical의 인증서가 펌웨어의 안전 부팅 허용 목록에 (비영구적으로) 추가되어 Ubuntu 및 Clonezilla를 부팅할 수 있습니다.
일부 하드웨어 공급업체는 펌웨어 화이트리스트에 Canonical의 보안 부팅 인증서를 포함할 수도 있으므로 이러한 공급업체의 시스템은 Ubuntu 또는 Clonezilla를 부팅할 때 shim을 생략할 수 있습니다.
분명히 Parted Magic 라이브 CD에는 shimx64.efi
또 다른 안전 부팅 인증서가 포함된 자체 버전이 포함되어 있습니다. 이 버전의 shim이 부팅 프로세스에 포함되면 보안 부팅이 활성화된 상태에서 Parted Magic을 부팅할 수 있습니다.
내가 아는 한, 귀하의 선택은 다음과 같습니다:
옵션 1
configfile
GRUB 지침을 사용하여 Ubuntu의 GRUB를 통해 Parted Magic의 구성을 로드하는 대신 Parted Magic 미디어에서 shim을 사용해 볼 수 있습니다 .chainload
menuentry "partedmagic" {
insmod chain
set root=(hd0,gpt7)
chainloader /EFI/boot/bootx64.efi
}
비슷한 것을 시도해 본 것 같지만, 혹시 시도해 보셨나요?정확히이와 같이?
옵션 2
MOK(머신 소유자 키)로 Ubuntu의 shim을 설정하여 타사 커널 모듈 또는 사용자 정의 커널을 활성화하는 경우 MOK 개인 키로 Parted Magic의 커널에 다시 서명하여 Ubuntu의 GRUB에서 부팅할 수 있도록 할 수 있습니다.
MOK가 기본 위치에 있다고 가정하면 다음을 수행할 수 있습니다.
openssl x509 -in /var/lib/shim-signed/mok/MOK.der -inform DER -out /var/lib/shim-signed/mok/MOK.pem
mv <mountpoint of sda7>/pmagic/bzImage <mountpoint of sda7>/pmagic/bzImage.orig
그렇다면
sbsign --key /var/lib/shim-signed/mok/MOK.priv --cert /var/lib/shim-signed/mok/MOK.pem \
--output <mountpoint of sda7>/pmagic/bzImage \
<mountpoint of sda7>/pmagic/bzImage.orig
또는
osslsigncode -certs /var/lib/shim-signed/mok/MOK.pem -key /var/lib/shim-signed/mok/MOK.priv \-in
-h sha256 <mountpoint of sda7>/pmagic/bzImage.orig \
-out <mountpoint of sda7>/pmagic/bzImage
사용할 수 있는 PE/COFF 바이너리 서명 도구에 따라 다릅니다.
옵션 3
시스템 펌웨어에서 보안 부팅 키 화이트리스트( db
)를 조작할 수 있는 경우 Canonical 및 Parted Magic의 보안 부팅 인증서를 펌웨어 화이트리스트에 직접 추가할 수 있습니다.
기존 서명된 바이너리에서 보안 부팅 인증서를 추출하려면 다음을 수행하세요 *.efi
.
osslsigncode extract-signature -pem somefile.efi certificate.pkcs7
openssl pkcs7 -inform pem -print_certs -text -in certificate.pkcs7 >certificate.pem
펌웨어 화이트리스트에 인증서를 추가하려면 keytool.efi
필요한 기능이 포함된 경우 또는 BIOS 설정 메뉴를 사용할 수 있습니다. 기억이 정확하다면 keytool.efi
PEM 형식의 인증서가 허용되지만 펌웨어는 인증서를 DER 형식으로 변환하거나 서명 또는 서명되지 않은 형식(일반적으로 각각 *.esl
) 의 EFI 서명 목록 파일로 변환해야 할 가능성이 높습니다 *.auth
.
옵션 0
...또는 시스템 펌웨어에서 보안 부팅을 비활성화할 수 있다면 그렇게 할 수도 있습니다.
보안 부팅 마스터 키(PK)를 지우면 보안 부팅이 설정 모드로 전환되어 모든 운영 체제가 부팅될 수 있으므로 기본적으로 보안 부팅을 비활성화하는 것과 같습니다.