الان دایرکتوری و فایل ها هستن
ubuntu@ubuntu:~$ ls /sys/firmware/efi/
config_table efivars fw_platform_size fw_vendor runtime runtime-map systab vars
legacy option roms رو غیرفعال کردم.
secure boot هم فعاله الان.
توی منو هم usb رو انتخاب کردم. فقط اینکه دفعه اول که وارد اوبونتو شدم بجز مدیر فایل، هیج برنامهای باز نشد. بزور تونستم لپ تاپ رو خاموش کنم. دفعه دوم درست شد.
فکر نکنم فعال کردن secure boot لازم باشه. احتمالا با انتخاب اوبونتو uefi توی اون منویی که با f12 میبینید، اوبونتو توی حالت uefi بوت میشه. کامل مطمئن نیستم.
توی /sys/firmware/efi/efivars/ هم یه سری فایل هست. اما بازم modprobe خروجی نداره
ubuntu@ubuntu:~$ sudo modprobe efivarfs
ubuntu@ubuntu:~$
modprobe اگه با موفقیت اجرا بشه، به طور پیشفرض خروجی نداره.
ماژول efivarfs هم خودکار بارگذاری شده چون یه سری فایل داخل /sys/firmware/efi/efivars/ میبینید.
ببینید efibootmgr -v چی میگه.
برای اینکه آرتیکس بوت بشه، لازمه گراب رو روی ESP نصب کنید.
اول سیستم رو با یه توزیع زنده توی حالت uefi بوت کنید.
ببینید ssd شما با چه اسمی شناسایی شده. من فرض میکنم sda هست.
فایلسیستم روت آرتیکس رو یه جا مثل /mnt/ سوار کنید. روت شما روی پارتیشن سوم ssd بود.
sudo mount /dev/sda3 /mnt
یه دایرکتوری به اسم efi داخل /mnt/boot/ بسازید تا ESP رو اونجا سوار کنید.
توی سیستم بوت شده، معمولا ESP روی /boot/efi/ سوار میشه. بعضی وقتا دیدم که /efi/ هم استفاده بشه.
در بعضی مواقع هم، ESP روی /boot/ سوار میشه. در این حالت، کرنل هم داخل ESP قرار میگیره.
به نظرم گزینه /boot/efi/ از بقیه بهتره. اگه میخواهید جای دیگهای باشه، دستورات و پیکربندیها رو بر اساس نیاز تغییر بدید.
sudo mkdir /mnt/boot/efi
ESP رو روی دایرکتوری که ساختید سوار کنید. ESP شما روی پارتیشن اول ssd بود.
sudo mount /dev/sda1 /mnt/boot/efi
فایلسیستمهای مورد نیاز رو هم سوار کنید تا وقتی با دستور chroot وارد اونجا میشید، به بیرون دسترسی داشته باشید.
sudo mount --rbind --make-rslave /dev /mnt/dev
sudo mount --rbind --make-rslave /proc /mnt/proc
sudo mount --rbind --make-rslave/sys /mnt/sys
sudo mount --rbind --make-rslave /run /mnt/run
فکر نکنم به /run/ نیازی بشه، ولی وجود اون نباید توی این شرایط مشکلی درست کنه.
همینطور که میبینید، ۴ تا دستور بالا خیلی شبیه هم هستند. میشه با یه حلقه for، چیزهای کمتری بنویسید و در عوض bash کارها رو انجام بده.
این معادل بالایی هست، ولی کوتاهتر:
for i in dev proc sys run; do
sudo mount --rbind --make-rslave "/$i" "/mnt/$i"
done
بعد از اینکه فایلسیتمهای مورد نیاز رو سوار کردید، با دستور chroot وارد آرتیکس بشید.
sudo chroot /mnt
چون به طور پیشفرض توی محیط chroot، دسترسی روت دارید؛ لازم نیست قبل از دستورات sudo بذارید. اگه هم بذارید مشکلی پیش نمیاد. (مگه اینکه sudo نصب نباشه یا خود sudo مشکل داشته باشه.)
گراب رو روی ESP نصب کنید.
grub-install
لازم نیست مسیر ssd یا ESP رو بدید. کلا وقتی گراب رو برای حالت uefi نصب میکنید، اسکریپت grub-install هر چی رو به عنوان مسیر دیسک یا پارتیشن بهش داده بشه رو رو نادیده میگیره.
اسکریپت grub-install باید بگه که داره گراب رو برای چه حالتی نصب میکنه. برای این شرایط، باید x86_64-efi باشه.
دوباره خروجی efibootmgr -v رو قرار بدید تا مشخص بشه اسکریپت grub-install درست کارش رو انجام داده یا نه.
پیکریندیهای گراب رو هم بروزرسانی کنید. هر چند فکر نکنم اینکار لازم باشه.
grub-mkconfig -o /boot/grub/grub.cfg
فایل fstab رو هم باید درست کنید.
میتونید اول با blkid ببینید uuid یا partuuid مربوط به ESP چیه. بعد فایل fstab رو باز کنید، اون خطی که مربوط به /boot/ بوده رو پاک کنید و یه خط جدید برای ESP بنویسید.
میتونید هم از این استفاده کنید تا کمتر لازم باشه تایپ کنید:
cat << EOF | tee -a /etc/fstab
$(blkid -s PARTUUID -o export /dev/sda1 | grep '^PARTUUID') /boot/efi vfat rw,defaults 0 2
EOF
بعد با یه ویرایشگر متن، فایل fstab رو باز کنید و ببینید به درستی کار کرده یا نه و اگه لازم بود، فایل رو دستی ویرایش کنید.
میتونید به جای partuuid، از uuid هم استفاده کنید. اگه میخواهید اینجوری پیش برید، توی دستور بالا، PARTUUID رو به UUID تغییر بدید.
حالا میتونید از chroot خارج بشید.
exit
در نهایت فایلسیستمهای سوار شده رو unmount کنید.
sudo umount -R /mnt
لپتاپ رو راهاندازی مجدد کنید، و ببینید آرتیکس بوت میشه یا نه. یادتون نره فلشی که باهاش اوبونتو رو بوت کردید، جدا کنید؛ در غیر اینصورت، احتمالا اوبونتو دوباره بوت میشه.