Szukam sposobu na ponowne uruchomienie systemu Windows z Ubuntu na systemie podwójnego rozruchu 10.10 / Vista. Konkretny przypadek użycia polega na tym, że chciałbym móc ssh do mojej działającej instancji Ubuntu i wydać polecenie, które zainicjuje ponowne uruchomienie bezpośrednio w systemie Windows.
Znalazłem obiecujący post na blogu , ale sugerowany przez niego skrypt nie działa:
#!/bin/bash
WINDOWS_ENTRY=`grep menuentry /boot/grub/grub.cfg | grep --line-number Windows`
MENU_NUMBER=$(( `echo $WINDOWS_ENTRY | sed -e "s/:.*//"` - 1 ))
sudo grub-reboot $MENU_NUMBER
sudo reboot
man grub-reboot
niewiele pomaga, ale wydaje mi się, że prowadzi mnie we właściwym kierunku:
ustaw domyślny wpis rozruchu dla GRUB, tylko dla następnego rozruchu
WINDOWS_ENTRY=`grep menuentry /boot/grub/grub.cfg | grep --line-number Windows`
MENU_NUMBER=$(( `echo $WINDOWS_ENTRY | sed -e "s/:.*//"` - 1 ))
echo $MENU_NUMBER
Zwraca oczekiwaną wartość, ale przy ponownym uruchomieniu pierwsza pozycja menu jest nadal podświetlona. Wszelkie pomysły, dlaczego to nie działa lub sugestie dotyczące innych rozwiązań?
sudo reboot now
powinien zrestartować komputer do pierwszego elementu na liście grub.Odpowiedzi:
Najpierw musisz edytować grub.
Wyszukaj wiersz GRUB_DEFAULT = 0 i zmień go na GRUB_DEFAULT = zapisany
Zaktualizuj grub przy użyciu następującego polecenia.
Teraz utwórz plik skryptu,
Następnie dodaj te linie.
Spraw, by skrypt był wykonywalny.
A teraz możesz uruchomić ten skrypt z terminala, aby ponownie uruchomić system w systemie Windows.
Lub możesz wykonać następujące polecenie w swoim terminalu
Gdzie X jest pozycją menu systemu operacyjnego, w którym chcesz zrestartować z menu GRUB. (Zaczynając od 0 jako pierwszy wpis)
Na przykład:
sudo grub-reboot 5
źródło
grep -i 'windows' /boot/grub/grub.cfg|cut -d"'" -f2
sudo grub-reboot "$ WINDOWS_TITLE" sudo restartAby to zrobić, istnieje polecenie grub
grub-reboot
.Wydaje się, że działa tylko wtedy, gdy grub skonfigurowano tak, aby zaczynał od ostatniego zapisanego wpisu. Więc jeśli jeszcze tego nie zrobiłeś, zmodyfikuj
/etc/default/grub
i ustawnastępnie zaktualizuj plik konfiguracyjny grub:
Odtąd przy każdym rozruchu grub będzie uruchamiał ostatnio używany wpis.
Teraz, jeśli chcesz wcześniej ustawić system, który ma się uruchamiać następnym razem, użyj
gdzie
ENTRY
może być liczbą odnoszącą się do pozycji menu (numerowaną od 0) lub na przykład dokładnym tytułem pozycji menuTo polecenie można łatwo udostępnić jako program uruchamiający
ale nie wiem, jak można to zintegrować z menu systemowym.
Dostępny tytuł pozycji menu można uzyskać za pomocą
źródło
GRUB_DEFAULT=saved
, to zepsułoby twoją konfigurację. Co grub-restart nie jest napisaćnext_entry=ENTRY
do/boot/grub/grubenv
. To niesaved_entry=ENTRY
. Kolejne ponowne uruchomienie będzie w porządku, grub czytanext_entry
. Następujące buty mogą się nie powieść, jeśli żaden zapis nie zostanie zapisany jaksaved-entry=ENTRY
w grubenv.Myślę, że znalazłem jeszcze lepszy sposób dla ludzi, którzy chcą to samo, gdy lokalnie na swoim komputerze bez ssh.
Rozwiązanie dotyczące ponownego uruchomienia do określonego systemu wybranego za pomocą programu uruchamiającego Unity zostało właśnie opublikowane na webupd8. Zobacz http://www.webupd8.org/2011/05/custom-unity-launcher-to-reboot-in.html
Wiem, że nie jest to dokładnie to pytanie, ale w przypadku, gdy ktoś ma podobne pytanie, może to być pomocne.
źródło
O ile rozumiem, nie będzie to dokładnie to, czego chcesz, ale myślę, że całkiem blisko. Wystarczy postępować zgodnie z artykułem link webupdate .
źródło
Więc dla mnie najlepsze było stworzenie następującego skryptu z
grub-reboot
poleceniemźródło
Informacje dla wszystkich były dla mnie pomocne, ale ostatecznie nie udało mi się zmienić domyślnego gruba, a następnie zrestartować jednym kliknięciem. Po majsterkowaniu przez 2 godziny odkrywam ten program, który jest dokładnie tym samym, co wszyscy próbujemy zbudować, a za 5 minut ponownie uruchamiam się w systemie Windows. Dzięki wszystkim tutaj jest link do oszustów dla tych, którzy również się poddają. http://www.webupd8.org/2013/01/unity-reboot-launcher-to-quickly-reboot.html
źródło
Nie jestem pewien, czy to w 100% zadziała również w Ubuntu, ale kiedyś zrobiłem to na maszynie centos
w zasadzie będziesz musiał powiedzieć grubowi, który identyfikator # z grub.conf powinien uruchomić w następnej kolejności. Identyfikator # można znaleźć przez
więc w moim przypadku wynikałoby to np. z wypisania „4-1”, ponieważ czwarty wpis w moim grub.conf zawiera tekst „Windows”. (Zamień to na rzeczywistą nazwę wpisu (również częściowo), której chcesz użyć. Następnie możesz nakarmić to grub:
a przy następnym ponownym uruchomieniu powinien automatycznie uruchomić wpis, który mu powiedziałeś.
wszystko to można złożyć w skrypcie takim jak poniżej:
skrypt automatycznie określi, który wpis z pliku grub.conf odpowiada tekstowi „Windows”, poda go do gruba, aby powiedzieć, co należy załadować przy następnym uruchomieniu, i uruchomi ponownie komputer.
w przypadku GUI możesz np. dodać ikonę skrótu do pulpitu, aby to osiągnąć.
źródło
Po prostu edytuj
/boot/grub/grub.cfg
i zmień domyślny wpis, aby wskazywał na wpis, który chcesz uruchomić. Wartość może być liczbą porządkową wpisu (zaczynając od zera dla pierwszego) lub możesz umieścić pełny tytuł wpisu, który chcesz, w cudzysłowie.źródło
boot.cfg
, zostanie przywrócony przy każdym podręczniku lub automatycznieupdate-grub
./etc/default/grub
Zamiast tego użytkownik powinien zmodyfikować .