저는 이중 부팅 Linux/Windows 시스템을 설정하고 한 시스템에서 다른 시스템으로 자주 전환합니다. GRUB 프롬프트에서 중지하지 않고 Windows로 직접 재부팅하기 위해 메뉴 중 하나에 메뉴 항목을 추가할 수 있는지 궁금합니다.
나는 보았다이 문제포럼에서 이것은 정확히 내가 원하는 것이지만 내 경우가 아닌 lilo를 처리하고 있습니다.
GRUB 메뉴의 기본 항목을 수정한 다음 재부팅하는 솔루션을 생각해 냈지만 몇 가지 단점이 있으며 더 깔끔한 대안이 있는지 알고 싶습니다.
(또한 Windows에서 Linux로 직접 부팅하는 솔루션에도 관심이 있지만 이는 아마도 더 어렵고 여기에 속하지 않을 것입니다. 어쨌든 한 가지 방법만 있으면 다른 방법을 기본값으로 설정할 수 있습니다.
고쳐 쓰다누가 물어본 것 같은데유제/boot/grub/grubenv
, 이것이 제안된 답변이라면 편집 하고 grub-reboot
수행하는 것이 좋습니다 . )grub-set-default
grub-editenv
어떤 조언이라도 미리 감사드립니다.
고쳐 쓰다:
이것은 내 GRUB 버전입니다.(GRUB) 1.99-12ubuntu5-1linuxmint1
실행을 시도했지만 grubonce
명령을 찾을 수 없습니다. 저장소를 검색했지만 아무것도 발견하지 못했습니다. 저는 리눅스 민트를 사용하고 있는데 그럴 수도 있겠네요...
man grub-reboot
제 요구사항에도 맞는 것 같습니다 grubonce
. 또한 어디에서나 사용할 수 있습니다(적어도 저에게는 grub 패키지의 일부라고 생각합니다). 두 개의 관련 명령이 표시됩니다: grub-editenv
및 grub-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
- /etc/default/grub을 편집하고 다음
GRUB_DEFAULT=0
으로 바꾸십시오.GRUB_DEFAULT=saved
sudo update-grub
귀하의 명령은 다음과 같습니다
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"이 하위 메뉴입니다.