듀얼 부팅 Win 8 / Ubuntu는 Win 만로드합니다


13

내 컴퓨터는 Sony Vaio Notebook입니다. 듀얼 부팅으로 Ubuntu와 Win 8을 사용했지만 Windows는 시작시 OS를 선택하기 위해 메뉴를 제거했습니다. BIOS가 UEFI라고 생각합니다. 보안 부팅이 이미 비활성화되어 있고 부팅 복구가 실패합니다.

이 문제를 어떻게 해결할 수 있습니까?


sda에 GRUB이 없습니다 ... "GRUB을 sda에 두십시오": help.ubuntu.com/community/Boot-Repair
jmunsch

3
UEFI를 사용하면 sda의 MBR, efi 파티션에 grub이 없습니다.
oldfred

답변:


19

소니, HP 및 많은 랩톱 공급 업체는 Windows 만 부팅하도록 하드 코딩되어 있습니다.

grub grubx64.efi또는 shimx64.efi파일을 Windows 위로 이동시키는 몇 가지 해결 방법이 있습니다 /EFI/windows/bootmgfw.efi. 그러나 Windows Update가 복원 bootmgfw.efi되고 부팅 창으로 돌아 가기 때문에 권장하지 않습니다 .

대신 폴백 /EFI/Boot/bootx64.efi의 이름을 바꾸고 하드 드라이브 항목을 부팅하거나 rEFInd를 사용하는 것이 좋습니다.

변경하기 전에 전체 EFI 파티션을 백업해야합니다.

사용 가능한 몇 가지 옵션이 있습니다.

