Windows 10에 Debian을 설치했지만 GRUB가 표시되지 않습니다

Windows 10에 Debian을 설치했지만 GRUB가 표시되지 않습니다

Windows 10이 설치된 SSD와 원래 NTFS로 완전히 파티션된 하드 드라이브가 있습니다. 하지만 Debian 설치 프로그램을 사용하여 NTFS를 축소하고 새로 확보된 공간에 Debian을 설치했습니다.

이상하게도 설치 프로그램은 Windows를 감지하지 못했다고 말하면서 GRUB를 MBR에 쓰는지 확인하라고 요청했습니다. 나는 거절하고 방금 데비안이 설치된 하드 드라이브에 GRUB를 설치해 달라고 요청했습니다(Windows가 설치된 SSD와 반대).

BIOS에서 보안 부팅을 비활성화했지만 그런 경우에도 컴퓨터는 GRUB를 표시하지 않고 Windows에서 자동으로 부팅되며 Windows 부팅 관리자는 내 BIOS가 부팅 관리자에서 감지하는 유일한 것입니다. 내가 확인한 포럼에서 자주 지적했듯이 BIOS에는 EFI 파일을 신뢰/선택할 수 있는 옵션이 없습니다.

데비안에서 부팅하기 위해 Shift 키를 누르지 않는 한 Windows에서 자동 부팅하고 싶습니다(부팅 시 GRUB가 나타난 직후에 이 작업을 수행하는 방법을 알고 있지만... 그렇지 않습니다). 어떻게 해야 합니까?

내 컴퓨터는 Lenovo Legion Y520입니다.

답변1

BIOS에 말 그대로 "Windows 부팅 관리자"라는 부팅 옵션이 있는 경우 이는 Windows에 UEFI가 설치되었음을 의미합니다. 실제로 데비안 설치 프로그램은 MBR에 GRUB를 쓰는 기능도 제공하는데, 이는 데비안 설치 프로그램이 전통적인 BIOS 스타일로 부팅되었음을 나타냅니다.

16비트 레거시 BIOS 부트로더할 수 없다UEFI 부트로더를 체인로드합니다(먼저 32비트 또는 64비트 모드로 변환하고 UEFI 환경을 설정하지 않고 레거시 16비트 모드의 목적을 우선적으로 무효화합니다).

일반적으로 운영 체제 설치 프로그램을 부팅하는 데 사용되는 부팅 모드(BIOS 대 UEFI)에 따라 설치되는 새 운영 체제에 사용할 모드가 자동으로 결정됩니다. UEFI 모드에서 실행되는 운영 체제 설치 프로그램할 수 있다기술적으로 UEFI 기반 부트로더 대신 BIOS 기반 부트로더를 설치하는 것이 가능하지만 레거시 BIOS 호환성을 활성화하려면 UEFI 런타임 서비스 인터페이스를 비활성화해야 하며 부팅 설정이 시스템 NVRAM에 기록되어야 하기 때문에 그 반대의 경우는 일반적으로 불가능합니다( 예: BIOS 설정의 "Windows 부팅 관리자" 텍스트) - 이는 UEFI 부트 로더 설치를 완료하기 위한 요구 사항입니다.

부팅 미디어에 이 두 가지 옵션을 사용할 수 있고 Debian 10 설치 미디어에 두 가지 옵션이 모두 있으면 노트북은 현재 UEFI보다는 레거시 BIOS 모드로 부팅하는 것을 선호할 수 있습니다. 따라서 BIOS 모드에서 데비안 설치 프로그램을 시작하면 UEFI 부트로더 설치가 표준 방식으로 완료되지 않을 수 있습니다. BIOS 모드에서 설치 프로그램은 UEFI 부트로더를 설치하려면 UEFI 부트로더가 설치될 디스크에 ESP(EFI 시스템 파티션)가 필요하다는 사실도 알려주지 않습니다. HDD에 생성하도록 선택하지 않은 경우 UEFI 부트 로더를 설치할 유효한 위치가 없습니다.

일부 UEFI 펌웨어 구현에는 버그가 있거나 Windows 중심이라는 문제도 있습니다.데비안 위키에서는 다음과 같이 말합니다:

불행하게도 앞서 언급했듯이 많은 UEFI 펌웨어 구현에는 결함이 있습니다. 부팅 항목 및 부팅 순서에 대한 사양이 작동 방식에 대해 매우 명확하더라도 여전히 잘못된 시스템이 많이 있습니다. 일부 시스템은 새 부팅 항목을 추가하라는 유효한 요청을 단순히 무시합니다. 다른 사람들은 이러한 요청을 수락하지만 자신을 "Windows" 또는 이와 유사한 것으로 설명하지 않는 한 사용을 거부합니다. 다른 유사한 오류도 많이 있는데, 이는 많은 시스템 공급업체가 "Windows에서 작동합니까?" 이외의 테스트를 거의 또는 전혀 수행하지 않음을 나타냅니다.

다행스럽게도 시스템 공급업체에서는 때때로 펌웨어 버그를 수정합니다. 따라서 첫 번째 단계는 Lenovo가 귀하의 모델에 대한 펌웨어를 업데이트("BIOS 업데이트")했는지 확인하고, 그렇다면 설치하는 것입니다. 이렇게 하면 이중 부팅 구성을 더 쉽게 설치할 수 있습니다.

