재부팅하기 전에 GRUB에 Windows로 재부팅하고 싶다고 어떻게 알릴 수 있나요?

재부팅하기 전에 GRUB에 Windows로 재부팅하고 싶다고 어떻게 알릴 수 있나요?

저는 이중 부팅 Linux/windows 시스템을 설정했고 자주 전환합니다. GRUB 프롬프트에서 멈추지 않고 메뉴 중 하나에 메뉴 항목을 추가하여 창으로 직접 재부팅할 수 있는지 생각하고 있었습니다.

나는 보았다이 질문포럼에서는 그것이 바로 내가 원하는 것이지만 lilo를 다루고 있는데 그것은 내 경우가 아닙니다.

GRUB 메뉴의 기본 항목을 수정한 후 재부팅하는 솔루션을 생각했지만 몇 가지 단점이 있어 더 깔끔한 대안이 있는지 궁금합니다.

(또한 Windows에서 Linux로 직접 부팅하는 솔루션에 관심이 있지만 이는 더 어려울 수 있으며 여기에 속하지 않습니다. 어쨌든 한 가지 방법이 있는 한 다른 방법은 다음과 같이 설정할 수 있습니다. 기본값.

업데이트누가 물어본 것 같은데비슷한 질문, 이것이 제안된 답변이라면 편집하고 /boot/grub/grubenv수행 하는 것이 좋습니다 . )grub-rebootgrub-set-defaultgrub-editenv

어떤 조언이라도 미리 감사드립니다.

업데이트:

이것은 내 GRUB 버전입니다.(GRUB) 1.99-12ubuntu5-1linuxmint1

실행을 시도했지만 grubonce명령을 찾을 수 없습니다. 그리고 저장소에서 검색해도 아무 것도 나오지 않습니다. 저는 Linux Mint를 사용하고 있으니 그럴 수도 있겠네요...

보니 man grub-reboot, 내가 원하는 대로 되는 것 같습니다 grubonce. 또한 어디에서나 사용할 수 있습니다(적어도 저에게는 그렇습니다. grub 패키지의 일부인 것 같습니다). 두 가지 관련 명령을 보았습니다: grub-editenvgrub-set-default.

sudo grub-set-default 4를 실행한 후 실행하면 grub-editenv list다음과 비슷한 결과가 나온다는 것을 알았습니다 .

saved_entry=4

그리고 실행하면 grub-reboot 4다음과 같은 결과가 나타납니다.

prev_saved_entry=0
saved_entry=4

이는 둘 다 동일한 작업을 수행한다는 것을 의미합니다(하나는 일시적이고 하나는 그렇지 않음).

놀랍게도 내가 시도했을 때 :

sudo grub-reboot 4
sudo reboot now

작동하지 않았습니다. 아무것도 하지 않은 것처럼 평소처럼 메뉴만 표시하고 10초 후에 이 항목을 부팅하겠다고 하면서 첫 번째 항목을 선택했습니다.

다시 시도했는데, 항목을 잘못 썼을 수도 있다는 생각이 들었습니다(0부터 시작하는 것 맞죠?). 그 당시에는 메뉴 화면에서만 멈췄고, 부팅하려면 PC를 하드 리셋해야 했습니다.

혹시 저만 그런 것인지 확인하기 위해 누구든지 이것을 시도해 볼 수 있다면 감사하겠습니다. (민트는 나에게 힘든 시간을 줬고, 그것은 변화할 좋은 기회가 될 것입니다 :P).

에서 코드를 읽으면 /boot/grub/grub.cfg이것이 갈 길인 것 같지만 내 관찰에 따르면 이러한 설정을 무시하고 있습니다.

답변1

  1. /etc/default/grub을 편집하고 다음 GRUB_DEFAULT=0으로 바꾸십시오.GRUB_DEFAULT=saved
  2. sudo update-grub
  3. 귀하의 명령은 다음과 같습니다

    sudo grub-reboot "$(grep -i windows /boot/grub/grub.cfg|cut -d"'" -f2)" && sudo reboot
    

    예쁜귀하의 ~/.bashrc또는 .bash_aliases다음과 같은 기능을 수행할 수 있습니다.

    # Reboot directly to Windows
    # Inspired by http://askubuntu.com/questions/18170/how-to-reboot-into-windows-from-ubuntu
    reboot_to_windows ()
    {
        windows_title=$(grep -i windows /boot/grub/grub.cfg | cut -d "'" -f 2)
        sudo grub-reboot "$windows_title" && sudo reboot
    }
    alias reboot-to-windows='reboot_to_windows'
    

    편집자 주:

    • 나는 교체했다더 이상 사용되지 않는 백틱( ``) $(...)구성별로.

    • 일반적으로 현재 버전을 준수하기 위해 다시 작성했습니다.POSIX(위키)표준을 준수하는 동안 몇 가지 사소한 변경 사항을 적용했습니다.

    • 완전성을 위해 비교를 위해 아래 기능을 그대로 두었습니다.


grub.conf에 Windows용 여러 줄이 포함되어 있는 경우 다음 함수는 Windows를 참조하여 시작하는 줄만 처리 menuentry하고 첫 번째 줄만 선택합니다.

function my_reboot_to_windows {
    WINDOWS_TITLE=`grep -i "^menuentry 'Windows" /boot/grub/grub.cfg|head -n 1|cut -d"'" -f2`
    sudo grub-reboot "$WINDOWS_TITLE"
    sudo reboot
}

답변2

명령이 작동 하려면 grub-reboot몇 가지 필수 구성 변경이 필요합니다.

  • grub의 기본 항목은 로 설정되어야 합니다 saved. 이에 대한 가능한 위치 중 하나는 다음 GRUB_DEFAULT=과 같습니다./etc/default/grub
  • grub-set-default기본 항목을 일반적으로 사용하는 항목으로 설정하는 데 사용됩니다 .
  • grub 구성을 업데이트하세요(예 update-grub: ).

이것은 초기 설정을 처리해야 합니다. 앞으로는 grub-reboot <entry>.<entry>

답변3

Ubuntu 20.04/22.04에서 이 작업을 수행하는 도구를 작성했습니다. https://github.com/mendhak/grub-reboot-picker

여기에 이미지 설명을 입력하세요

이전 Ubuntus에서도 작동할 수 있지만 테스트한 적이 없습니다.

답변4

@jw013님의 의견에 동의합니다. 또한 메뉴 타일을 grub-reboot에 제공할 수도 있습니다(상위 메뉴 제목 포함). 예:

$ sudo grub-reboot "Advanced options for Ubuntu>Ubuntu, with Linux 4.13.0-26-generic"
$ sudo reboot

여기서 "Ubuntu용 고급 옵션"은 상위 메뉴이고 "Ubuntu, with Linux 4.13.0-26-generic"은 하위 메뉴입니다.

관련 정보