저는 Ubuntu와 Arch를 이중 부팅으로 사용하고 있으며 두 번째 OS를 부팅하도록 GRUB의 기본 부팅 항목을 설정하는 방법이 있어야 한다고 생각합니다. 예를 들어 Arch에서 재부팅하면 Ubuntu로 부팅되고 그 반대의 경우도 마찬가지입니다. 어쩌면 새로운 grub 항목을 생성하여 수행할 수도 있지만 이전 부팅 항목을 확인하는 방법을 모르므로 다른 항목을 선택하십시오.
답변1
GRUB의 최신 버전에서는 이를 달성하기 위해 두 가지 명령을 사용할 수 있습니다: grub-set-default
및 grub-reboot
.
grub-set-default
기본 시작 항목에 대한 변경 사항은 유지되지만 변경 사항을 적용하려면 Universal 또는 Debian/Ubuntu 전용 래퍼를 사용하여 실제 GRUB 구성 GRUB_DEFAULT=saved
을 업데이트해야 합니다 ./etc/default/grub
grub-mkconfig
update-grub
grub-reboot
지정하다한 번다음 발사의 발사 대상으로만 사용됩니다. 이름에도 불구하고 실제로 시스템을 재부팅하지는 않습니다.
두 가지 모두 숫자, 메뉴 항목 제목 또는 메뉴 항목 식별자를 인수로 사용합니다. 원하는 메뉴 항목이 하위 메뉴에 있는 경우 주 메뉴 항목의 이름/식별자, 문자 >
및 하위 메뉴 항목의 이름을 지정해야 합니다.
예를 들어 데비안에서는 첫 번째(일반적인 기본) 메뉴 항목의 이름은 일반적으로 이고 Debian GNU/Linux
, 두 번째 메뉴 항목의 제목 Advanced options for Debian GNU/Linux
은 현재 설치된 커널에 대한 하위 메뉴를 여는 입니다. 각 코어에 대해 하위 메뉴에는 Debian GNU/Linux, with <kernel version>
및 의 두 가지 항목이 있습니다 Debian GNU/Linux, with <kernel version> (recovery mode)
.
이전 커널 버전을 사용하여 일반 모드로 한 번 부팅하려면 다음을 수행할 수 있습니다.
grub-reboot 'Advanced options for Debian GNU/Linux>Debian GNU/Linux, with <kernel version>'
명령을 실행하고 변수에 값이 있는지 확인하면 grub-reboot
현재 부팅 주기에서 명령이 사용되었는지 확인할 수 있습니다. 한 번도 사용된 적이 없다면 변수가 전혀 존재하지 않을 수도 있습니다.grub-editenv list
next_entry=
grub-reboot
saved_entry=
마찬가지로 변수가 있으면 해당 grub-set-default
명령이 사용되었음을 의미하지만 와 달리 next_entry=
부팅 시도 후 해당 값이 자동으로 삭제되지 않습니다.
답변2
현재 사용 중인 시스템을 확인하는 스크립트(서비스) 를 작성할 수 있습니다 systemd
(예를 들어 명령이 있는지 확인하여 lsb_release
Ubuntu에 있어야 하지만 Arch에는 없어야 함). 그런 다음 GRUB 구성 파일의 내용을 확인합니다 /boot/grub/grub.cfg
(GRUB에 관한 위키 페이지). 그런 다음 시스템에 따라 GRUB 구성의 항목을 전환합니다. 이를 수행하는 방법에는 여러 가지가 있습니다. 이것권장되지 않음이를 수행하는 방법은 기본 구성 파일을 "수동으로"(즉, 스크립트/서비스 사용) 편집하는 것입니다. 이론적으로는 시스템 부팅을 방해하는 실수를 저지르기가 쉽기 때문에 이렇게 하면 안 됩니다. GRUB 항목을 편집하는 데 권장되는 방법은 사용자 정의 항목을 사용하는 것이지만 스크립트(또는 일반 명령줄)에서 이를 처리하는 것은 약간 까다로울 수 있습니다.
물론 스크립트/방법에 몇 가지 문제점이 있습니다 systemd
(예를 들어 실제로 이와 같은 두 개의 스크립트가 있어야 합니다. 하나는 Arch에 있고 다른 하나는 Ubuntu에 있으며 둘 다 동일한 기능을 구현합니다). 하지만 원하는 기능에 매우 가깝습니다. 그건 그렇고, 당신은 다음과 같이 썼습니다:
이전 시작 항목을 확인하는 방법을 모르므로 다른 항목을 선택하세요.
꼭 읽어보시길 권합니다GRUB의 아치 리눅스 위키--여러번. GRUB의 작동 방식을 최종적으로 이해하는 데 많은 도움이 되었습니다. 나는 이 문서를 만든 사람을 존경하며, 훌륭한 설명이라고 말하고 싶습니다. 웹상의 최고 중 하나입니다(위키 페이지의 예로서).
대체로 귀하의 질문에서 원하는 결과를 얻는 쉬운 방법은 없습니다. 반면에 "쉬운" 솔루션의 재미는 어디에 있습니까? :) 행운을 빕니다. 즐거운 코딩이 되시길 바랍니다. 추가 조언이 필요하면 알려주시기 바랍니다.