두 번째 단계로, 가능하다면 레거시 BIOS 호환성 기능을 비활성화해야 합니다. 시스템이 UEFI만 사용하도록 허용하는 "BIOS" 설정을 찾은 경우 해당 설정을 선택하거나 CSM("호환성 지원 모듈")을 언급하는 설정이 있는 경우 이를 비활성화합니다. 이제 기존 Windows 설치와 마찬가지로 데비안 설치 프로그램을 UEFI 모드로 부팅하는 것이 더 쉬워졌습니다. 그러면 올바른 유형의 부트로더가 설치됩니다.

세 번째 단계에서는 ESP(EFI 시스템 파티션)가 있어야 한다는 요구 사항에 유의하세요. 기본적으로 Debian에 설치해야 하는 작은 FAT32 파티션(Debian 10의 경우 256M이면 충분)입니다 /boot/efi. MBR 파티션을 사용하는 경우 특수 파티션 유형 코드가 있어야 합니다 0xef. GPT 파티션을 사용하는 경우 파티션 파티션 옵션에 "부팅 가능"이 표시됩니다. " 및/또는 "ESP"가 올바른 작업을 수행해야 합니다. HDD에 ESP가 있으면 HDD를 다른 시스템으로 옮기고 나중에 원할 경우 기존 데비안 설치를 부팅할 수 있습니다.

HDD에 Debian용 별도 ESP를 생성하는 대신 파티션을 설정할 때 SSD에서 Windows ESP를 선택하고,아니요포맷하되 기존 파일 시스템을 사용하여 마운트하세요 /boot/efi. ESP의 표준화된 디렉터리 구조는 동일한 ESP에서 여러 운영 체제에 대한 부트 로더를 처리하도록 설계되었습니다. 이 옵션을 선택하면 Debian 10의 UEFI 부트로더가 표준 Windows 10 ESP에 여유 공간을 두고 잘 맞아야 합니다. 하지만 이를 수행하려면 "고급/수동" 파티셔닝 옵션으로 이동해야 할 수도 있습니다.

이 후에도 여전히 문제가 발생한다면 이 글을 읽어 보시기 바랍니다.UEFI 부트로더 문제에 대한 Roderick W. Smith의 텍스트입니다.이는 rEFInd 부트 로더용으로 작성되었지만 설명된 내용의 대부분은 UEFI 버전의 GRUB에도 적용됩니다.


두 운영 체제가 모두 UEFI 모드로 부팅된 후:

SSD가 NVMe 유형인 경우 Linux에서는 /dev/nvme0n1(파티션은 , N = 파티션 번호)로 나타날 수 있습니다. /dev/nvme0n1pNLinux가 SSD를 인식하는지 확인한 다음 update-grub루트로 실행하십시오.

Windows를 감지하지 못했다고 표시되면 blkid루트로 실행하세요. 모든 파일 시스템과 파티션의 UUID를 보고해야 합니다. 알아내다파일 시스템SSD에 있는 Windows ESP의 UUID입니다. Windows ESP가 표준 FAT32 파일 시스템 유형을 사용하는 경우 이는 형식으로 나열되어야 합니다 UUID="xxxx-xxxx"(실제로는 FAT32 파일 시스템 일련 번호임).

UUID를 알고 나면 끝에 다음 줄을 추가하여 Windows용 사용자 정의 GRUB 메뉴 항목을 구성할 수 있습니다 /etc/grub.d/40_custom.

menuentry 'Whatever you want the Windows 10 boot menu entry to say' {
    insmod part_gpt
    insmod fat
    search --no-floppy --fs-uuid --set=root xxxx-xxxx
    chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}

이는 Windows용 기본 UEFI 체인로더 항목이어야 합니다. xxxx-xxxx실제 Windows ESP 파일 시스템 UUID로 바꾸면 됩니다 . 파일을 편집한 후 update-grub루트로 실행하십시오. 그런 다음 기본 부팅 옵션을 로 설정하면 debian부팅 메뉴가 표시됩니다.

Lenovo는 UEFI 사양 요구 사항을 뛰어넘어 UEFI 펌웨어에서 NTFS 파일 시스템 지원을 구현하고 ESP에서 NTFS를 사용하여 Windows 설치를 제공하기로 선택할 수도 있습니다. 이 경우 를 바꾸면 insmod fat파일 insmod ntfs시스템 UUID의 형식이 달라집니다. blkid출력은 다음과 같습니다 UUID="A268B58668B559AD".

참고: efibootmgr명령을 확인하십시오. BIOS 설정 메뉴에 들어가지 않고도 Linux에서 펌웨어 부팅 설정을 조작하는 데 사용할 수 있습니다. Windows에서도 bcdedit동일한 작업을 수행할 수 있지만 사용자 인터페이스가 더 어색하다고 생각합니다.

답변2

다른 디스크에 있기 때문에 창을 감지하지 못합니다. 서로 다른 디스크에 운영 체제를 설치하면 각 디스크는 충돌 없이 서로 다른 부팅 섹터를 가지게 됩니다. 이는 디스크 중 하나가 손상되어도 다른 디스크에 영향을 주지 않기 때문에 좋은 것입니다.

BIOS 설정으로 이동하여 부팅 장치를 SSD에서 하드 드라이브로 변경해야 합니다.

관련 정보