Windows 7/10 이중 부팅 구성에 Linux 없이 Grub 사용

I throw together things until it works
-- Rasmus Lerdorf, Creator of PHP



하단의 TL;DR


이것은 수동 grub 구성에 대한 2부작 시리즈 중 1부입니다.
  • Windows 7/10 이중 부트 구성용 독립 실행형 Grub 설치
  • 모든 Linux 사용자가 반드시 grub.cfg에 대해 반드시 알아야 하는 최소값(변명의 여지가 없습니다!)(출시 예정®)



  • 문제


  • 다음을 사용하여 이중 부팅을 만듭니다.
  • Windows 7이 설치된 하드 드라이브
  • Windows 10 탑재 SSD

  • BCD을(를) 편집할 수 없습니다.
  • 다른 OS를 설치할 수 없습니다
  • .



    아이디어: 2개의 Windows 부트로더 항목으로 Grub 설치.


    준비는 전투의 절반입니다



    부팅 파티션을 위한 공간 만들기



    우리는 NTFS를 축소하기 때문에 이를 위해 Windows를 사용합니다.

    먼저 <Win-r>를 누르고 compmgmt.msc를 실행한 다음 "디스크 관리"유틸리티를 사용합니다.

    축소하려는 파티션을 마우스 오른쪽 버튼으로 클릭하고 grub을 위한 최소 200MB의 공간을 만드십시오.



    여유 공간을 만든 후 여유 공간을 마우스 오른쪽 버튼으로 클릭하고 "새 단순 볼륨"을 사용하여 새 파티션을 만듭니다. 선택한 설정은 나중에 덮어쓰므로 중요하지 않습니다.

    그 후, 마지막 준비 단계는

    깔끔한 우분투 스틱 만들기



    Just use rufus.

    그럽 설치



    부팅한 후 루트 셸을 잡고 새 파티션이 무엇인지 확인합니다(예: fdisk -l를 통해 모든 파티션을 나열하고 크기를 비교합니다. You can ignore all /dev/loopXX . ).

    이제 grub 호환 파일 시스템으로 포맷합니다. 이제부터 새로운 파티션은 /dev/sda2 입니다.

    (단순화를 위해 지금부터 bios/mbr로 가정)

    mkfs.ext4 /dev/sda2
    


    그런 다음 마운트하고 부팅 디렉토리를 만들고 grub 설치를 시도합니다.

    mount /dev/sda2 /mnt && mkdir /mnt/boot
    # The --boot-directory is needed since we don't manipulate
    # our own bootloader, therefore we don't have the default
    # location /boot
    grub-install --boot-directory=/mnt/boot /dev/sda1
    


    그래도 작동하지 않으면 강제로 실행하세요. 어쨌든 수동으로 구성해야 합니다.

    grub-install --force --boot-directory=/mnt/boot /dev/sda1
    


    그렇게 쉬울 수 없습니다! 그리고 아니야!!!! 다음을 사용하여 구성을 생성하려고 할 때

    grub-mkconfig -o /mnt/boot/grub/grub.cfg
    


    그것은 다음과 같은 것에 대해 울어야합니다

    /usr/sbin/grub-probe:error:failed to get canonical path of /cow.
    


    이는 grub-probe 스크립트에서 호출한 도구인 grub-mkconfig가 우분투의 라이브 시스템 루트를 처리할 수 없기 때문에 발생합니다.

    개선, 적응, 극복



    하지만 그건 문제가 되지 않습니다! 자신만의 미니멀리스트grub.cfg를 작성하는 것은 생각보다 쉽습니다!

    먼저 C:\ 파티션에 있는 UUID를 찾으십시오. 다시 말하지만 크기와 파일 시스템을 fdisk -l와 비교하고 /dev/sdxxblkid에 넣습니다.

    이제 좋아하는 편집기를 열어 grub.cfg 작성을 시작하겠습니다.

    nano -w /mnt/boot/grub/grub.cfg
    


    우리는 딱 2가지만 하면 됩니다. 먼저 정상적인 기본값을 설정합니다.

    # Set first as default
    set default="0"
    
    # Set timeout for 10 seconds that we have enough time
    set timeout=10
    
    # sane IO
    terminal_input console
    terminal_output gfxterm
    
    # minimalistic color sheme
    set menu_color_normal=white/black
    set menu_color_highlight=black/light-gray
    


    이제 항목을 만들어야 합니다. 가면서 댓글 달겠습니다

    # Here, the "Windows 10" is just the representative name
    # it can be chosen as you want to
    menuentry "Windows 10" --class windows --class os {
            # insmod ntfs loads ntfs support
        insmod ntfs
            # finds the right partition by the UUID you found earlier
        search --no-floppy --set=root --fs-uuid <YOUR UUID>
            # Starts the windows NT loader
        ntldr /bootmgr
    }
    
    # Analogous for your other windows
    menuentry "Windows 7" --class windows --class os {
        insmod ntfs
        search --no-floppy --set=root --fs-uuid <YOUR UUID>
        ntldr /bootmgr
    }
    
    


    그런 다음 모든 것을 마운트 해제하고 필요한 경우 부팅 순서를 변경하면 문제가 해결됩니다!

    TLDR 코드



    미니멀grub.cfg
    set default="0"
    set timeout=10
    terminal_input console
    terminal_output gfxterm
    set menu_color_normal=white/black
    set menu_color_highlight=black/light-gray
    menuentry "Windows 10" --class windows --class os {
        insmod ntfs
        search --no-floppy --set=root --fs-uuid <YOUR UUID>
        ntldr /bootmgr
    }
    menuentry "Windows 7" --class windows --class os {
        insmod ntfs
        search --no-floppy --set=root --fs-uuid <YOUR UUID>
        ntldr /bootmgr
    }
    


    감사



    읽어주셔서 감사합니다. thanks to Anton Tagunov for his blog post on the topic .

    좋은 웹페이지 즐겨찾기