আমি গ্রাবকে কীভাবে বলতে পারি যে আমি পুনরায় বুট করার আগে উইন্ডোজ reb এ পুনরায় বুট করতে চাই?


33

আমার একটি দ্বৈত বুট লিনাক্স / উইন্ডোজ সিস্টেম সেটআপ আছে এবং প্রায়শই একটি থেকে অন্যটিতে স্যুইচ করা হয়। আমি ভাবছিলাম যে আমি GRUB প্রম্পটে না থামিয়ে সরাসরি উইন্ডোতে রিবুট করতে মেনুগুলির মধ্যে একটিতে মেনু আইটেম যুক্ত করতে পারি কিনা।

আমি এই ফোরামটিতে এই প্রশ্নটি দেখেছি , ঠিক আমি যা চাই তা কিন্তু এটি লিলো নিয়ে কাজ করে যা আমার ক্ষেত্রে নয়।

আমি এমন একটি সমাধানের কথা ভেবেছিলাম যা GRUB মেনুতে ডিফল্ট এন্ট্রিটি পরিবর্তন করবে এবং তারপরে পুনরায় বুট করবে, তবে কিছু ত্রুটি রয়েছে এবং আমি ভাবছিলাম যে কোনও ক্লিনার বিকল্প আছে কিনা।

(এছাড়াও, আমি উইন্ডোজ থেকে সরাসরি লিনাক্সে বুট করার একটি সমাধানে আগ্রহী, তবে এটি আরও কঠিন হতে পারে এবং এটি এখানে অন্তর্ভুক্ত নয় Any যাইহোক, যতক্ষণ না আমার কাছে এটি একরকম থাকে, অন্যভাবে সেট আপ করা যেতে পারে ডিফল্ট.

আপডেট এটা কেউ জিজ্ঞাসা মনে হয় একইরকম প্রশ্ন , এবং যদি সেই প্রস্তাব উত্তর হয়, আমি ভাল হিসাবে সম্পাদন করা হতে পারে /boot/grub/grubenvযেমন grub-rebootএবং grub-set-defaultএবং grub-editenvনা। )

কোনও পরামর্শের জন্য আগাম ধন্যবাদ।

আপডেট :

এটি আমার গ্রাব সংস্করণ: (GRUB) 1.99-12ubuntu5-1linuxmint1

আমি দৌড়ানোর চেষ্টা করেছি grubonce, আদেশটি পাওয়া যায় না। সংগ্রহস্থলগুলিতে এটি অনুসন্ধান করা আমাকে কিছুই দেয় না। আমি লিনাক্স মিন্টে আছি, তাই হতে পারে ...

দেখতে দেখতে man grub-reboot, এটা মত আমি কি চাই না বলে মনে হয়, যেমন grubonceকরে। এটি সর্বত্র পাওয়া যায় (কমপক্ষে এটি আমার পক্ষে, আমি মনে করি এটি গ্রাব প্যাকেজের অংশ)। আমি দুটি সম্পর্কিত কমান্ড দেখেছি: grub-editenvএবং grub-set-default

আমি জানতে পেরেছিলাম যে দৌড়ানোর পরে sudo grub-set-default 4, দৌড়ানোর সময় grub-editenv listআপনি এর মতো কিছু পান:

saved_entry=4

এবং দৌড়ানোর সময় grub-reboot 4, আপনি এমন কিছু পান:

prev_saved_entry=0
saved_entry=4

যার অর্থ উভয়ই একই কাজ করে (একটি অস্থায়ী হয় না)।

আশ্চর্যজনকভাবে, যখন আমি চেষ্টা করেছি:

sudo grub-reboot 4
sudo reboot now

এটি কাজ করে না, যেন আমি কিছু না করি, এটি আমাকে যথারীতি মেনুটি দেখিয়েছিল এবং প্রথম এন্ট্রিটি নির্বাচন করে বলেছিল যে এটি এই এন্ট্রিটি 10 ​​এর দশকে বুট করবে।

