GRUB v2: grub-reboot와 함께 사용할 숫자 항목을 관리하는 실용적인 방법

GRUB v2: grub-reboot와 함께 사용할 숫자 항목을 관리하는 실용적인 방법

나는 사용한다GRUB v2나의 스타트업 매니저로서.
내가 원할 때마다다른 것으로 재부팅OS(또는 메뉴 항목(예: MemTest))에서는 다음 명령을 사용합니다.

# grub-reboot n

n숫자는 어디에 있습니까 (0부터 시작)필수 메뉴 항목.
예를 들어:

GRUB2 메뉴 예

따라서 위의 예에서 재부팅하려면 Squeeze Linux다음을 입력합니다.

# grub-reboot 4

그러나 여러 대의 컴퓨터 및/또는 여러 운영 체제를 사용하는 경우기억하기 어렵다해당 항목의 번호를 확인하려면 메뉴를 재부팅해야 했습니다.

알아요항목이 저장됩니다./boot/grub/grub.cfg그러나 "submenu"라는 줄 에서는 menuentryGRUB가 더 복잡해지고(확실히 고급화되면) 항목 수를 계산하기 위해 파일을 읽기가 조금 더 어려워집니다.

실용적인 방법 없을까요모든 항목의 개수를 알아보세요GRUB v2 부팅 메뉴?

답변1

나는 이것을 사용한다명령줄/boot/grub/grub.cfg이는 단지번호가 매겨진 항목 표시, 한 줄에 하나씩:

sed ':again;$!N;$!b again; :b; s/{[^{}]*}//g; t b' /boot/grub/grub.cfg | cut -c -60 | grep -e "^menuentry" -e "submenu" | nl -v 0 | grep -e "menuentry" -e "submenu" --color

결과(이전 그래픽 예와 다릅니다. 죄송합니다.):

GRUB-ListMenu 결과 예

내가 선호하는 방법은 다음과 같이 추가하는 것입니다.별칭 또는 기능. 예를 들어 다음의 함수로 사용됩니다 ~/bashrc.

# List entries numbers for grub-reboot:
function GRUB-ListMenu() {
        sed ':again;$!N;$!b again; :b; s/{[^{}]*}//g; t b' /boot/grub/grub.cfg | cut -c -60 | grep -e "^menuentry" -e "submenu" | nl -v 0 | grep -e "menuentry" -e "submenu" --color
}

설명하다:

  • sed명령중괄호 사이의 모든 줄 삭제( {})에 해당하므로드롭다운 하위 메뉴.
  • cut명령은 결과를 얻기 위해 처음 60자만 유지합니다.더 읽기 쉬움사용자용.
  • grep명령은 다음에 해당하는 행만 유지합니다.실제 메뉴 항목: menuentry그리고 submenu.
  • nl명령계산각 줄(물론 0부터 시작).
  • grep꼭 필요한 것은 아닌 추가 명령이 있습니다 .색상결과;-) .

최적화에 대한 제안을 환영합니다.
Ubuntu Desktop, Server, v12, v14, Kali 및 BackTrack에서 실행되는 GRUB v2.02~beta2-9ubuntu1에서 테스트되었습니다. 다른 Linux에서의 동작에 대한 피드백이 권장됩니다(이 기사에 추가하겠습니다).

관련 정보