과거에는 다음 grub-reboot
을 위해 사용되었습니다.다른 운영 체제로 부팅추측하기 쉽습니다옵션 번호GRUB 목록에서 예를 들면 다음과 같습니다.
luis@VirtuKali:~$ more /boot/grub/grub.cfg | grep menuentry --color
menuentry 'Debian GNU/Linux, with Linux 3.14-kali1-amd64' --class debian --class gnu-linux --class gnu --class os {
menuentry 'Debian GNU/Linux, with Linux 3.14-kali1-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os {
...따라서 옵션 0(첫 번째)은 일반 Kali Linux로 부팅되고 옵션 1(두 번째)은 복구 모드로 부팅된다는 것을 알고 있으므로 기꺼이 다음과 같이 할 수 있습니다.
# grub-reboot 1
하지만GRUB의 최신 버전, 그리고 있을 때여러 운영 체제, 일이 그렇게 쉽지는 않습니다.
예를 들어, 다음과 같은 난장판을 보세요:
luis@balanceador:~$ more /boot/grub/grub.cfg | grep menuentry --color
if [ x"${feature_menuentry_id}" = xy ]; then
menuentry_id_option="--id"
menuentry_id_option=""
export menuentry_id_option
menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-d795f672-83d4-451e-bea4-0db5c70512b8' {
submenu 'Opciones avanzadas para Ubuntu' $menuentry_id_option 'gnulinux-advanced-d795f672-83d4-451e-bea4-0db5c70512b8' {
menuentry 'Ubuntu, con Linux 3.13.0-39-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.13.0-39-generic-advanced-d795f672-83d4-451e-bea4-0db5c70512b8' {
menuentry 'Ubuntu, with Linux 3.13.0-39-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.13.0-39-generic-recovery-d795f672-83d4-451e-bea4-0db5c70512b8' {
menuentry 'Ubuntu, con Linux 3.13.0-32-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.13.0-32-generic-advanced-d795f672-83d4-451e-bea4-0db5c70512b8' {
menuentry 'Ubuntu, with Linux 3.13.0-32-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.13.0-32-generic-recovery-d795f672-83d4-451e-bea4-0db5c70512b8' {
menuentry 'Memory test (memtest86+)' {
menuentry 'Memory test (memtest86+, serial console 115200)' {
menuentry 'Microsoft Windows XP Professional (en /dev/sda1)' --class windows --class os $menuentry_id_option 'osprober-chain-1D8E45A744914BEC' {
menuentry 'Ubuntu 14.04.1 LTS (14.04) (en /dev/sda6)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-simple-45d94105-0a37-49fb-8b14-e201b807d493' {
submenu 'Opciones avanzadas para Ubuntu 14.04.1 LTS (14.04) (en /dev/sda6)' $menuentry_id_option 'osprober-gnulinux-advanced-45d94105-0a37-49fb-8b14-e201b807d493' {
menuentry 'Ubuntu (en /dev/sda6)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-/boot/vmlinuz-3.13.0-39-generic--45d94105-0a37-49fb-8b14-e201b807d493' {
menuentry 'Ubuntu, con Linux 3.13.0-39-generic (en /dev/sda6)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-/boot/vmlinuz-3.13.0-39-generic--45d94105-0a37-49fb-8b14-e201b807d493' {
menuentry 'Ubuntu, with Linux 3.13.0-39-generic (recovery mode) (en /dev/sda6)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-/boot/vmlinuz-3.13.0-39-generic-root=UUID=45d94105-0a37-49fb-8b14-e201b807d493 ro recovery nomodeset-45d94105-0a37-49fb-8b14-e201b807d493' {
menuentry 'Ubuntu 14.04.1 LTS (14.04) (en /dev/sda7) (en /dev/sda6)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-/boot/vmlinuz-3.13.0-39-generic--45d94105-0a37-49fb-8b14-e201b807d493' {
menuentry 'Ubuntu (en /dev/sda7) (en /dev/sda6)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-/boot/vmlinuz-3.13.0-39-generic--45d94105-0a37-49fb-8b14-e201b807d493' {
menuentry 'Ubuntu, con Linux 3.13.0-39-generic (en /dev/sda7) (en /dev/sda6)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-/boot/vmlinuz-3.13.0-39-generic--45d94105-0a37-49fb-8b14-e201b807d493' {
menuentry 'Ubuntu, with Linux 3.13.0-39-generic (recovery mode) (en /dev/sda7) (en /dev/sda6)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-/boot/vmlinuz-3.13.0-39-generic-root=UUID=d795f672-83d4-451e-bea4-0db5c70512b8 ro recovery nomodeset-45d94105-0a37-49fb-8b14-e201b807d493' {
예전에 나는 단순히계산됨인스턴스 수 menuentry
(0부터 시작)이지만 지금은상응하는 관계가 다릅니다컴퓨터가 시작될 때 GRUB 메뉴에서 볼 수 있듯이. 현재 가능한 유일한 해결 방법은 다음을 입력하는 것입니다.
# grub-reboot "Microsoft Windows XP Professional (en /dev/sda1)"
큰 문제는 아니지만 복사하여 붙여넣기가 필요합니다. 숫자는 스크립트 작성이 더 쉽고 쉽습니다.
당신은 가지고 있습니까?다른 팁? 어쩌면 내 grep 명령을 업데이트해야 할까요?
감사해요.
답변1
이 제안된 솔루션조차도원래 질문에 적용됩니다. (Kali Linux에 해당) 일부 구현(예: Ubuntu v14)에서는
grub.cfg
줄 시작 부분에 이 항목이 없을 수 있습니다.TABs
여기는더 많은 플랫폼 독립적모든 GRUB 설치에서 작동할 수 있는 솔루션입니다.
해결책은 다음과 같습니다(별칭으로 사용함).
alias GRUB-ListMenuOptions='more /boot/grub/grub.cfg | grep -e "^menuentry" -e "submenu" --color'
menuentry
줄 시작 부분의 명명된 항목과 명명된 항목입니다 submenu
.
GRUB 2.02~beta2-9ubuntu1로 테스트되었습니다. 아이디어를 주신 @muru에게 감사드립니다.