আমি আবার চেষ্টা করেছিলাম, আমি ভেবেছিলাম আমি ভুল এন্ট্রি লিখেছি (এটি শূন্য-ভিত্তিক, ঠিক?) এই মুহূর্তে, এটি কেবল মেনু স্ক্রিনে ঝুলিয়েছিল এবং বুট করতে সক্ষম হওয়ার জন্য আমাকে পিসিকে হার্ড-রিসেট করতে হয়েছিল।

যদি কেউ এটি চেষ্টা করে দেখতে পারেন, কেবল এটি কেবল আমার কিনা তা দেখার জন্য, আমি এটির প্রশংসা করব। (পুদিনাটি আমাকে একটি শক্ত সময় দিচ্ছে, এবং এটি পরিবর্তনের জন্য একটি ভাল উপলক্ষ হবে: পি)।

কোডটি পড়া /boot/grub/grub.cfg, মনে হচ্ছে এটি যাওয়ার উপায়, তবে আমার পর্যবেক্ষণগুলি থেকে, কেবল এই সেটিংসটিকে উপেক্ষা করা হচ্ছে ...


আপনি কি ডিস্ট্রো উপর? আমি মনে করি এটি আমার ডেবিয়ানে কাজ করে ফেলেছি।
jw013

উত্তর:


20

grub-rebootকমান্ডটি কাজ করার জন্য , বেশ কয়েকটি প্রয়োজনীয় কনফিগারেশন পরিবর্তনগুলি অবশ্যই থাকতে হবে:

  • গ্রাবের জন্য ডিফল্ট এন্ট্রি সেট করা আবশ্যক saved। এর জন্য একটি সম্ভাব্য অবস্থান হ'ল GRUB_DEFAULT=লাইন/etc/default/grub
  • ব্যবহারের grub-set-defaultএক আপনি সাধারণত ব্যবহার করার জন্য আপনার ডিফল্ট এন্ট্রি সেট করতে।
  • আপনার গ্রাব কনফিগারেশন আপডেট করুন (উদাঃ update-grub)।

এটি প্রাথমিক সেট আপের যত্ন নেওয়া উচিত। ভবিষ্যতে, কেবলমাত্র grub-reboot <entry>এক-সময়ের বুট করার জন্য <entry>


আমি আপনার শব্দগুলি দেখতে পাচ্ছি "গ্রাবের জন্য ডিফল্ট এন্ট্রি অবশ্যই সেট করতে হবে saved", যখন আমার GRUB_DEFAULT=0রাখাও যথেষ্ট। তাহলে কি savedঅপ্রয়োজনীয়?
zhangxaochen

আমি নিশ্চিত নই যে এই বৈশিষ্ট্যটি আসলেই কত শীতল, সবাই বুঝতে পেরেছি, আমি উইনআলট 64 কে রেল 64 দিয়ে বুট করার পরিকল্পনা করছি এবং এর বিপরীতে, রেলটি অন্য একটি জাল নেটওয়ার্ক সিস্টেমের নির্ধারিত ব্যাকআপ টাস্কের জন্য স্বয়ংক্রিয়ভাবে উপলব্ধ হয়ে উঠবে, যা রেল জেডএফএস রেইডজ 2-তে ধাক্কা দেয়। তারপরে ব্যাকআপ সম্পূর্ণ হওয়ার পরে, গ্রাবড সিস্টেম অটো বুট করে উইন্ডোজ গেমারে আইআইএস সার্ভারের খেলার মাঠের বাকি সপ্তাহের জন্য, ধুয়ে ফেলুন এবং পুনরাবৃত্তি করুন। এটি একটি আকৃতি শিফটার। :-)
ব্রায়ান থমাস

