उबंटू से विंडोज में रिबूट कैसे करें?


35

मैं उबंटू से 10.10 / विस्टा ड्यूल बूट सिस्टम पर विंडोज में रिबूट करने का रास्ता ढूंढ रहा हूं। विशिष्ट उपयोग मामला यह है कि मैं अपने चल रहे उबंटू उदाहरण में ssh करने में सक्षम होना चाहता हूं और एक कमांड जारी करता हूं जो सीधे विंडोज में रिबूट शुरू करेगा।

मुझे एक आशाजनक ब्लॉग पोस्ट मिला , लेकिन यह जो स्क्रिप्ट बताता है वह काम नहीं कर रहा है:

#!/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 ज्यादा मदद नहीं है, लेकिन यह मुझे सही दिशा में ले जा रहा है:

केवल अगले बूट के लिए, GRUB के लिए डिफ़ॉल्ट बूट प्रविष्टि सेट करें

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

यह अपेक्षित मान लौटाता है, लेकिन रिबूट पर पहले मेनू प्रविष्टि को अभी भी हाइलाइट किया गया है। किसी भी विचार क्यों यह अन्य समाधान के लिए काम या सुझाव नहीं है?


यदि आप grub मेनू में विंडोज़ ग्रब बूट लाइन को सूची के शीर्ष पर कॉपी करते हैं तो प्रत्येक बूट विंडो पर डिफ़ॉल्ट लोड होगा .. यदि आप ubuntu में हैं और उसमें ssh। sudo reboot nowग्रब सूची में पहले आइटम में मशीन को रिबूट करना चाहिए।
karthick87

ज़रूर, लेकिन मैं शायद ही कभी उस विंडोज विभाजन में बूट करता हूं। मैं इसे डिफ़ॉल्ट प्रविष्टि नहीं बनाना चाहता।
andrewsomething

जवाबों:


43
  • आपको पहले अपना ग्रब एडिट करना होगा।

    sudo gedit /etc/default/grub
    
  • रेखा GRUB_DEFAULT = 0 के लिए खोजें और इसे GRUB_DEFAULT = सहेजे जाने के लिए संशोधित करें वैकल्पिक शब्द

  • निम्न आदेश का उपयोग करके अपने ग्रब को अपडेट करें।

    sudo update-grub  
    
  • अब एक स्क्रिप्ट फ़ाइल बनाएँ,

    sudo gedit switch-to-windows.sh
    
  • फिर इन लाइनों को जोड़ें।

    #!/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
    
  • स्क्रिप्ट को निष्पादन योग्य बनाएं।

    sudo chmod +x switch-to-windows.sh
    
  • और अब आप इस स्क्रिप्ट को विंडोज़ में रिबूट करने के लिए टर्मिनल से चला सकते हैं।

    ./switch-to-windows.sh
    
  • या आप अपने टर्मिनल में निम्न कमांड निष्पादित कर सकते हैं

    sudo grub-reboot X  
    
  • जहाँ X OS का मेन्टेनरी पोजीशन है जिसे आप GRUB मेनू से रीस्टार्ट करना चाहते हैं। (पहली प्रविष्टि के रूप में 0 से शुरू)

उदाहरण के लिए:

  • यदि यह आपका ग्रब मेनू है और यदि आप विंडो में बूट करना चाहते हैं, तो आपको X का मान 5 देना चाहिए।
  • sudo grub-reboot 5

    वैकल्पिक शब्द

  • आप उपरोक्त कमांड के लिए एक लांचर भी बना सकते हैं, ताकि लॉन्चर पर डबल क्लिक करने से विंडोज़ में रिबूट हो जाए।

मैं इसे एक बार काम करने के लिए प्राप्त कर सकता हूं। उसके बाद आपको पासवर्ड डालना होगा।

7
उस तरह दिखने के लिए आपको कैसे ग्रब मिला?
मैंडी

ऊपर दिए गए सवाल का पालन करें? आप इतने चंचल दिखने वाले ग्रब कैसे प्राप्त कर सकते हैं?
डिएगो

