Qubes는 Fedora/Qubes 이중 부팅 컴퓨터에서 부팅할 수 없습니다.

Qubes는 Fedora/Qubes 이중 부팅 컴퓨터에서 부팅할 수 없습니다.

내 목표는 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_customFedora의 파일 끝에 붙여넣었습니다. 그런 다음 루트에서 다음 명령을 실행했습니다.

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을 사용하면 더 쉽게 할 수 없습니다. 어쨌든 시도해 볼 수 있습니다.

  1. xen-4.6.0.efi를 찾으세요. /boot/efi/EFI/qubes/에 설치되어야 합니다. EFI 시스템 파티션에 배치합니다(/boot/efi가 아직 존재하지 않는 경우).

  2. 다음 내용으로 동일한 디렉터리에 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= 매개변수를 조정합니다.

  3. 커널 및 initramfs 파일이 xen.cfg와 동일한 디렉터리에 있는지 확인하십시오(대부분 /boot에서 복사해야 할 것입니다). Grub이 다른 위치에서 로드할 수 있더라도 EFI 시스템 파티션에 배치하는 것이 중요합니다.

  4. 그럽 항목을 추가합니다:

    메뉴 항목 '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에서 부팅하고 초기 하드 드라이브 파티셔닝을 수행했습니다.

  1. HDD에 세 개의 파티션을 만듭니다. 하나는 Qubes용, 다른 하나는 Fedora용, 작은 부팅 파티션입니다. Fedora 파티션(ext4 또는 기타)과 부팅 파티션을 포맷하고 부팅 플래그를 설정합니다. Qubes 파티션을 포맷하지 않은 상태로 유지 - Qubes의 설치 프로그램은 암호화된 파티션을 위한 여유 공간을 찾는 것이 가장 행복한 것 같습니다. 하지만 아직 Qubes를 설치하지 마세요.

  2. ext4 파티션에 Fedora를 설치합니다.부팅 파티션에 부트로더 설치. dev/sda에 부트로더를 설치하지 마세요.

  3. 이제 Qubes 설치 미디어에서 재부팅하십시오. 설치 프로그램은 포맷되지 않은 파티션을 찾아서 거기에 Qubes를 설치할 수 있어야 합니다.

  4. 재시작. 이 작업을 수행할 때 유일한 옵션은 Qubes입니다. 계속해서 Qubes를 시작하세요.

  5. 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 머신을 사용하게 되었습니다.

행운을 빌어요.

관련 정보