সাফল্যের রিটার্ন কোড দিয়ে গ্রাব-রিবুট নিঃশব্দে ব্যর্থ হয় তা খেয়াল করতে আমার বয়স হয়েছিল। আমি আশা করি আমার প্রস্তাবিত সম্পাদনাটি ঠিক আছে। :-)
কেউই

23
  1. / Etc / default / grub সম্পাদনা করুন এবং এর GRUB_DEFAULT=0সাথে প্রতিস্থাপন করুনGRUB_DEFAULT=saved
  2. sudo update-grub
  3. আপনার আদেশ হবে:

    sudo grub-reboot "$(grep -i 'windows' /boot/grub/grub.cfg|cut -d"'" -f2)" && sudo reboot
    

আপনার ~ / .bashrc এ একটি দুর্দান্ত ফাংশন দেখতে পাবেন

# ******************************************************************
# reboot directly to windows 
#   Inspired by http://askubuntu.com/questions/18170/how-to-reboot-into-windows-from-ubuntu
# ******************************************************************
function my_reboot_to_windows {
    WINDOWS_TITLE=`grep -i 'windows' /boot/grub/grub.cfg|cut -d"'" -f2`
    sudo grub-reboot "$WINDOWS_TITLE"
    sudo reboot
}

যদি আপনার গ্রাব.কনফ উইন্ডোজের জন্য একাধিক লাইন ধারণ করে তবে নিম্নলিখিত ফাংশনগুলিতে menuentryউইন্ডোজকে উল্লেখ করে কেবল প্রথমটি শুরু করে এবং কেবল প্রথমটি বাছাই করা সম্পর্কে যত্ন নেওয়া হবে :

function my_reboot_to_windows {
    WINDOWS_TITLE=`grep -i "^menuentry 'Windows" /boot/grub/grub.cfg|head -n 1|cut -d"'" -f2`
    sudo grub-reboot "$WINDOWS_TITLE"
    sudo reboot
}

আমার ফাইলে /boot/grub/grub.cfgএতে "উইন্ডোজ" এর সাথে আরও লাইন রয়েছে, তাদের মধ্যে অনেকেই এর মতো কিছু উল্লেখ করেছেন ...=1 i915.semaphores=1 acpi_osi='!Windows 2012' $vt..., তাই আমি ধরে নিয়েছি আপনার কোড এতে ব্যর্থ হবে। এটি গ্রেপিংয়ের মাধ্যমে স্থির করা যেতে পারে ^menuentry 'Windows
জান ভ্লিনকিনস্কি

এটি সঠিক উত্তর হিসাবে চিহ্নিত করা উচিত।
তাহা রেহমান সিদ্দিকী

ফাংশনটি আমি যা ভাবা তার থেকে বেশি সহায়ক।
কারসন আইপি

2

এটি করার একটি দুর্দান্ত সহজ উপায় হ'ল গ্রাব রিবুট করা জিনোম শেল এক্সটেনশন (এটি আপনি যদি জিনোম ব্যবহার করছেন)।

এক্সটেনশানটি ব্যবহার করতে উপরের লিঙ্কযুক্ত সাইটে যান এবং উপরের ডানদিকে কিছুটা টগল ক্লিক করুন (আপনি যখন পৃষ্ঠায় প্রথম নেভিগেট করবেন তখন সম্ভবত এটি অফ বলে)। আপনাকে এক্সটেনশনটি ডাউনলোড এবং ইনস্টল করতে চান তা নিশ্চিত করতে বলা হবে।

