내 목표는 Qubes OS 3.1 및 Fedora 23 Workstation(respin)의 이중 부팅을 달성하는 것입니다.이 남자Ubuntu에서 작동하지만 그는 Ubuntu를 먼저 설치했고 Qubes를 먼저 설치했습니다. 최후의 수단은 그를 따라가서 처음부터 다시 설치하는 것이었지만, 나는 뭔가를 배우고 싶었습니다.
내가 시도한 것:
- Qubes OS 3.1 설치(확인)
- Qubes OS 3.1 dom0 및 Fedora23 템플릿 업데이트(확인)
- 최신 Fedora 23 Workstation respin이 설치되었습니다(괜찮지만 일부 GRUB2 부트로더 결함이 보고되었습니다. 그럼에도 불구하고 Fedora는 정상적으로 부팅됩니다).
- 최신 Fedora 23 Workstation으로 업데이트되었습니다(업데이트 없음).
- Qubes를 시작해 보십시오(실패했습니다. 아직 GRUB2 부팅 메뉴에 메뉴 항목이 없습니다).
- Qubes에 대한 메뉴 항목을 만들었습니다(확인, 아래 참조).
- Qubes 시작을 시도했습니다(실패했습니다. 참조).스크린샷)
- 구글 검색이 솔루션그리고 패키지를 설치했습니다
- 지금은 오류가 발생하지만 몇 초 후에 시스템이 자동으로 재부팅되고 이 작업이 무한정 수행됩니다.
메뉴 항목을 어떻게 추가하나요?
Fedora로 부팅하고 /etc/grub.d/
폴더로 이동하여 파일을 편집합니다 40_custom
. qubes 부팅 파티션에 있는 /boot/grub2/grub.cfg 파일의 xen 섹션 사이에 있는 모든 내용을 40_custom
Fedora의 파일 끝에 붙여넣었습니다. 그런 다음 루트에서 다음 명령을 실행했습니다.
grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
그리고 qubes 메뉴 항목이 생성되어 grub.cfg
부팅 메뉴에 표시됩니다. 나중에 grub.cfg의 내용을 제공할 수 있습니다. 그동안 무엇이 잘못되었는지, 어떻게 해결하는지 알고 싶습니다.
주목할만한 정보:
- Qubes는 레거시 BIOS(2MB BIOS 부팅 파티션 포함)의 GPT에서 부팅됩니다.
- Fedora는 UEFI(EFI 파티션 포함)의 GPT에서 부팅됩니다.
/boot
각 운영 체제마다 별도의 파티션이 있으며 다른 파티션도 있습니다 ./boot
추가 파티션 없음
커밋된 grub.cfg는 다음과 같습니다.
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub2-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#
### BEGIN /etc/grub.d/00_header ###
set pager=1
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="${saved_entry}"
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
}
terminal_output console
if [ x$feature_timeout_style = xy ] ; then
set timeout_style=menu
set timeout=5
# Fallback normal timeout code in case the timeout_style feature is
# unavailable.
else
set timeout=5
fi
### END /etc/grub.d/00_header ###
### BEGIN /etc/grub.d/01_users ###
if [ -f ${prefix}/user.cfg ]; then
source ${prefix}/user.cfg
if [ -n "${GRUB2_PASSWORD}" ]; then
set superusers="root"
export superusers
password_pbkdf2 root ${GRUB2_PASSWORD}
fi
fi
### END /etc/grub.d/01_users ###
### BEGIN /etc/grub.d/10_linux ###
menuentry 'Fedora (4.4.8-300.fc23.x86_64) 23 (Workstation Edition)' --class fedora --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-4.4.8-300.fc23.x86_64-advanced-d43f46bc-7649-44ca-b02d-7599d115a8e8' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod ext2
set root='hd0,gpt6'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt6 --hint-efi=hd0,gpt6 --hint-baremetal=ahci0,gpt6 440e2ced-56a2-432f-95e0-c5f1c33941a9
else
search --no-floppy --fs-uuid --set=root 440e2ced-56a2-432f-95e0-c5f1c33941a9
fi
linuxefi /vmlinuz-4.4.8-300.fc23.x86_64 root=UUID=d43f46bc-7649-44ca-b02d-7599d115a8e8 ro rootflags=subvol=root00 rhgb quiet
initrdefi /initramfs-4.4.8-300.fc23.x86_64.img
}
menuentry 'Fedora (0-rescue-1dccfd914c254de687a4ba1c13e159a9) 23 (Workstation Edition)' --class fedora --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-0-rescue-1dccfd914c254de687a4ba1c13e159a9-advanced-d43f46bc-7649-44ca-b02d-7599d115a8e8' {
load_video
insmod gzio
insmod part_gpt
insmod ext2
set root='hd0,gpt6'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt6 --hint-efi=hd0,gpt6 --hint-baremetal=ahci0,gpt6 440e2ced-56a2-432f-95e0-c5f1c33941a9
else
search --no-floppy --fs-uuid --set=root 440e2ced-56a2-432f-95e0-c5f1c33941a9
fi
linuxefi /vmlinuz-0-rescue-1dccfd914c254de687a4ba1c13e159a9 root=UUID=d43f46bc-7649-44ca-b02d-7599d115a8e8 ro rootflags=subvol=root00 rhgb quiet
initrdefi /initramfs-0-rescue-1dccfd914c254de687a4ba1c13e159a9.img
}
if [ "x$default" = 'Fedora (4.4.8-300.fc23.x86_64) 23 (Workstation Edition)' ]; then default='Advanced options for Fedora>Fedora (4.4.8-300.fc23.x86_64) 23 (Workstation Edition)'; fi;
### 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_ppc_terminfo ###
### END /etc/grub.d/20_ppc_terminfo ###
### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###
### 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.
menuentry 'Qubes, with Xen hypervisor' --class qubes --class gnu-linux --class gnu --class os --class xen $menuentry_id_option 'xen-gnulinux-simple-6e934da1-b43d-434b-83b2-878d454fb6bd' {
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 --hint='hd0,gpt2' 9c6e43e7-856f-4840-a04f-6936735f5835
else
search --no-floppy --fs-uuid --set=root 9c6e43e7-856f-4840-a04f-6936735f5835
fi
echo 'Loading Xen 4.6.0 ...'
if [ "$grub_platform" = "pc" -o "$grub_platform" = "" ]; then
xen_rm_opts=
else
xen_rm_opts="no-real-mode edd=off"
fi
multiboot /xen-4.6.0.gz placeholder console=none dom0_mem=min:1024M dom0_mem=max:4096M ${xen_rm_opts}
echo 'Loading Linux 4.1.13-9.pvops.qubes.x86_64 ...'
module /vmlinuz-4.1.13-9.pvops.qubes.x86_64 placeholder root=UUID=6e934da1-b43d-434b-83b2-878d454fb6bd ro rootflags=subvol=root i915.preliminary_hw_support=1 vconsole.font=latarcyrheb-sun16 rhgb quiet
echo 'Loading initial ramdisk ...'
module /initramfs-4.1.13-9.pvops.qubes.x86_64.img
}
submenu 'Advanced options for Qubes (with Xen hypervisor)' $menuentry_id_option 'gnulinux-advanced-6e934da1-b43d-434b-83b2-878d454fb6bd' {
submenu 'Xen hypervisor, version 4.6.0' $menuentry_id_option 'xen-hypervisor-4.6.0-6e934da1-b43d-434b-83b2-878d454fb6bd' {
menuentry 'Qubes, with Xen 4.6.0 and Linux 4.1.13-9.pvops.qubes.x86_64' --class qubes --class gnu-linux --class gnu --class os --class xen $menuentry_id_option 'xen-gnulinux-4.1.13-9.pvops.qubes.x86_64-advanced-6e934da1-b43d-434b-83b2-878d454fb6bd' {
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 --hint='hd0,gpt2' 9c6e43e7-856f-4840-a04f-6936735f5835
else
search --no-floppy --fs-uuid --set=root 9c6e43e7-856f-4840-a04f-6936735f5835
fi
echo 'Loading Xen 4.6.0 ...'
if [ "$grub_platform" = "pc" -o "$grub_platform" = "" ]; then
xen_rm_opts=
else
xen_rm_opts="no-real-mode edd=off"
fi
multiboot /xen-4.6.0.gz placeholder console=none dom0_mem=min:1024M dom0_mem=max:4096M ${xen_rm_opts}
echo 'Loading Linux 4.1.13-9.pvops.qubes.x86_64 ...'
module /vmlinuz-4.1.13-9.pvops.qubes.x86_64 placeholder root=UUID=6e934da1-b43d-434b-83b2-878d454fb6bd ro rootflags=subvol=root i915.preliminary_hw_support=1 vconsole.font=latarcyrheb-sun16 rhgb quiet
echo 'Loading initial ramdisk ...'
module /initramfs-4.1.13-9.pvops.qubes.x86_64.img
}
}
}
### END /etc/grub.d/40_custom ###
### BEGIN /etc/grub.d/40_custom.backup ###
# 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.backup ###
### 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 ###
복사도 가능파스테르빈에 대해서.
답변1
다음은 Qubes OS의 핵심 개발자 중 한 명인 Marek Marczykowski-Górecki(Invisible Things Lab)의 권위 있는 답변입니다. 출처는qubes 사용자 포럼, 제가 원래 이 질문을 했던 곳입니다.
이것이 주요 문제입니다. UEFI grub(Fedora)에서 이전 시스템(여기서는 Qubes)을 부팅하려고 합니다. 레거시 모드로 부팅하거나 UEFI 모드로 부팅(또는 부팅할 때마다 BIOS 설정 변경...) 중 하나를 선택해야 합니다. 따라서 한 가지 옵션은 Fedora를 레거시 모드로 설정하는 것입니다. 그런 다음 Qubes 레거시 부팅 항목을 (사용자가 했던 것처럼) 40_custom에 넣는 것으로 충분합니다.
UEFI에서 Qubes를 부팅하는 것도 가능하지만 다른 구성이 필요합니다. 대부분의 경우 Grub을 사용하면 더 쉽게 할 수 없습니다. 어쨌든 시도해 볼 수 있습니다.
xen-4.6.0.efi를 찾으세요. /boot/efi/EFI/qubes/에 설치되어야 합니다. EFI 시스템 파티션에 배치합니다(/boot/efi가 아직 존재하지 않는 경우).
다음 내용으로 동일한 디렉터리에 xen.cfg를 만듭니다.
[글로벌] 기본값=4.1.13-8.pvops.qubes.x86_64
[4.1.13-8.pvops.qubes.x86_64] options=loglvl=all kernel=vmlinuz-4.1.13-8.pvops.qubes.x86_64 root=/dev/dm-2 vconsole.font=latarcyrheb-sun16 rd. lvm.lv=qubes_dom0/root ramdisk=initramfs-4.1.13-8.pvops.qubes.x86_64.img
커널 버전, root= 및 rd.lvm.lv= 매개변수를 조정합니다.
커널 및 initramfs 파일이 xen.cfg와 동일한 디렉터리에 있는지 확인하십시오(대부분 /boot에서 복사해야 할 것입니다). Grub이 다른 위치에서 로드할 수 있더라도 EFI 시스템 파티션에 배치하는 것이 중요합니다.
그럽 항목을 추가합니다:
메뉴 항목 'Qubes UEFI' { chainloader /EFI/qubes/xen-4.6.0.efi }
여기에서 관련 문제 해결을 확인하세요. https://www.qubes-os.org/doc/uefi-troubleshooting/ https://github.com/QubesOS/qubes-issues/issues/794
답변2
이것이 도움이 될지는 의문이지만 이것이 제가 Qubes와 Mint를 듀얼 부팅하기 위해 수행한 작업입니다. 이는 이미카 님의 블로그를 직접 표절한 내용이므로 이에 대해 저는 책임을 지지 않습니다. (https://micahflee.com/2014/04/dual-booting-qubes-and-ubuntu-with-encrypted-disks/)
Mint 라이브 DVD에서 부팅하고 초기 하드 드라이브 파티셔닝을 수행했습니다.
HDD에 세 개의 파티션을 만듭니다. 하나는 Qubes용, 다른 하나는 Fedora용, 작은 부팅 파티션입니다. Fedora 파티션(ext4 또는 기타)과 부팅 파티션을 포맷하고 부팅 플래그를 설정합니다. Qubes 파티션을 포맷하지 않은 상태로 유지 - Qubes의 설치 프로그램은 암호화된 파티션을 위한 여유 공간을 찾는 것이 가장 행복한 것 같습니다. 하지만 아직 Qubes를 설치하지 마세요.
ext4 파티션에 Fedora를 설치합니다.부팅 파티션에 부트로더 설치. dev/sda에 부트로더를 설치하지 마세요.
이제 Qubes 설치 미디어에서 재부팅하십시오. 설치 프로그램은 포맷되지 않은 파티션을 찾아서 거기에 Qubes를 설치할 수 있어야 합니다.
재시작. 이 작업을 수행할 때 유일한 옵션은 Qubes입니다. 계속해서 Qubes를 시작하세요.
dom0에서 터미널을 열고 vim이나 다른 방법을 사용하여 /etc/grub.d/40_custom을 편집하고 맨 위에 세 줄을 추가하면 됩니다.
menuentry "Fedora 23" {
set root=(hdd0,1)
chainloader +1
}
그런 다음 Micah의 블로그에 따라 grub을 다시 설치했습니다.
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
sudo grub2-install /dev/sda
나는 결국 듀얼 부팅 Qubes-and-Mint 머신을 사용하게 되었습니다.
행운을 빌어요.