저는 Grub 2를 사용하여 부팅 후 무엇을 해야 할지 운영 체제에 알려줄 수 있는지 스스로에게 물었습니다.
배경:
Debian Wheezy가 설치된 HTPC가 있습니다. 때로는 시스템을 일반 데스크탑으로 사용하고 싶지만 때로는시안 BMC여기요.
듀얼부팅을 해봤습니다개방형 전자 제품OpenElec에서는 RAID-1을 설치할 수 없기 때문에 별로 편리하지 않습니다.
다음 시도는 XBMC와 함께 두 번째 최소 데비안 설치를 사용하는 것이었습니다. 이 솔루션을 사용하면 여전히 Grub에서 일반 데스크톱 및 HTPC를 사용할 수 있습니다.
하지만 지금은 이미 데비안을 설치했기 때문에 이것이 시간과 디스크 공간 낭비가 될 수도 있다고 생각합니다. 일반 데비안 설치에 관해 알려주는 데 사용할 수 있는 일종의 부팅 매개변수가 있다면 더 쉬울 것입니다.
- "데스크톱으로 부팅" 또는
- "XBMC로 부팅"
그런 다음 이 시작 매개변수를 처리하려면 Grub의 두 번째 항목이 필요합니다.
이것이 가능한가?
답변1
Linux 커널에 대한 모든 명령줄 인수는 /proc/cmdline
. 예를 들어 멋진 grub 메뉴를 사용하여 빌드한 다음 시작 스크립트에서 이를 사용하여 /etc/rc.local
무엇을 할지 결정할 수 있습니다.
예를 들어 다음을 추가합니다 /etc/grub.d/09-xcmd
.
#! /usr/bin/tail -n+2
menuentry 'XMBC' {
set xcmd='xcmd=xmbc'
echo 'Now select a kernel'
sleep 1
}
그런 다음 다음에 추가하십시오 /etc/default/grub
.
GRUB_CMDLINE_LINUX_DEFAULT="$GRUB_CMDLINE_LINUX_DEFAULT \${xcmd}"
달리기 update-grub
.
다음을 수행할 수 있습니다 /etc/rc.local
.
case $(cat /proc/cmdline) in
(*xcmd=*) exec sudo -Hu marcel startx;;
esac
당신의 ~/.xinitrc
:
cmdline=$(cat /proc/cmdline)
case $cmdline in
(*xcmd=*)
xcmd=${cmdline##*xcmd=}
xcmd=${xcmd%% *}
"$xcmd" &
esac