
최근에 내 노트북(Dell Precision M4500)에 Arch를 설치했습니다. 방금 하드 드라이브를 교체했기 때문에 설치 중에 처음부터 파티션을 시작해야 했습니다. 저는 GPT 파티션을 사용하기로 선택하고 UEFI를 사용하여 부팅하도록 시스템을 설정했습니다.
설치 중에 GRUB 설치를 시도했지만 기존 명령을 사용하여 MBR 디스크( grub-install /dev/sda
)에 설치했기 때문에 실패했습니다. EFI에 대한 메시지로 인해 실패했기 때문에(무슨 내용인지 기억이 나지 않습니다) 대신 해당 메시지를 사용했습니다 bootctl
. 나는 팔로우한다아치 초보자 가이드다음 주소로 편지를 보내세요:
# bootctl install
boot/loader/entries/arch.conf
다음 콘텐츠로 만듭니다.
title Arch Linux
linux /vmlinuz-linux
initrd /initramfs-linux.img
options root=/dev/sda2 rw
그리고/boot/loader/loader.conf
timeout 3
default arch
그런 다음 시스템을 정상적으로 설치했습니다. 그러나 재부팅한 후 POST 후에 시스템에 검은색 화면이 나타나고 부트로더가 표시되지 않습니다. 부트로더에 들어갈 수 있는 유일한 방법은 F12시스템의 부팅 메뉴(BIOS로 들어갈 수 있는(또는 시스템이 EFI가 아닌 경우) 동일한 메뉴)를 누르고 메뉴에서 "linux bootloader"를 선택하는 것입니다. 이렇게 하면 "Arch"를 선택할 수 있는 부트로더 화면으로 이동됩니다.
시간에 맞춰 메뉴를 받아보세요 F12:
"grub"을 선택하면 다음을 얻습니다.
"grub"을 다시 선택하면 동일한 메뉴로 바로 돌아갑니다.
첫 번째 메뉴에서 "Linux Boot Manager"를 선택하면 Arch 항목과 "EFI 기본 로더" 항목이 있는 메뉴가 나타납니다.
"Arch"를 선택하면 Arch 설치가 시작되고 "EFI 기본 로더"를 선택하면 아래 4에 표시된 메뉴로 이동합니다.
첫 번째 메뉴에서 "UEFI: INT 13(RAID.0x80)"을 선택하면 Arch 시스템을 부팅할 항목을 선택할 수 있는 Arch 항목만 있는 메뉴가 표시됩니다.
또한 설치를 시도했습니다 grub
(이번에는 올바르게).
pacman -S efibootmgr grub os-prober
grub-install --target=x86_64-efi --efi-directory=/boot/EFI --bootloader-id=grub --recheck
grub-mkconfig -o /boot/grub/grub.cfg
이렇게 하면 부팅 메뉴에 새로운 "grub" 항목이 표시되지만 F12이를 선택하면 검은색 화면이 나타났다가 다시 부팅 메뉴로 돌아갑니다.
내 grub.cfg
것은 (댓글 삭제됨):
insmod part_gpt
insmod part_msdos
if [ -s $prefix/grubenv ]; then
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 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 98202b4b-af35-413a-b3ff-87c149c5061d
else
search --no-floppy --fs-uuid --set=root 98202b4b-af35-413a-b3ff-87c149c5061d
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_input console
terminal_output gfxterm
if [ x$feature_timeout_style = xy ] ; then
set timeout_style=menu
set timeout=5
else
set timeout=5
fi
menuentry 'Arch Linux' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-98202b4b-af35-413a-b3ff-87c149c5061d' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod fat
set root='hd0,gpt1'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1 9943-114D
else
search --no-floppy --fs-uuid --set=root 9943-114D
fi
echo 'Loading Linux linux ...'
linux /vmlinuz-linux root=UUID=98202b4b-af35-413a-b3ff-87c149c5061d rw quiet
echo 'Loading initial ramdisk ...'
initrd /initramfs-linux.img
}
submenu 'Advanced options for Arch Linux' $menuentry_id_option 'gnulinux-advanced-98202b4b-af35-413a-b3ff-87c149c5061d' {
menuentry 'Arch Linux, with Linux linux' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-advanced-98202b4b-af35-413a-b3ff-87c149c5061d' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod fat
set root='hd0,gpt1'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1 9943-114D
else
search --no-floppy --fs-uuid --set=root 9943-114D
fi
echo 'Loading Linux linux ...'
linux /vmlinuz-linux root=UUID=98202b4b-af35-413a-b3ff-87c149c5061d rw quiet
echo 'Loading initial ramdisk ...'
initrd /initramfs-linux.img
}
menuentry 'Arch Linux, with Linux linux (fallback initramfs)' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-fallback-98202b4b-af35-413a-b3ff-87c149c5061d' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod fat
set root='hd0,gpt1'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1 9943-114D
else
search --no-floppy --fs-uuid --set=root 9943-114D
fi
echo 'Loading Linux linux ...'
linux /vmlinuz-linux root=UUID=98202b4b-af35-413a-b3ff-87c149c5061d rw quiet
echo 'Loading initial ramdisk ...'
initrd /initramfs-linux-fallback.img
}
}
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
내 파티션 테이블(오류에 유의하세요. 이것이 관련이 있는지 모르겠습니다):
$ sudo parted /dev/sda print
Error: The backup GPT table is corrupt, but the primary appears OK, so that will
be used.
OK/Cancel? OK
Model: ATA TOSHIBA MQ01ABD0 (scsi)
Disk /dev/sda: 750GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 538MB 537MB fat32 boot, esp
2 538MB 32.7GB 32.2GB ext4
3 32.7GB 462GB 429GB ext4
4 462GB 479GB 17.2GB linux-swap(v1)
5 479GB 750GB 271GB ntfs msftdata
그리고 /etc/fstab
:
# /dev/sda2
UUID=98202b4b-af35-413a-b3ff-87c149c5061d / ext4 rw,relatime,data=ordered 0 1
# /dev/sda3
UUID=baa9dd1e-835c-4d88-af8a-31dc97ac7af6 /home ext4 rw,relatime,data=ordered 0 2
# /dev/sda1
UUID=9943-114D /boot vfat rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro 0 2
# /dev/sda4
UUID=8eaf91cd-f638-487b-8299-50d39342df0d none swap defaults 0 0
(내 EFI 파티션( sda1
)이 에 마운트되어 있습니다 /boot
. 이렇게 되어야 합니까 /boot/EFI
?)
그래서 제 질문은 시스템을 누르지 않고 사용 가능한 부트로더로 직접 부팅하려면 어떻게 해야 합니까 F12? 입니다. 나는 이 부트로더를 선호 grub
하지만 필요한 경우 이를 사용할 수 있습니다 bootctl
.