I. grub 파일 grubx64.efi또는 shim64.efi(보안 부팅을 위해)이 폴더 / 파일로 이동하고 이름을 바꿉니다./EFI/BOOT/BOOTX64.EFI

  1. /efi/boot/bootx64.efi의 이름을 바꾸고, shim 또는 grub을 / efi / boot에 복사하고 이름을 bootx64.efi로 지정한 다음 하드 드라이브 항목을 부팅하십시오. 새 버전의 Boot-Repair는 고급 옵션의 '표준 EFI 파일 사용'을 사용하여 자동으로이 작업을 수행합니다. 또한 현재 .efi 부팅 파일의 복사 본인 현재 bootx64.efi를 백업합니다.

    라이브 설치 프로그램에서 하드 드라이브에 efi 파티션을 마운트하십시오. efi 파티션을 마운트하십시오. 부팅 플래그로 어떤 파티션이 FAT32인지 확인하십시오. 종종 sda1 또는 sda2이지만 다양합니다.

    sudo mount /dev/sda1 /mnt
    

    이미 존재하지 않는 경우에만

    sudo mkdir /mnt/EFI/Boot
    sudo cp /mnt/EFI/ubuntu/* /mnt/EFI/Boot
    

    새 폴더가 생성되면 bootx64.efi가 존재하지 않습니다.이 명령을 건너 뛰십시오.

    sudo mv /mnt/EFI/Boot/bootx64.efi /mnt/EFI/Boot/bootx64.efi.backup
    

    UEFI에서 grub을 하드 드라이브 부팅 항목으로 설정하십시오. 존재하지 않는 경우 efibootmgr을 사용하여 UEFI를 업데이트해야 할 수도 있습니다.

    sudo mv /mnt/EFI/Boot/grubx64.efi /mnt/EFI/Boot/bootx64.efi 
    

    필요한 경우 새 UEFI 하드 드라이브 부팅 항목을 추가하십시오.

    man efibootmgr
    

    ESP가 sda 또는 기본 드라이브 및 파티션 항목 인 경우 :

    sudo efibootmgr -c -L "UEFI Hard drive" -l "\EFI\Boot\bootx64.efi"
    

    ESP가 sda1이 아닌 경우 sdX는 드라이브이고 Y는 efi 파티션이며 NVMe 드라이브도 있습니다.

    sudo efibootmgr -c -g  -w -L "UEFI hard drive" -l '\EFI\Boot\bootx64.efi' -d /dev/sdX -p Y
    sudo efibootmgr -c -L "UEFI hard drive" -l "\EFI\Boot\bootx64.efi" -d /dev/nvme0n1 -p 2 
    
  2. (이것은 Boot-Repair가 II 에서 사용했던 것과 동일합니다 . 현재 권장되지 않음 : /efi/Microsoft/Boot/bootmgfw.efi의 이름을 바꾸고 grub 또는 shim을 / efi / Microsoft / Boot에 복사하고 이름을 bootmgfw.efi로 복사하십시오. grub 메뉴로 부팅하려면 boot Windows 항목 이름을 바꾼 Windows efi 파일을 부팅하려면 grub 메뉴 항목을 수동으로 추가해야합니다 Grub2의 os-prober 항목 boot bootfwfw.efi 항목은 이제 grub이므로 작동하지 않습니다.

    efi 파일을 수동으로 이동 한 사용자는 # 6 게시물을 참조하십시오.

    http://ubuntuforums.org/showthread.php?t=2101840
    http://ubuntuforums.org/showthread.php?t=2219452
    http://ubuntuforums.org/showthread.php?t=2221498&p=13012109#post13012109

II. 오래된 복사본으로 "버기 UEFI"에 대한 Boot-Repair 수정 프로그램을 실행 한 경우 실행 취소하는 것이 가장 좋습니다. 그런 다음 bootx64.efi를 사용하도록 위와 같이 변경합니다. 파일을 원래 이름으로 실행 취소하고 이름을 바꾸려면 Boot-Repair의 "EFI 백업 복원"옵션을 선택하면됩니다.

수동으로 또는 Boot-Repair를 사용하여 이름을 바꾸면 Windows 업데이트 후 Windows 파일이 복원되므로 다시 실행해야합니다.

III. shim이 Windows 이름을 갖도록 Boot-Repair의 이름 바꾸기 대신 Windows BCD를 편집하십시오. Windows를 기본값으로 계속 재설정하는 시스템의 경우 일부 시스템은 Windows 내부에서 grub / shim을 등록하는 것이 좋습니다.

Windows 8.1 Ubuntu 13.10 이중 부팅시 시작시 그럽이 표시되지 않음

bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi

https://coderwall.com/p/vfyqkg

IV. Description이 Windows 여야하는 경우 UEFI 설명을 변경하십시오. 이것은 실제로 우분투가 있고 Windows가 전혀 설치되지 않은 사람들에게만 효과적입니다.

sudo efibootmgr -c -L "Windows Boot Manager" -l "\EFI\ubuntu\shimx64.efi"

복원 또는 새 Windows UEFI 항목-sda2 인 경우 기본 sda1 add -p 2를 가정합니다 (man efibootmgr -d drive & -p partition 옵션 참조) :

sudo efibootmgr -c -L "Windows Boot Manager" -l "\EFI\Microsoft\Boot\bootmgfw.efi"
sudo efibootmgr -c -L "Windows Boot Manager" -l "\EFI\Microsoft\Boot\bootmgfw.efi" -d /dev/nvme0n1 -p 1 

V. 일부 다른 해결 방법으로 부팅 아이콘이 멋진 rEFInd를 설치합니다.

http://www.rodsbooks.com/refind/index.html

http://www.rodsbooks.com/refind/secureboot.html

Ubuntu에 쉽게 설치할 수 있도록 PPA 제공

http://www.rodsbooks.com/refind/getting.html

VI. Ubuntu UEFI 항목 복원 sdX는 드라이브이고 Y는 efi 파티션입니다 (예 : sda2 인 경우)

sudo efibootmgr -c -L ubuntu -l "\EFI\ubuntu\shimx64.efi"  -d /dev/sda -p 1
sudo efibootmgr -c -L "Ubuntu" -l "\EFI\ubuntu\shimx64.efi" -d /dev/nvme0nX -p Y

VII. efibootmgr을 사용하여 부팅 순서를 변경하십시오.

efibootmgr을 사용하여 부팅 순서 변경

VIII. UEFI 항목을 제거하십시오.

Grub 제거 및 Windows 부트 로더 사용 efibootmgr을 사용하여 부팅 순서 변경


예! 이름 바꾸기가 나를 위해 일했습니다! efi 파티션을 마운트하고 ../EFI/ubuntu/grubx64.efi 파일을 ../EFI/Boot/ 및 / EFI / Microsoft / Boot에 복사하고 파일 이름을 다음과 같이 변경했습니다. ../EFI/Boot 디렉토리에서 파일로 bootx64.efi를 덮어 쓰고 ../EFI/Microsoft/Boot i에서 파일로 bootmgfw.efi를 덮어 썼습니다. 그것이 내가 생각한 전부였습니다. 대단히 감사합니다!
user296880

Windows에 붙어있는 사람들을 위해 : 나는 Windows를 떠나지 않고 옵션 a1에 설명 된 이름 바꾸기 접근 방식을 수행했습니다. 관리자로 명령 창을 연 다음 mountvol S: /SEFI 파티션을 S :로 마운트하기 위해 실행 했습니다. 폴더를 올리거나 내리는 데 이상한 문제가 있었지만 한 번에 grubx64.efi 복사본을 폴더를 / EFI / Boot로 이동 한 다음 이름을 bootx64.efi로 바 꾸었습니다.
피터 베커

내 게시물의 번호를 다시 매긴 영국 전공이 그렇게하지 않은 것에 놀랐습니다. A : & B :를 주요 섹션으로 언급 한 이전 의견이있었습니다. :)
oldfred

2

답변 은 친구의 HP Pavilion에서는 작동하지 않지만 적절한 해결 방법을 찾았습니다. HP의 펌웨어는 항상 BootOrder부팅 할 때마다 전원을 덮어 쓰고 Windows를 먼저 설정하지만 여전히을 존중 BootNext합니다. 그래서 BootNext매 부팅마다 설정할 시작 스크립트를 작성했습니다 .

  1. 운영

    efibootmgr
    

    의 숫자 코드를 찾습니다 BootCurrent. 내 친구의 경우 이것은이었다 0003.

  2. /etc/systemd/system/boot-linux-next.service:

    [Unit]
    Description=Boot Linux next
    
    [Service]
    Type=oneshot
    # Replace '3' in the next line with the appropriate code.
    ExecStart=efibootmgr --bootnext 3
    
    [Install]
    WantedBy=multi-user.target
    
  3. 운영

    systemctl enable --now boot-linux-next.service
    

이것은 다른 부팅을 할 경우 다음에 부팅 할 때 수동으로 Linux를 선택해야한다는 것을 의미합니다.


0

같은 문제가있는 Acer가 있습니다. 내 솔루션은 종료하지 않고 창을 "재부팅"하는 것입니다 (실제로는 최대 절전 모드입니다).

재부팅하면 (업데이트가 트리거 될 수 있음) 시스템이 종료되고 BIOS에서 부팅을 선택할 수 있습니다. 재부팅하기 전에 잡아야합니다.

나는 거의 창을 사용하지 않으므로이 방법으로 부팅해도 전혀 신경 쓰지 않습니다. 물론 Windows 업데이트가 아닌 한.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.