Ubuntu'dan Windows'a nasıl yeniden başlayabilirim?


35

10.10 / Vista çift önyükleme sisteminde Ubuntu'dan Windows'u yeniden başlatmanın bir yolunu arıyorum. Özel kullanım durumu, çalışan Ubuntu örneğime ssh yapabilmeyi ve doğrudan Windows’a yeniden başlatacak bir komut vermeyi istememdir.

Gelecek vaad eden bir blog yazısı buldum , ancak önerdiği komut dosyası çalışmıyor:

#!/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 fazla yardım etmiyor, ama beni doğru yöne götürüyor gibi görünüyor:

GRUB için varsayılan önyükleme girişini ayarla, yalnızca sonraki önyükleme için

WINDOWS_ENTRY=`grep menuentry /boot/grub/grub.cfg  | grep --line-number Windows`
MENU_NUMBER=$(( `echo $WINDOWS_ENTRY | sed -e "s/:.*//"` - 1 ))
echo $MENU_NUMBER

Bu beklenen değeri verir, ancak yeniden başlatırken ilk menü girişi hala vurgulanır. Bunun neden işe yaramadığını veya başka çözüm önerileri için herhangi bir fikriniz var mı?


Windows grub önyükleme çizgisini grub menüsündeki listenin en üstüne kopyalarsanız, her önyükleme penceresinde varsayılan yükleme yapılır. sudo reboot nowMakineyi grub listesindeki ilk maddeye yeniden başlatmalısınız.
karthick87

Tabii, ama nadiren bu Windows bölümüne giriyorum. Varsayılan giriş yapmak istemiyorum.
andrewsbir şey

Yanıtlar:


43
  • Önce grubunu düzenlemelisin.

    sudo gedit /etc/default/grub
    
  • GRUB_DEFAULT = 0 satırını arayın ve GRUB_DEFAULT = kayıtlı olarak değiştirin alt metin

  • Grubunuzu aşağıdaki komutu kullanarak güncelleyin.

    sudo update-grub  
    
  • Şimdi bir komut dosyası oluşturun,

    sudo gedit switch-to-windows.sh
    
  • Sonra bu satırları ekleyin.

    #!/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
    
  • Komut dosyasını çalıştırılabilir hale getirin.

    sudo chmod +x switch-to-windows.sh
    
  • Ve şimdi bu betiği terminalden pencerelerden yeniden başlatmak için çalıştırabilirsiniz.

    ./switch-to-windows.sh
    
  • Veya terminalinizde aşağıdaki komutu çalıştırabilirsiniz

    sudo grub-reboot X  
    
  • X'in işletim sisteminin menü konumu olan GRUB menüsünden yeniden başlatmak istediğiniz konumdur (ilk giriş olarak 0 ile başlayan)

Örneğin:

  • Eğer grub menünüz ise ve pencerelere önyüklemek istiyorsanız X değerini 5 olarak vermelisiniz.
  • sudo grub-reboot 5

    alt metin

  • Ayrıca yukarıdaki komut için bir başlatıcı da oluşturabilirsiniz, böylece başlatıcıya çift tıklamak pencerelere yeniden başlayacaktır.

Bir kere çalışmasını sağlayabilirim. Bundan sonra şifreleri girmek zorundasınız.

7
Bu şekilde görünmek için nasıl kurtuldun?
Mandy

Yukarıdaki soruyu takip ettin mi? grubun bu kadar perit görünmesini nasıl sağlayabilirsiniz?
Diego

5
Çözüm gerçekten harika, ancak girişlerden önce sekmeli 14 menü girişim olduğu için, menü giriş numarasının başlık bölümü daha iyi çalıştı. Böylece kodunuzu #! / Bin / bash ile değiştirebilirsiniz WINDOWS_TITLE = grep -i 'windows' /boot/grub/grub.cfg|cut -d"'" -f2sudo grub-reboot "$ WINDOWS_TITLE" sudo reboot
Philippe Gachoud

Philippe Gachoud, lütfen cevap ver! çalışan tek kişi!
honi

12

Sadece bunu yapmak için bir grub komutu var, öyle grub-reboot.

Yalnızca son kaydedilen girişle başlayacak şekilde yapılandırılmış grubunuz olduğunda çalışıyor gibi görünüyor. Öyleyse yapmadıysanız, değiştirin /etc/default/grubve

GRUB_DEFAULT=saved

daha sonra grub konfigürasyon dosyasını güncelleyin:

sudo update-grub

Şu andan itibaren, her açılışta son kullanılan giriş başlayacaktır.

Şimdi, önceden ayarlamak istiyorsanız, bir dahaki sefere açılacak sistem ne olmalıdır?

sudo grub-reboot ENTRY

burada ENTRY(0 dan başlayarak numaralı), bir menü girişinin bir sayı göre veya bir olabilir tam örneğin menü giriş başlığı,

sudo grub-reboot "Microsoft Windows XP Professional (on /dev/sda1)"

Bu komut kolayca başlatıcı olarak kullanılabilir

#!/usr/bin/env xdg-open
#
# save as ~/Desktop/reboot-into-windows.desktop
#

