Portál AbcLinuxu, 30. dubna 2025 09:05
Pokud potřebujete z jednoho operačního systému přebootovat do jiného a nechcete čekat na nabídku grubu, pak čtěte dále.
Základem je utilitka /sbin/grub-set-default
. Popis této utilitky najdete v dokumentaci grubu 19 Invoking grub-set-default nebo použitím příkazu info grub-set-default
. Potřebujeme dvě věci: trochu poeditovat /boot/grub/grub.conf
, aby se choval dynamicky a vytvořit soubor, z kterého grub bude číst při bootu defaultní hodnotu.
Přihlašte se jako root.
suVytvoříme v konfiguračním adresáři grubu soubor
default
. To provedeme spuštěním příkazu
grub-set-defaultPro kontrolu práv:
ls -l /boot/grub/default -rw-r--r-- 1 root root 191 kvě 6 22:29 defaultVýpis souboru:
cat /boot/grub/default 0 # # # # # # # # # # # WARNING: If you want to edit this file directly, do not remove any line # from this file, including this warning. Using `grub-set-default\' is # strongly recommended.Nyní upravíme
/boot/grub/grub.conf
:
Místo obvyklého default 0
napíšeme
default saved
. A ke každé položce (angl. entry) dopíšeme savedefault
. Problémy mám s nastavením explicitní hodnoty položky jako argument savedafault
u. Pokud by na to někdo přišel, ať to dopíše do diskuze, zatím jsem to nevyužil. Pokaždé mi grub zahlásil chybu v parsování souboru.
cat /boot/grub/grub.conf default saved timeout 20 splashimage=(hd0,3)/boot/grub/splash.xpm.gz title=Gentoo 2.6.11-r13 root(hd0,3) kernel (hd0,3)/boot/kernel-2.6.11-gentoo-r13 root=/dev/hda4 gentoo=nodevfs savedefault title=Gentoo 2.6.11-r11-r2 root(hd0,3) kernel (hd0,3)/boot/kernel-2.6.11-gentoo-r11-r2 root=/dev/hda4 gentoo=nodevfs savedefault title=Gentoo 2.6.11-r11 root(hd0,3) kernel (hd0,3)/boot/kernel-2.6.11-gentoo-r11 root=/dev/hda4 gentoo=nodevfs savedefault title wokna rootnoverify (hd0,0) makeactive chainloader +1 savedefault title=memtest root(hd0,3) kernel (hd0,3)/memtest86.bin savedefault
Jméno kernelu, který chcete spustit (například /boot/kernel-2.6.11-gentoo-r13
), najdete většinou v adresáři /boot/
. Ale to nemusíte vůbec měnit, pokud netušíte o čem je řeč, řádek začínajících na root
a kernel
se nedotýkejte.
Dalším nevyřešeným problémem je určení pořadí savedefault
ů. Nevím přesně, zda je nutné takto označit všechny položky nebo zda je možné savedefault
y u některé položky vynechat. Když jsem u některé položky vynechal savedefault
, pak mi reboot například do woken nefungoval. Otázkou je, jak se označují pak jednotlivé defaultní položky. Dalším problémem je u mě fallback
, prostě podle dokumentace jsem to nerozchodil. A ani mne to zvlášť netrápí.
Pak je jěště nutné zaregistrovat potřebné programy pomocí visudo
su visudoA doplňte si následující řádky:
Cmnd_Alias REBOOT = /sbin/reboot Cmnd_Alias POWEROFF = /sbin/poweroff Cmnd_Alias GRUBBOOT = /sbin/grub-set-default root ALL=(ALL) ALL elviin ALL = NOPASSWD: REBOOT elviin ALL = NOPASSWD: POWEROFF elviin ALL = NOPASSWD: GRUBBOOTMou přezdívku
elviin
nahraďte svou. Zjistíte ji příkazem whoami
. Zkontrolujte si správnost zápisu visudo -c
a nyní použijte jen nerootovskou konzoli.
Pak můžeme rebootovat do Woken bez rootovských práv takto:
sudo grub-set-default 3 && sudo /sbin/rebootTo znamená, že jsme zvolili čtvrtou položku, protože grub indexuje položky od nuly. Nyní po restartu z Linuxu nám grub nabídne wokna, protože jsme mu to výslovně přikázali. Defaultně po restartu z Linuxu nám nabídne opět Linux, po restartu z Woken, grub nabídne Wokna. V případě, že máme driver ve Windows pro zápis do souboru
default
, pak můžeme restartovat z Windows do Linuxu a obecně z jakéhokoliv systému, který může zapisovat do tohoto souboru.
Položku měníme sudo grub-set-default N
, kde N označuje N-tou položku. První položka začíná nulou. Dva znaky && je logický součin návratové hodnoty. V případě, kdy se nepovede zapsat do souboru default
, tak se ani nevykoná restart počítače.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.