এটি ইনস্টল হয়ে গেলে, আপনি নিজের সিস্টেম মেনুটি খুলতে এবং সাধারণভাবে পুনরায় চালু করার মতো পাওয়ার বাটনটি ক্লিক করতে পারেন। আপনি যে শাটডাউন বা পুনরায় চালু করতে চান তা নিশ্চিত করে যে উইন্ডোটি পপ আপ হয় তাতে "পুনরায় চালু করুন ..." লেবেলযুক্ত একটি বোতাম রয়েছে। আপনি যখন সেই বোতামটি ক্লিক করেন, আপনার গ্রাব মেনুতে থাকা আইটেমগুলি তালিকায় উপস্থিত হয় যাতে আপনি পুনরায় চালু হওয়ার পরে কোন ওএসটি স্বয়ংক্রিয়ভাবে চালু করতে হবে তা নির্বাচন করতে পারেন। আপনি যদি এই আইটেমগুলির মধ্যে একটি নির্বাচন করেন তবে আপনার সিস্টেমটি আপনার নির্বাচিত গ্রাব বিকল্পগুলি ব্যবহার করে পুনরায় চালু হবে।


1
এক্সটেনশনটি ইনস্টল ও ব্যবহারের বিশদ অন্তর্ভুক্ত করার জন্য আমি আমার পোস্টটি সম্পাদনা করেছি।
ডিলান স্মিথ

1

আমি ওপেনসুএসই ব্যবহার করি যা একটি স্ক্রিপ্ট নামে আসে যার সাথে grubonceআপনার যা প্রয়োজন ঠিক তা করে - পরের পুনরায় বুট করার জন্য গ্রাব এন্ট্রি সেট করুন।

# grubonce
0: Trace -- openSUSE 12.1 - 3.1.10-1.16
1: Debug -- openSUSE 12.1 - 3.1.10-1.16
2: Desktop -- openSUSE 12.1 - 3.1.10-1.16
3: Failsafe -- openSUSE 12.1 - 3.1.10-1.16

# grubonce 0
Using entry #0: Trace -- openSUSE 12.1 - 3.1.10-1.16

# grubonce 2
Using entry #2: Desktop -- openSUSE 12.1 - 3.1.10-1.16

আমি জানি না কোন অন্যান্য বিতরণ এই স্ক্রিপ্টটি পাঠায়, সুতরাং আপনার ডিস্ট্রোতে এটি না থাকলে আপনি এই পৃষ্ঠাটি পরীক্ষা করে দেখতে পারেন:

http://sidvind.com/wiki/GRUB:_Boot_another_OS_once


এটি প্রকৃতপক্ষে গ্রুড এবং বিশ্বস্ত গ্রুপের অংশ (যা কিছু হোক না কেন) এবং গ্রুব 2 না তাই আমার এটি
টাম্বলবিড

1

grub-set-defaultআরও উপলব্ধ বলে মনে হচ্ছে ( grubonceউবুন্টু শ্লোকটিতে তালিকাভুক্ত নয়)। এটি আরও সহায়ক হতে পারে কারণ উইন্ডোজ এর স্টার্টআপের সময় পুনরায় বুট করার অভ্যাস থাকলে শেষ শটডাউনে আপডেটগুলি প্রয়োগ করা হয় (এটি স্টার্টআপ শুরু হয়, কিছু আপডেট ডেটা, রিবুটগুলি প্রসেস করে এবং লগইন পৃষ্ঠা প্রদর্শন করে)।
আমি প্রায়শই ফিরে আসার জন্য এবং উবুন্টুকে চালিত দেখতে উইন্ডোজ 7 শুরু করেছি।


1
আমি উইন্ডোজ আপডেটটি বন্ধ করে দিয়েছি, যাতে এটি কোনও সমস্যা না হয়: ডি, আমি এটি চেষ্টা করব। আমি যা দেখেছি তা থেকে মনে হয় এটি একই কাজ করে grub-reboot। আমি আরও বিস্তারিতভাবে আমার প্রশ্ন সম্পাদনা করছি। যাই হোক ধন্যবাদ.
jadkik94

1

ফেডোরায়, আপনি নিম্নলিখিত স্ক্রিপ্টটি ব্যবহার করতে পারেন। মনে রাখবেন যে এটি বেশিরভাগ https://askubuntu.com/a/18186/149422 এ বর্ণিত , ফেডোরার GRUB 2-র জন্য কয়েকটি সংশোধনীর সাথে বর্ণিত ।

