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

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

저는 이중 부팅 Linux/Windows 시스템을 설정하고 한 시스템에서 다른 시스템으로 자주 전환합니다. GRUB 프롬프트에서 중지하지 않고 Windows로 직접 재부팅하기 위해 메뉴 중 하나에 메뉴 항목을 추가할 수 있는지 궁금합니다.

나는 보았다이 문제포럼에서 이것은 정확히 내가 원하는 것이지만 내 경우가 아닌 lilo를 처리하고 있습니다.

GRUB 메뉴의 기본 항목을 수정한 다음 재부팅하는 솔루션을 생각해 냈지만 몇 가지 단점이 있으며 더 깔끔한 대안이 있는지 알고 싶습니다.

(또한 Windows에서 Linux로 직접 부팅하는 솔루션에도 관심이 있지만 이는 아마도 더 어렵고 여기에 속하지 않을 것입니다. 어쨌든 한 가지 방법만 있으면 다른 방법을 기본값으로 설정할 수 있습니다.

고쳐 쓰다누가 물어본 것 같은데유제/boot/grub/grubenv, 이것이 제안된 답변이라면 편집 하고 grub-reboot수행하는 것이 좋습니다 . )grub-set-defaultgrub-editenv

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

고쳐 쓰다:

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

실행을 시도했지만 grubonce명령을 찾을 수 없습니다. 저장소를 검색했지만 아무것도 발견하지 못했습니다. 저는 리눅스 민트를 사용하고 있는데 그럴 수도 있겠네요...

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초 후에 해당 항목을 시작한다고 말합니다.

다시 시도해 봤는데 제가 잘못 쓴 게 아닐까 하는 생각이 들었습니다(처음부터 시작했지요?). 그 당시에는 메뉴 화면에만 멈춰서 부팅하려면 컴퓨터를 하드 리셋해야 했습니다.

누구든지 이것을 시도해보고 나만 그런 것인지 확인할 수 있다면 매우 감사하겠습니다. (민트는 항상 나를 슬프게 했습니다. 이것은 변화를 위한 좋은 기회가 될 것입니다 :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용 여러 줄이 포함되어 있는 경우 다음 함수는 첫 번째 줄로 시작하는 줄에만 초점을 맞추고 menuentry첫 번째 줄만 선택합니다(Windows 참조).

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

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

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

답변4

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

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

그 중 "Ubuntu Advanced Options"가 상위 메뉴이고, "Ubuntu, with Linux 4.13.0-26-generic"이 하위 메뉴입니다.

관련 정보