5
समाधान वास्तव में बहुत अच्छा है, लेकिन जैसा कि मेरे पास प्रविष्टियों से पहले टैब के साथ 14 मेनू प्रविष्टियां हैं, मेनू प्रविष्टि संख्या के शीर्षक के साथ बेहतर काम किया। तो आप अपने कोड को #! / Bin / bash WINDOWS_TITLE = grep -i 'windows' /boot/grub/grub.cfg|cut -d"'" -f2sudo grub-reboot "$ WINDOWS_TITLE" sudo रिबूट
फिलिप गाचौड

फिलिप गाचौड, कृपया अपना उत्तर दें! यह केवल एक ही है जो काम करता है!
माननीय

12

ऐसा करने के लिए केवल एक ग्रब कमांड है, यह है grub-reboot

यह केवल तभी काम करता है जब आपने अंतिम सहेजे गए प्रविष्टि के साथ शुरू करने के लिए कॉन्फ़िगर किया है। इसलिए यदि आपने पहले से ऐसा नहीं किया है, तो संशोधित करें /etc/default/grubऔर सेट करें

GRUB_DEFAULT=saved

फिर ग्रब कॉन्फ़िगरेशन फ़ाइल अपडेट करें:

sudo update-grub

अब से, प्रत्येक बूट ग्रब पर अंतिम उपयोग प्रविष्टि शुरू होगी।

अब, यदि आप पहले से सेट करना चाहते हैं, तो अगली बार बूट करने के लिए क्या सिस्टम होना चाहिए

sudo grub-reboot ENTRY

उदाहरण के लिए, ENTRYमेनू प्रविष्टि (नंबर 0 से शुरू होने वाली संख्या) या सटीक मेनू प्रविष्टि शीर्षक के सापेक्ष संख्या कहां हो सकती है

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

इस कमांड को आसानी से लॉन्चर के रूप में उपलब्ध कराया जा सकता है

#!/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

लेकिन मुझे नहीं पता कि इसे सिस्टम मेनू में कैसे एकीकृत किया जा सकता है।

आप के साथ उपलब्ध मेनू प्रविष्टि शीर्षक प्राप्त कर सकते हैं

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

सेट करने का कोई कारण नहीं है GRUB_DEFAULT=saved, यह आपके कॉन्फ़िगरेशन को गड़बड़ कर देगा। ग्रब-रिबूट क्या लिखना next_entry=ENTRYहै /boot/grub/grubenv। ऐसा नहीं है saved_entry=ENTRY। अगला रिबूट ठीक होगा, हालांकि ग्रब पढ़ता है next_entry। यदि कोई प्रविष्टि saved-entry=ENTRYgrubenv में सहेजी नहीं गई है, तो निम्नलिखित बूट विफल हो सकते हैं ।
mook765

4

मुझे लगता है कि मैंने उन लोगों के लिए एक समान तरीका खोज लिया है जो अपने पीसी पर स्थानीय स्तर पर बिना ssh के समान चाहते हैं।

एक एकता लांचर के माध्यम से चुना एक विशिष्ट प्रणाली में रिबूट करने का एक समाधान सिर्फ webupd8 पर पोस्ट किया गया था। Http://www.webupd8.org/2011/05/custom-unity-launcher-to-reboot-in.html देखें

मुझे पता है कि यह वास्तव में सवाल नहीं है, लेकिन अगर किसी के पास इसी तरह का सवाल है तो यह मददगार हो सकता है।


3

जहां तक ​​मुझे समझ आया कि यह वही नहीं होगा जो आप चाहते हैं, लेकिन मुझे लगता है कि यह काफी करीब है। बस लिंक वेबअपडेट लेख का पालन करें


3
जब भी यह सैद्धांतिक रूप से प्रश्न का उत्तर दे सकता है, तो उत्तर के आवश्यक भागों को शामिल करना और संदर्भ के लिए लिंक प्रदान करना बेहतर होगा
मार्को सीप्पी

2

इसलिए मेरे लिए सबसे अच्छा यह था कि grub-rebootकमांड के साथ निम्नलिखित स्क्रिप्ट बनाई जाए

#!/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

