Shasteriskt, jedną z alternatyw dla rozwiązania „SHIFT” jest po prostu utworzenie skryptu, który wykona za Ciebie pewne operacje przenoszenia. Chodzi mi o to, aby utworzyć plik o nazwie, grub.bak
który jest dokładną kopią grub.cfg
pliku, z tą różnicą, że na przykład set timeout=0
zmieniono wiersz set timeout=10
. Utwórz skrypt powłoki, który robi przełącznik umożliwiający ponowne uruchomienie w zależności od potrzeb. Stworzyłem równoważny skrypt Pythona, który spełnia te wymagania, ale oczywiście trzeba go wywołać sudo
. Po prostu włączyłem go w /usr/bin
konfiguracji jako dowiązanie symboliczne do samego skryptu. Uwaga: korzystam z Fluxboksa na Archu, więc nie jestem pewien, czy są jakieś rozbieżności między tym skryptem a Ubuntu, ale myślę, że nie powinno być żadnych modyfikacji lub ich brak. Skrypt wygląda następująco:
#! /usr/bin/python
from shlex import split
from subprocess import call
from os import rename, chdir
chdir('/boot/grub/')
try:
with open('grub.bak','r') as alternate:
pass
if raw_input('Auto-boot is set. Un-set?> ') == 'y':
rename('grub.cfg','grub.back')
rename('grub.bak','grub.cfg')
if raw_input('Reboot system?> ') == 'y':
call(split('shutdown -r now'))
except:
if raw_input('Auto-boot is not set. Set?> ') == 'y':
rename('grub.cfg','grub.bak')
rename('grub.back','grub.cfg')
if raw_input('Reboot system?> ') == 'y':
call(split('shutdown -r now'))
Skrypt po prostu określa, czy masz menu do załadowania, czy nie (automatyczne uruchamianie, czy nie). Na podstawie swoich ustaleń pyta, czy chcesz go włączyć, czy wyłączyć, a następnie pyta, czy chcesz zrestartować komputer. I odwrotnie, jeśli chcesz, aby działał na odwrót (tj. W systemie Windows) i masz skonfigurowany system Windows do uzyskiwania dostępu do plików w systemie Linux, możesz uruchomić ten sam skrypt również w tym środowisku, jeśli chcesz. Mam nadzieję, że to pomaga.