#!/bin/bash
if [ `readlink /boot/grub2/grubenv` == "/boot/efi/EFI/fedora/grubenv" ]; then
    sudo mv /boot/grub2/grubenv /boot/grub2/grubenv-original
    sudo ln -s ../efi/EFI/fedora/grubenv /boot/grub2/grubenv
fi
MENU_ENTRY=`grep ^menuentry /boot/grub2/grub.cfg  | grep --line-number Windows`
MENU_NUMBER=$(( `echo $MENU_ENTRY | sed -e "s/:.*//"` - 1 ))
sudo grub2-reboot $MENU_NUMBER
sudo reboot

1

আমি উবুন্টু 16,04 ব্যবহার করছি এবং উপরে সমাধান আমার জন্য কাজ করে নি ... কোনো কারণে sudo grub-reboot 2আপডেট করলো না /boot/grub/grubenvফাইল, পরিবর্তন পরেও GRUB_DEFAULT=0করতে GRUB_DEFAULT=savedউভয় /etc/default/grubএবং /boot/grub/menu.lstsavedefault --default=2 --onceগ্রুবে কমান্ড ব্যবহার করাও গ্রুবেনভ ফাইলটি ব্যবহার করে না বা পরিবর্তন করে বলে মনে হয় না। এটি কেবল আসল গ্রাব মেনুতে ফিরে আসতেই যেন কিছুই করা হয়নি।

সুতরাং আমি এটি ম্যানুয়ালি করে শেষ করেছি এবং এটি কাজ করছে (যদিও এটি RAID ড্রাইভগুলির সাথে কীভাবে কাজ করবে তা নিশ্চিত নয়)।

sudo grub-editenv - set next_entry=2
reboot

যেখানে গ্রু স্টার্ট-আপ মেনুতে উইন্ডোজ প্রবেশের জন্য 2 হ'ল শূন্য-ভিত্তিক মেনু প্রবেশের অবস্থান।

/boot/grub/grub.cfgফাইলটি দেখে এটি কেন কাজ করে তা আপনি দেখতে পারেন , কেননা এটি নেক্সট_এন্ট্রি মানটি ব্যবহার করে এবং এরপরে এটি পরবর্তী বুটের জন্য পুনরায় সেট করে।


0

@ Jw013 এর সাথে সম্মত হন। এবং আপনি গ্রাব-রিবুট করতে মেনু টালি দিতে পারেন (পিতামাতার মেনু শিরোনাম সহ)। উদাহরণ:

$ sudo grub-reboot "Advanced options for Ubuntu>Ubuntu, with Linux 4.13.0-26-generic"
$ sudo reboot

যেখানে "উবুন্টুর জন্য উন্নত বিকল্পগুলি" হল মূল মেনু, "উবুন্টু, লিনাক্স 4.13.0-26-জেনেরিক সহ" সাবমেনু।


0

নির্দিষ্ট বুট টার্গেটে (গ্রাব এন্ট্রি) মেশিনটি পুনরায় বুট করুন।
বুট টার্গেটটি আন্তঃক্রিয়ামূলকভাবে fzf দ্বারা নির্বাচন করা হয়।

# Search for grub.cfg
GRUB_CFG=$(find /boot -name grub.cfg 2> /dev/null)

if [[ -z ${GRUB_CFG} ]]; then
  echo "No grub.cfg found under /boot. Try as root."
  exit 1
elif [[ ! -r ${GRUB_CFG} ]]; then
  echo "${GRUB_CFG} is not readable. Try as root."
  exit 1
fi

GRUB_MENUENTRY=$(awk -F\' '/menuentry / {print $2}' ${GRUB_CFG} | fzf)

# Set boot target for next boot
grub2-reboot "${GRUB_MENUENTRY}"

reboot
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.