ডান GRUB 2 ডিফল্ট মেনু এন্ট্রি সঠিকভাবে সেট আপ করবেন কীভাবে?


27

আমি একটি জেন্টু লিনাক্স সিস্টেমে GRUB 2.00 চালাচ্ছি।

আমি আমার নিজস্ব কার্নেলগুলি ম্যানুয়ালি সংকলন করি এবং তারপরে আমি সেগুলি এর /bootসাথে ইনস্টল করি make install/bootএই মুহুর্তে আমার কাছে নিম্নলিখিত কার্নেলগুলি রয়েছে :

# ls -1 /boot/vmlinuz*
/boot/vmlinuz-3.7.4-gentoo-5
/boot/vmlinuz-3.7.4-gentoo-first
/boot/vmlinuz-3.7.4-gentoo-fourth
/boot/vmlinuz-3.7.4-gentoo-third

grub2-mkconfigনিম্নলিখিত ফলাফলের মধ্যে চলমান ফলাফল:

# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-3.7.4-gentoo-third
Found linux image: /boot/vmlinuz-3.7.4-gentoo-fourth
Found linux image: /boot/vmlinuz-3.7.4-gentoo-first
Found linux image: /boot/vmlinuz-3.7.4-gentoo-5
done

যদি আমি এখন ফলস্বরূপ /boot/grub2/grub.cfgফাইলটি পড়ি তবে আমি লক্ষ্য করব যে নিম্নলিখিত এন্ট্রিগুলি তৈরি করা হয়েছে:

  • একটি মূল ডিফল্ট এন্ট্রি যা শুরু হয় vmlinuz-3.7.4-gentoo-third
  • grub2-mkconfigকমান্ডের মতো একই ক্রমে অন্যান্য সমস্ত এন্ট্রি (পুনরুদ্ধার সহ) সহ একটি সাবমেনু

সমস্যাটি হ'ল বুট করার সময় আমি ডিফল্টরূপে আমার কার্নেলের পঞ্চম সংশোধন ( vmlinuz-3.7.4-gentoo-5) তৃতীয়টি ( vmlinuz-3.7.4-gentoo-third) নয় লোড করতে চাই । লোড করার জন্য সঠিক কার্নেলটি বেছে নেওয়ার জন্য আমি সাবমেনু অ্যাক্সেস না করাও পছন্দ করি।

আমি কীভাবে এই আচরণটি পরিবর্তন করতে পারি? আমি কীভাবে GRUB কে বলতে পারি যে আমি ডিফল্টরূপে আমার কার্নেলের পঞ্চম সংশোধনটি চালাতে চাই এবং পুরানো তৃতীয় সংশোধন নয়? সাধারণভাবে, আমি যে ডিফল্ট এন্ট্রি লাইনটি চাই তার সাথে যে কার্নেলটি চেয়েছি তার সাথে আর জিআরইউবি'র কাছে আপাতদৃষ্টিতে এলোমেলোভাবে না খালি কীভাবে পরিবর্তন করতে পারি?

আমি নিম্নলিখিত লাইনগুলিও চেষ্টা করেছিলাম /etc/default/grub:

GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true

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


আমি লক্ষ্য করেছি আপনি -o /boot/grub2/grub.cfgআউটপুট ফাইল হিসাবে নির্দিষ্ট করেছেন। ডিরেক্টরি /boot/grub/এখনও বিদ্যমান?
অট--

উত্তর:


12

সাব-মেনু "অ্যাডভান্সড অপশনস" এর অধীনে একটি মেনু এন্ট্রি নির্বাচন করতে GRUB_DEFAULT = "1> 3" সেট করুন। আপনি এখন গ্রাব কনফিগারেশন ফাইল তৈরি করতে grub2-mkconfig চালাতে পারেন। পরের পুনরায় বুট করাতে vmlinuz-3.7.4-ভদ্রু -5 বুট করা উচিত।

দ্রষ্টব্য : এটি গ্রাব মেনুতে ডিফল্ট এন্ট্রি পরিবর্তন করবে না, অর্থাত্, ডিফল্ট এন্ট্রিটি এখনও আপনার ঠিক একই প্রবেশকে নির্দেশ করবে। তবে যে চিত্রটি ডিফল্টরূপে বুট হবে তা হ'ল "উন্নত বিকল্পসমূহ" এর অধীনে চতুর্থ চিত্র হবে। গ্রাব মেনুতে ডিএমএল ডিফল্ট হিসাবে vmlinuz-3.7.4-শিেন্টো -5 তৈরি করতে, চিত্রগুলির ক্রম এমন হওয়া উচিত যখন আপনি গ্রাব 2-এমকনফিগ চালাবেন তখন ভিএমলিনজ -3.7.4-ভদ্রু -5 প্রথম চিত্র হওয়া উচিত ।