हर किसी की जानकारी मेरे लिए मददगार थी, लेकिन अंत में मैं अभी भी ग्रब डिफॉल्ट को बदलने और फिर एक क्लिक में पुनः आरंभ करने को पूरा नहीं कर सका। 2 घंटे तक छेड़छाड़ करने के बाद, मुझे इस कार्यक्रम का पता चलता है, जो बिल्कुल वही है जिसे हम बनाने की कोशिश कर रहे हैं और 5 मिनट में मैं विंडोज़ में रीबूट कर रहा हूं। यहाँ उन सभी के लिए धन्यवाद है, जो इसे भी छोड़ देते हैं। http://www.webupd8.org/2013/01/unity-reboot-launcher-to-quickly-reboot.html


-1

मुझे यकीन नहीं है कि यह 100% ubuntu में भी काम करेगा, लेकिन मैंने एक बार सेंटोस मशीन पर यह काम किया

मूल रूप से आपको ग्रब को बताना होगा कि कौन सी आईडी # grub.conf से आगे चलनी चाहिए। आईडी # से पता लगाया जा सकता है

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

तो मेरे मामले में यह उदाहरण के लिए "4-1" आउटपुट होगा क्योंकि मेरे grub.conf में चौथी प्रविष्टि में "विंडोज" पाठ शामिल है। (इसे वास्तविक प्रविष्टि नाम से बदलें (आंशिक रूप से) जिसे आप उपयोग करना चाहते हैं। फिर आप इसे इस तरह से फ़ीड कर सकते हैं:

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

और अगले रिबूट पर इसे आपके द्वारा बताई गई प्रविष्टि को स्वतः बूट करना चाहिए।

यह सब एक स्क्रिप्ट में निम्नलिखित की तरह एक साथ रखा जा सकता है:

#!/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

स्क्रिप्ट स्वचालित रूप से यह निर्धारित करेगी कि आपके grub.conf से कौन सी प्रविष्टि पाठ "विंडोज" से मेल खाती है, यह बताने के लिए कि क्या अगले बूट पर लोड होना चाहिए और आपके पीसी को रिबूट करेगा, यह बताने के लिए फ़ीड करेगा।

एक गुई के लिए आप इसे प्राप्त करने के लिए अपने डेस्कटॉप पर एक शॉर्टकट आइकन जोड़ सकते हैं।


1
ग्रब-लीगेसी के लिए कॉन्फिग फाइल मेनू है। लिस्ट, न कि ग्रब.कॉनफ। Grub2 के लिए, यह grub.cfg है, लेकिन आपका दूसरा कमांड केवल grub-legacy के लिए है।
Psusi

-4

/boot/grub/grub.cfgजिस प्रविष्टि को आप बूट करना चाहते हैं उसे इंगित करने के लिए बस डिफ़ॉल्ट प्रविष्टि को संपादित करें और बदलें। मान या तो प्रवेश की क्रमिक संख्या हो सकती है (पहले एक के लिए शून्य से शुरू) या आप उद्धरण में इच्छित प्रविष्टि का पूरा शीर्षक रख सकते हैं।


2
संशोधित करने की सलाह न दें boot.cfg, इसे प्रत्येक मैनुअल या स्वचालित पर बहाल किया जाएगा update-grub। उपयोगकर्ता को /etc/default/grubइसके बजाय संशोधित करना चाहिए ।
enzotib

1
@enzotib, चूंकि परिवर्तन केवल अगले बूट से संबंधित है, इसलिए ऐसा करने का कोई कारण नहीं है।
Psusi

2
आप भूल जाते हैं कि उस फ़ाइल पर एक गलत संपादन एक unbootable system को जन्म दे सकता है
enzotib

1
@enzotib, वास्तव में नहीं; grub2 के बारे में सुंदर चीजों में से एक यह है कि आप प्रॉम्प्ट पर मैन्युअल रूप से पुनर्प्राप्त कर सकते हैं। इसके अलावा फ़ाइल के अन्य हिस्सों को खराब करने का खतरा एक विश्वसनीय तर्क है, और यदि आपको डिफ़ॉल्ट लाइन गलत मिलती है, तो सबसे खराब यह है कि यह पहली प्रविष्टि के लिए चूक है।
psusi
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.