انجمنهای فارسی اوبونتو
کمک و پشتیبانی => سایر توزیعهای گنو/لینوکس => نویسنده: esmaeelE در 30 مهر 1400، 08:44 بظ
-
پس از نصب گیکس روی افراز sda2
مدیر راهاندازی به طور پیشفرض و پس از نصب توزیع(دبیان و گیکس) را شناسایی نکرد.
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 931.5G 0 disk
├─sda1 8:1 0 512M 0 part /boot/efi
├─sda2 8:2 0 27.9G 0 part
├─sda3 8:3 0 15.9G 0 part [SWAP]
├─sda4 8:4 0 691.9G 0 part /home
├─sda5 8:5 0 19.3G 0 part /
└─sda6 8:6 0 176G 0 part
هر دو به صورت EFI نصب شده اند.
به طور موقت و دستی قسمت منوی گیکس را به تنظیم گراب در دبیان افزودم و راه اندازی شد.
/boot/grub/grub.cfg
اما فرمان زیر تنظیم را رو نویسی میکند.
update-grub2
روش صحیح برای داشتن هر دو توزیع در انتخابهای گراب چیست؟
-
فکر کنم باید os prober رو نصب کنید. نمیدونم چه چیزی باید توی فایل تنظیمات اون بنویسید تا os prober نصب بشه.
-
فکر کنم باید os prober رو نصب کنید. نمیدونم چه چیزی باید توی فایل تنظیمات اون بنویسید تا os prober نصب بشه.
چیزی پیدا نکردم در این مورد.
نصب خود بسته و اجرای اون کار خاصی نمیکنه.
-
سعی کنید os prober رو توی دبیان نصب کنید بعد تنظیمات گراب رو توی دبیان آپدیت کنید. فکر کنم اینجوری بشه.
شاید چون گیگس از FHS استفاده نمیکنه، دبیان نتونه گیگس رو تشخیص بده، مطمئن نیستم.
-
سعی کنید os prober رو توی دبیان نصب کنید بعد تنظیمات گراب رو توی دبیان آپدیت کنید. فکر کنم اینجوری بشه.
شاید چون گیگس از FHS استفاده نمیکنه، دبیان نتونه گیگس رو تشخیص بده، مطمئن نیستم.
اگر دستور update-grub2 را بزنم تنظیم دستی گیکس به هم میخوره.
-
الان اولویت با کدوم گراب است ؟
یعنی وقت بوت کدوم گراب نمایش داده میشه ؟ گیکس یا دبیان ؟
-
میتونید حدود ۲۰ خط آخر تنظیمات گرابِ گیگس رو اینجا بذارید؟
اگه فایل custom.cfg جایی باشه که فایل grub.cfg هم قرار داره، تنظیمات اون فایل هم استفاده میشه؛ حداقل توی دبیان اینجوری هست. فایل custom.cfg تا جایی که من میدونم توسط گراب بازنویسی نمیشه. معمولا فایل تنظیمات گراب توی مسیر زیر قرار داره.
/boot/grub/grub.cfg
شاید بتونید هم برای دبیان و هم گیگس این فایل رو درست کنید و توی هر کدوم تنظیم کنید که یه گزینه باشه تا تنظیمات اون یکی استفاده بشه.
الان پارتیشن efi روی sda1 هست، از خروجی lsblk که قبلا فرستادید مشخصه.
معمولا هر توزیع داخل دایرکتوری زیر یه دایرکتوری برای خودش میسازه میسازه تا تنظیمات بوتلودر رو اونجا قرار بده. esp همون پارتیشن efi هست.
esp/EFI
الان مثلا میشه توی guix، فایل custom.cfg رو درست کرد و داخلش این رو نوشت
config_debian="(hd0,gpt1)/EFI/debian/grub.cfg"
if [ -f ${config_debian} ]; then
menuentry 'Load Debian configuration' {
configfile ${config_debian}
}
fi
این باعث میشه که یه گزینه دیگه به منوی گراب گیگس اضافه بشه، اگه فایل تنظیمات گراب دبیان وجود داشته باشه. اگه اون منو انتخاب بشه، تنظیمات گراب دبیان به عنوان تنظیمات اصلی خونده میشن و وارد منوی گرابِ دبیان میشید.
اون (hd0,gpt1) برای این هست که فایل تنظیمات گراب که داخل esp هستند، بارگذاری بشه. میشد تنظیمات گراب که داخل /boot/grub/ بودند رو هم بارگذاری کرد اما فکر کنم اونجوری بعضی متغییرها مقدار درست نخواهند داشت.
اگه جدول پارتیشن از نوع mbr هست، msdos رو جایگزین gpt کنید. (از اونجایی که کامپیوتر با uefi بوت میشه، احتمالا gpt هست)
باید به طور مشابه بشه همین کار رو توی دبیان انجام داد.
توی روش بالا نمیدونم که گراب گیگس هم اگه فایلی به اسم custom.cfg کنار grub.cfg باشه، ازش استفاده میکنه یا نه.
توی دبیان اسکریپت زیر باعث میشه که دستور update-grub تنظیمات رو جوری بنویسه که اگه اون فایل بود، استفاده بشه.
/etc/grub.d/41_custom
نمیدونم اسکریپت بالا توی گیگس وجود داره یا نه. اگه وجود نداره احتمالا میشه از طریق فایلهای تنظیمات گیگس، اون رو درست کرد.
دایرکتوری /gnu/store/ باید فقط خواندنی باشه، پس نمیتونید همینجوری اون اسکریپت رو برای گراب درست کنید. اگه اون اسکریپت وجود نداره، احتمالا باید یه طوری داخل فایل config.scm یا بقیه فایلها تعریفش کنید.
-
با قرار دادن خطوط مربوط به راهاندازی گیگس در فایل زیر
boot/grub/custom.cfg
منوی گیکس به راهانداز گراب دبیان افزوده شد و با دستور update-grub2 رونویسی نمیشود و باقی میماند.
ولی در خروجی دستور شناسایی شدن توزیع جدید را نشان نمیدهد.
به این ترتیب مشکل حل شده است.
سیستم برای دبیان و گیکس راهانداز جدا داشته الان فقط برای دبیان را در تنظیمات پیش از ورود به گراب نشان میدهد و به کلی گیکس حذف شده است. معلوم نیست چرا این اتفاق افتاده.
البته مشکلی نیست با همان گراب مربوط به دبیان میشه به گیکس هم وارد شد.
اینها مربوط به افراز گیکس هست.
$ ls boot/grub/
fonts grub.cfg grubenv x86_64-efi
cat grub.cfg
# This file was generated from your Guix configuration. Any changes
# will be lost upon reconfiguration.
# Set 'root' to the partition that contains /gnu/store.
search --fs-uuid --set 19c4f2df-c77f-4f51-af32-6f891222111e
if loadfont unicode; then
set gfxmode=auto
insmod all_video
insmod gfxterm
fi
terminal_output gfxterm
insmod png
if background_image /gnu/store/vaim5n07y229fl94srrgl6dh0mk9akl7-grub-image.png; then
set color_normal=light-gray/black
set color_highlight=yellow/black
else
set menu_color_normal=cyan/blue
set menu_color_highlight=white/blue
fi
# Localization configuration.
# search --file --set /gnu/store/0cpgw7rcfda42j0wyznryp2laql6zsxj-grub-locales/en@quot.mo
set locale_dir=/gnu/store/0cpgw7rcfda42j0wyznryp2laql6zsxj-grub-locales
set lang=en_US
insmod keylayouts
keymap /gnu/store/2l6ngnn53lav522lqrknf229kfh2qfm3-grub-keymap.us
set default=0
set timeout=5
menuentry "GNU with Linux-Libre 5.11.15" {
search --fs-uuid --set 19c4f2df-c77f-4f51-af32-6f891222111e
linux /gnu/store/5axms2d6yqx1zqbcjn3cl015cbcaf7i1-linux-libre-5.11.15/bzImage --root=19c4f2df-c77f-4f51-af32-6f891222111e --system=/gnu/store/fa1ifhqic34gx5yh2fy7j4jqrf00xkpj-system --load=/gnu/store/fa1ifhqic34gx5yh2fy7j4jqrf00xkpj-system/boot modprobe.blacklist=usbmouse,usbkbd quiet
initrd /gnu/store/kjgzryk3hiar3qxjifc171fbffd722sb-raw-initrd/initrd.cpio.gz
}
if [ "${grub_platform}" == efi ]; then
menuentry "Firmware setup" {
fwsetup
}
fi
-
به این دلیل توی خروجی نشون داده نمیشه چون گراب واقعا گیگس رو شناسایی نمیکنه. این کاری که کردید باعث میشه اگه گراب تنظیمات مربوط به گیگس رو موقع بوت پیدا کرد، یه گزینه دیگه بیاره که از تنظیماتِ گرابِ گیگس استفاده بشه. این فقط موقع بوت بررسی میشه، و به غیر از اون، اگه تنظیمات گراب گیگس خراب باشه، گراب نمیتونه اون رو تشخیص بده و باز هم از همون تنظیمات استفاده میکنه. (منظورم از خراب این هست که محتویات فایل نادرست باشند، نه اینکه فایل جوری باشه که نشه بازش کرد)
اینکه میگید سیستم برای دبیان و گیگس راهانداز جدا داشته ولی الان فقط برای دبیان داره، این رو نشون میده که متغییرهای nvram که مربوط به uefi هستند، به یه دلیلی تغییر کردند.
اگه grub-install رو توی گیگس اجرا کنید، باید راهانداز اون اضافه بشه. ولی فکر نکنم توی گیگس، مستقیم از این دستور استفاده بشه. باید یه دستور باشه که میره و از روی فایل config.scm سیستم رو درست میکنه، احتمالا باید از اون دستور استفاده کنید. البته بعد از اینکار الویت گرابِ گیگس بالاتر از گرابِ دبیان قرار میگیره و نمیتونید راحت وارد دبیان بشید. میتونید این الویت رو توی تنظیمات uefi یا از طریق دستور efibootmgr تغییر بدید.
تنظیمات گراب گیگس جوری نیست که اگه فایل custom.cfg همراهش بود، ازش استفاده بشه. اینجوری اگه به هر دلیلی گراب دبیان بوت نشه و شما فقط به گراب گیگس دسترسی داشته باشید، نمیتونید به همین راحتی وارد دبیان بشید. اگه از custom.cfg استفاده میکرد، میشد مثل چیزی که بالاتر گفتم پیش رفت و دبیان رو به منوی گراب گیگس اضافه کرد. ولی الان نمیشه، اگه میخواهید دبیان توی منوی گیگس باشه، باید یه جوری اسکریپت زیر که توی دبیان هست رو به اسکریپتهای گراب گیگس اضافه کنید.
/etc/grub.d/41_custom