2
উল্লেখ্য যে উদ্ধৃতি চিহ্নগুলি গুরুত্বপূর্ণ। অর্থাত GRUB_DEFAULT = 1> 3 কাজ করবে না।
ctuffli

7

আপনি যদি একটি থাকে তাহলে সাবমেনু আপনি দুটি সংখ্যা ভালো ব্যবহার করা উচিত আপনার grub.cfg মধ্যে:

grub-reboot '1>3'

প্রথম মেনু সূচক, এবং দ্বিতীয় সাবমেনু সূচি।

উদাহরণস্বরূপ, কনফিগারেশন থেকে শেষ এন্ট্রি বুট করার জন্য:

grep menu /boot/grub/grub.cfg

menuentry 'Debian GNU/Linux' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-1ffa16a9-fda2-43b5-91b9-c91a08ff190f' {
submenu 'Advanced options for Debian GNU/Linux' $menuentry_id_option 'gnulinux-advanced-1ffa16a9-fda2-43b5-91b9-c91a08ff190f' {
    menuentry 'Debian GNU/Linux, with Linux 4.6.0-0.bpo.1-amd64' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.6.0-0.bpo.1-amd64-advanced-1ffa16a9-fda2-43b5-91b9-c91a08ff190f' {
    menuentry 'Debian GNU/Linux, with Linux 4.6.0-0.bpo.1-amd64 (sysvinit)' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.6.0-0.bpo.1-amd64-init-sysvinit-1ffa16a9-fda2-43b5-91b9-c91a08ff190f' {
    menuentry 'Debian GNU/Linux, with Linux 4.6.0-0.bpo.1-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.6.0-0.bpo.1-amd64-recovery-1ffa16a9-fda2-43b5-91b9-c91a08ff190f' {
    menuentry 'Debian GNU/Linux, with Linux 3.16.0-4-amd64' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.16.0-4-amd64-advanced-1ffa16a9-fda2-43b5-91b9-c91a08ff190f' {
    menuentry 'Debian GNU/Linux, with Linux 3.16.0-4-amd64 (sysvinit)' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.16.0-4-amd64-init-sysvinit-1ffa16a9-fda2-43b5-91b9-c91a08ff190f' {
    menuentry 'Debian GNU/Linux, with Linux 3.16.0-4-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.16.0-4-amd64-recovery-1ffa16a9-fda2-43b5-91b9-c91a08ff190f' {

আপনার ব্যবহার করা উচিত:

grub-reboot '1>5'

এবং পুনরায় বুট করুন।


রহস্যময়। সাবমেনু সূচক 0 দিয়ে শুরু হয়, যখন 1 থেকে প্রধান মেনু
বরুণআগউ

5

আপনি পাশাপাশি ব্যবহার করতে পারেন GRUB_DEFAULT=saved। এই ক্ষেত্রে আপনি ব্যবহার করতে চাই

$ grub2-set-default -h
Usage: grub2-set-default [OPTION] MENU_ENTRY
Set the default boot menu entry for GRUB.

  -h, --help              print this message and exit
  -v, --version           print the version information and exit
  --boot-directory=DIR    expect GRUB images under the directory DIR/grub2
                          instead of the /boot/grub2 directory

MENU_ENTRY is a number, a menu item title or a menu item identifier.

বা যদি এটি কেবল পরবর্তী বুটের জন্য থাকে:

$ grub2-reboot -h
Usage: grub2-reboot [OPTION] MENU_ENTRY
Set the default boot menu entry for GRUB, for the next boot only.

  -h, --help              print this message and exit
  -v, --version           print the version information and exit
  --boot-directory=DIR    expect GRUB images under the directory DIR/grub2
                          instead of the /boot/grub2 directory

MENU_ENTRY is a number, a menu item title or a menu item identifier.

2

চেষ্টা

mkdir -p /boot/grub/backup
mv -v /boot/grub/vmlinuz-3.7.4-gentoo-{first,third,fourth} /boot/grub/backup

এটি আপনার সমস্ত অব্যবহৃত কার্নেলগুলি এখন একটি ব্যাকআপ ডিরেক্টরিতে সরিয়ে দেয়:

grub2-mkconfig -o /boot/grub/grub.cfg

এটি কেবল r5আপনার মেনুতে পছন্দ যুক্ত করে। এগুলি করার পরে, এই লিঙ্কটি পড়ুন এবং তারপরে আপনি জিদ করেন তবে ভিএমলিনজ ব্যতীত ব্যাকআপ ডিরেক্টরিতে থাকা সমস্ত কার্নেলের নাম পরিবর্তন করুন them


2

Centos7 (বা RHEL7) এবং গ্রাব 2 সহ:

বুট গ্রুবেনভ থেকে ডিফল্ট হিসাবে বুট করার জন্য 'সেভড-এন্ট্রি' এন্ট্রি ব্যবহার করে /boot/grub2/grub.cfg থেকে স্নিপলেট:

if [ "${next_entry}" ] ; then
   set default="${next_entry}"
   set next_entry=
   save_env next_entry
   set boot_once=true
else
   set default="${saved_entry}"
fi

'সেভড এন্ট্রি' কী তা যাচাই করা এখন আমার বিল্ড:

grub2-editenv list

saved_entry=CentOS Linux (3.10.0-693.2.2.el7.ari.x86_64) 7 (Core)

এটি পরিবর্তন করতে যেমন আমার ডিবাগ বিল্ডে:

grub2-editenv - set saved_entry='CentOS Linux 3.10.0-693.2.2.el7.ari.x86_64.debug) 7 (Core)'

1

কাঙ্ক্ষিত ফলাফল অর্জনের জন্য আমি যা করেছি তা হ'ল:

  • সাহায্য GRUB_DEFAULT=savedহিসাবে বর্ণিত হিসাবে সেট করুনgrub-set-default

    grub-set-default Menu entry not specified. Usage: grub-set-default [OPTION] MENU_ENTRY Set the default boot menu entry for GRUB. This requires setting GRUB_DEFAULT=saved in /etc/default/grub. -h, --help print this message and exit -V, --version print the version information and exit --boot-directory=DIR expect GRUB images under the directory DIR/grub instead of the /boot/grub directory MENU_ENTRY is a number, a menu item title or a menu item identifier.

  • ডিফল্ট মান সেট করুন

    grub-set-default "1>2"

    এটি / বুট / গ্রুবে একটি নতুন ফাইল তৈরি করে যা প্রয়োজনীয় তথ্য সহ গ্রুবেনভ নামে তৈরি করে।

  • এটির পরে আমি কনফিগার ফাইলটি পুনরায় তৈরি করি

    grub-mkconfig > /boot/grub/grub.cfg

এবং আমি দেখেছি কনফিগারেশনটি সংরক্ষিত রাজ্যটি ব্যবহার করতে পরিবর্তন করা হয়েছিল:

if [ "${next_entry}" ] ; then set default="${next_entry}" set next_entry= save_env next_entry set boot_once=true else set default="${saved_entry}" fi


0

আপনি সংখ্যার মান দ্বারা ডিফল্ট পছন্দটি সেট করতে পারেন। আপনি যদি সেট

`GRUB_DEFAULT=3` 

ইন /etc/default/grub
আপনি কোমল -5 এন্ট্রি ডিফল্ট সেট করবে।
GRUB_DEFAULTশূন্য অফসেট, সুতরাং 3 আপনার ইচ্ছামতো চতুর্থ প্রবেশটি নির্বাচন করবে।


2
কেন জানি না, তবে মনে হয় এটি কাজ করে না। আমি সেট GRUB_DEFAULT=3হিসাবে আপনি বললাম, তাহলে পুনরায় রান grub2-mkconfig। বুট সময় ডিফল্ট এন্ট্রি এখনও আছে vmlinuz-3.7.4-gentoo-third
ফ্রান্সেস্কো টার্কো

1
মন্তব্য করার চেষ্টা করুন GRUB_SAVEDEFAULT=trueএটি গুরুত্বপূর্ণ নয়, তবে এটি সংখ্যাসূচক সহ প্রয়োজন হয় না।
বিএসডি

2
আমার /etc/default/grubফাইলে আমার সেই বিকল্প নেই ।
ফ্রান্সেস্কো টার্কো

0

আমার সন্দেহ হয় যে grub2-mkconfigতারা প্রাথমিকভাবে একঘেয়েভাবে সংস্করণ সংখ্যা বৃদ্ধি করে বলে ধরে নিল, বিপরীত ক্রমে কার্নেলগুলি বাছাই করে। সুতরাং যে কনভেনশন মাপসই আপনার ট্যাগ বাছাই শুরু করুন।


0

এমভি সেই নতুন / ব্যবহৃত না হওয়া সংস্করণ ফাইলগুলিকে / বুটে একটি ব্যাকআপ ডিরেক্টরিতে উদাহরণস্বরূপ / boot / back initrd.img-3.13.0-xx-জেনেরিক
vmlinuz-3.13.0-xx-জেনেরিক কনফিগারেশন -313.0-xx-জেনেরিক System.map-3.13.0-xX-জেনেরিক

সিস্টেমটিকে রেসকিউ মোডে রিবুট করুন, তারপরে উদ্ধার সংলাপে গ্রাব চয়ন করুন, তারপরে সবকিছু ঠিক থাকবে।

এটি আমার মনে হয় সবচেয়ে উপযুক্ত পদ্ধতি। আমি উবুন্টু 14.04 ব্যবহার করছি।


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