[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Exec=sh -c 'gksu "grub-reboot 2" && gnome-session-save --shutdown-dialog'
Name=Reboot into Windows
Icon=gnome-panel-launcher

ama bunun sistem menüsüne nasıl entegre edilebileceğini bilmiyorum.

Kullanılabilir menü girişi başlığını

sed -n '/menuentry/s/.*\(["'\''].*["'\'']\).*/\1/p' /boot/grub/grub.cfg 

Ayarlamak için hiçbir neden yok GRUB_DEFAULT=saved, yapılandırmanızı bozar. Ne grub-reboot yapar yazma etmektir next_entry=ENTRYiçin /boot/grub/grubenv. Bu değil saved_entry=ENTRY. Bir sonraki yeniden başlatma olsa iyi olacak, grub okur next_entry. saved-entry=ENTRYGrubenv'de olduğu gibi hiçbir giriş kaydedilmemişse aşağıdaki botlar başarısız olabilir .
mook765

4

Sanırım yerel olarak ssh'sız bilgisayarlarında aynı şeyi yapmak isteyen insanlar için daha güzel bir yol buldum.

Birlik başlatıcısı ile seçilen belirli bir sistemi yeniden başlatmak için bir çözüm sadece webupd8 yayınlanmıştır. Bkz http://www.webupd8.org/2011/05/custom-unity-launcher-to-reboot-in.html

Bunun tam olarak sorunun ne anlama geldiğini biliyorum ama birinin daha sonra benzer bir sorusu olması durumunda bu yardımcı olabilir.



2

Yani benim için en iyi aşağıdaki komut dosyası oluşturmak için oldu grub-rebootkomutu

#!/bin/bash 
WINDOWS_TITLE=$(grep -i 'windows' /boot/grub/grub.cfg|grep "^[^#;]"|cut -d"'" -f2) 
sudo grub-reboot "$WINDOWS_TITLE" 
echo "Your computer will reboot on ${WINDOWS_TITLE} in 3 seconds, press Ctrl+C if you want to abord it"
sleep 3 && sudo reboot

0

Herkesin bilgisi benim için yararlı oldu ama sonunda grub grubunu değiştirmeyi ve tek bir tıklamayla yeniden başlatmayı hala başaramadım. 2 saat uzağa baktıktan sonra, inşa etmeye çalıştığımız tam olarak aynı olan bu programı keşfettim ve 5 dakika içinde pencerelere yeniden başlıyorum. Herkese teşekkürler, aynı zamanda pes edenler için dolandırıcı bağlantı. http://www.webupd8.org/2013/01/unity-reboot-launcher-to-quickly-reboot.html


-1

Bunun% 100'ü Ubuntu'da da çalışacağından emin değilim, ama bir keresinde bu işi bir centos makinesinde yaptım.

Temelde grub.conf dosyasındaki hangi kimliği # kullanmanız gerektiğini söylemeniz gerekir. Kimliği # tarafından bulunabilir

echo `sudo grep ^title /boot/grub/grub.conf | grep -n Windows | cut -f 1 -d:`-1

öyleyse benim durumumda bu örn. "4-1" çıktısı, grub.conf'umdaki dördüncü girdi "Windows" metnini içerdiği içindi. (Bunu kullanmak istediğiniz gerçek giriş adıyla (kısmen de olsa) değiştirin. Daha sonra bunları grub gibi besleyebilirsiniz:

echo "savedefault --stage2=/boot/grub/stage2 --default=4-1 --once" | sudo /sbin/grub

ve bir sonraki açılışta, otomatik olarak söylediğiniz girişi başlatması gerekir.

bunların hepsi aşağıdaki gibi bir komut dosyasında bir araya getirilebilir:

#!/bin/sh
let NEWBOOT=`sudo grep ^title /boot/grub/grub.conf | grep -n Windows | cut -f 1 -d:`-1
echo Booting $NEWBOOT - `sudo grep ^title.\*Windows /boot/grub/grub.conf`
echo "savedefault --stage2=/boot/grub/stage2 --default=$NEWBOOT --once" | sudo /sbin/grub
sudo reboot

script otomatik olarak grub.conf dosyanızın "Windows" metnine karşılık geldiğini belirleyecektir, bir sonraki önyüklemede ne yükleneceğini söylemek için gruba besleyecektir ve bilgisayarınızı yeniden başlatacaktır.

Bir gui için, örneğin bunu elde etmek için masaüstünüze bir kısayol simgesi ekleyebilirsiniz.


1
Grub-legacy için yapılandırma dosyası, grub.conf değil menu.lst'dir. Grub2 için, grub.cfg'dir, ancak ikinci komutunuz yalnızca grub-mirası içindir.
psusi

-4

Sadece /boot/grub/grub.cfgönyüklemek istediğiniz girişi işaret etmek için varsayılan girişi düzenleyin ve değiştirin. Değer, girişin sıra numarası olabilir (ilki için sıfırdan başlayarak) veya istediğiniz girişin tam başlığını tırnak içine alabilirsiniz.


2
Değiştirme önerisinde bulunmayın boot.cfg, her bir el kitabında veya otomatik olarak geri yüklenir update-grub. Kullanıcı /etc/default/grubbunun yerine değiştirmeli .
enzotib 26:11

1
@enzotib, değişiklik yalnızca bir sonraki önyükleme ile ilgili olması gerektiği için, bunu yapmak için hiçbir neden yoktur.
psusi

2
Bu dosyada yapılan yanlış bir düzenlemenin yeniden
başlatılamaz

1
@enzotib, gerçekten değil; grub2 hakkındaki güzel şeylerden biri, her zaman komut isteminde el ile kurtarmanız olabilir. Ayrıca, dosyanın diğer bölümlerini bozma tehlikesi de inanılmaz bir argümandır ve varsayılan çizgiyi yanlış anlarsanız, en kötüsü ilk girişte varsayılan ayardır.
psusi
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.