Hello guys.
I recently got a new SSD to give my old laptop a second life. I have been running Arch on it for a couple of years, but not so long ago I heard about Artix and decided to give it chance. So I began installing the OS on my new SSD, I connected it via USB to my laptop and installed everything from my already functioning Arch OS (I just needed to change the mirrors and some other things to get the necessary packages for the actual installation and the artools-chroot command). The process went without problems of any kind. Finally I rebooted my laptop to change the BIOS boot setting so the pc booted from the external SSD. To my surprise I didn't need to change anything and not even select the boot device, it directly launched GRUB with Artix as an option. Seeing this I decided to leave the rest of the system setup for later.
Today I had in mind completing the whole system setup, but unfortunately whenever I try to boot from the external SSD (or even if I swap hard drives internally) the boot process gets stuck at a GRUB command prompt (GRUB _) that doesn't allow to write anything or execute any instruction.
In order to get to the mentioned GRUB prompt I have had to change my BIOS boot config to accept legacy option, if I don't do this the SSD is not recognized.
My system is a Lenovo G50-80 which is an UEFI pc. I formatted the file system for the boot partition with FAT32 as the wiki explains, following the guidelines for UEFI systems.
I don't really know what is going on and would like to get some help. It is just so weird that the first time rebooting the laptop made it so the Artix OS was booted even though it wasn't set as the first boot option and that, as I'm seeing now, the BIOS doesn't detect the device if the legacy option is not set. But now it's just impossible to get the system to boot on to Artix.
Here is some useful info:
- Disk partitions
sdb 8:16 0 465,8G 0 disk
|-sdb1 8:17 0 1G 0 part /boot
|-sdb2 8:18 0 30G 0 part /
`-sdb3 8:19 0 434,8G 0 part /home
- Grub config file
$ cat /boot/grub/grub.cfg
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#
### BEGIN /etc/grub.d/00_header ###
insmod part_gpt
insmod part_msdos
if [ -s $prefix/grubenv ]; then
load_env
fi
if [ "${next_entry}" ] ; then
set default="${next_entry}"
set next_entry=
save_env next_entry
set boot_once=true
else
set default="0"
fi
if [ x"${feature_menuentry_id}" = xy ]; then
menuentry_id_option="--id"
else
menuentry_id_option=""
fi
export menuentry_id_option
if [ "${prev_saved_entry}" ]; then
set saved_entry="${prev_saved_entry}"
save_env saved_entry
set prev_saved_entry=
save_env prev_saved_entry
set boot_once=true
fi
function savedefault {
if [ -z "${boot_once}" ]; then
saved_entry="${chosen}"
save_env saved_entry
fi
}
function load_video {
if [ x$feature_all_video_module = xy ]; then
insmod all_video
else
insmod efi_gop
insmod efi_uga
insmod ieee1275_fb
insmod vbe
insmod vga
insmod video_bochs
insmod video_cirrus
fi
}
if [ x$feature_default_font_path = xy ] ; then
font=unicode
else
insmod part_msdos
insmod ext2
set root='hd1,msdos2'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-ieee1275='ieee1275/(null)/sas/disk@0,msdos2' --hint-bios=hd1,msdos2 --hint-efi=hd1,msdos2 --hint-baremetal=ahci1,msdos2 02019292-6249-4f34-a848-eac67ce24c93
else
search --no-floppy --fs-uuid --set=root 02019292-6249-4f34-a848-eac67ce24c93
fi
font="/usr/share/grub/unicode.pf2"
fi
if loadfont $font ; then
set gfxmode=auto
load_video
insmod gfxterm
fi
terminal_input console
terminal_output gfxterm
if [ x$feature_timeout_style = xy ] ; then
set timeout_style=menu
set timeout=5
# Fallback normal timeout code in case the timeout_style feature is
# unavailable.
else
set timeout=5
fi
### END /etc/grub.d/00_header ###
### BEGIN /etc/grub.d/10_linux ###
menuentry 'Artix Linux' --class artix --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-02019292-6249-4f34-a848-eac67ce24c93' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_msdos
insmod fat
set root='hd1,msdos1'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-ieee1275='ieee1275/(null)/sas/disk@0,msdos1' --hint-bios=hd1,msdos1 --hint-efi=hd1,msdos1 --hint-baremetal=ahci1,msdos1 3D88-BF60
else
search --no-floppy --fs-uuid --set=root 3D88-BF60
fi
echo 'Loading Linux linux ...'
linux /vmlinuz-linux root=UUID=02019292-6249-4f34-a848-eac67ce24c93 rw loglevel=3 quiet
echo 'Loading initial ramdisk ...'
initrd /initramfs-linux.img
}
submenu 'Advanced options for Artix Linux' $menuentry_id_option 'gnulinux-advanced-02019292-6249-4f34-a848-eac67ce24c93' {
menuentry 'Artix Linux, with Linux linux' --class artix --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-advanced-02019292-6249-4f34-a848-eac67ce24c93' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_msdos
insmod fat
set root='hd1,msdos1'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-ieee1275='ieee1275/(null)/sas/disk@0,msdos1' --hint-bios=hd1,msdos1 --hint-efi=hd1,msdos1 --hint-baremetal=ahci1,msdos1 3D88-BF60
else
search --no-floppy --fs-uuid --set=root 3D88-BF60
fi
echo 'Loading Linux linux ...'
linux /vmlinuz-linux root=UUID=02019292-6249-4f34-a848-eac67ce24c93 rw loglevel=3 quiet
echo 'Loading initial ramdisk ...'
initrd /initramfs-linux.img
}
menuentry 'Artix Linux, with Linux linux (fallback initramfs)' --class artix --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-fallback-02019292-6249-4f34-a848-eac67ce24c93' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_msdos
insmod fat
set root='hd1,msdos1'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-ieee1275='ieee1275/(null)/sas/disk@0,msdos1' --hint-bios=hd1,msdos1 --hint-efi=hd1,msdos1 --hint-baremetal=ahci1,msdos1 3D88-BF60
else
search --no-floppy --fs-uuid --set=root 3D88-BF60
fi
echo 'Loading Linux linux ...'
linux /vmlinuz-linux root=UUID=02019292-6249-4f34-a848-eac67ce24c93 rw loglevel=3 quiet
echo 'Loading initial ramdisk ...'
initrd /initramfs-linux-fallback.img
}
}
### END /etc/grub.d/10_linux ###
### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###
### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###
### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###
### BEGIN /etc/grub.d/41_custom ###
if [ -f ${config_directory}/custom.cfg ]; then
source ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f $prefix/custom.cfg ]; then
source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###
- Fstab file
# /dev/sdb2
UUID=02019292-6249-4f34-a848-eac67ce24c93 / ext4 rw,relatime 0 1
# /dev/sdb1
UUID=3D88-BF60 /boot vfat rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 2
# /dev/sdb3
UUID=859723ae-467d-4ce7-9a82-35f44181417d /home ext4 rw,relatime 0 2
I have also posted this issue on the Artix subreddit Can't boot on to newly installed Artix on SSD. Stuck at GRUB prompt (https://www.reddit.com/r/artixlinux/comments/ja2qsz/cant_boot_on_to_newly_installed_artix_on_ssd/).
Hope someone can help me. Thanks in advance.
EDIT(10/15/2020):
Well, I have done again the whole installation process (disk partitioning included) and the first reboot work perfectly. I was able to get inside artix and do some stuff. Then I shutdown my laptop and accesses again the BIOS boot menu and the option for using the SSD was available both as USB disk and other option that had "GRUB" in its ID (this one is the correct one which I chose and was able to enter artix again). Then I continued using my pc with its current OS as normal. Today I was going to setup the system but to my surprise the correct boot option wasn't showing (it just listed the USB disk) so I am again unable to use the SSD as functioning boot device.
Hope someone can help with this. It's quite frustrating.
SOLUTION (10/17/2020):
Finally I found out what the problem was. As I was installing the OS on a REMOVABLE DEVICE the installation of GRUB on the /boot partitionhad to be done differently. Following the Arch wiki when installing GRUB you have to run the following command:
# grub-install --target=x86_64-efi --efi-directory=esp --boot-directory=esp --removable --recheck
This will ensure that you are able to boot multiple times from said device. After that edit "/etc/mkinitcpio.conf" file and on the hooks section move block and keyboard before autodetect hook. Finally run the following:
# mkinitcpio -p linux
Unmount the drive and reboot. Then the drive will appear as a boot option and selecting it will get you to GRUB.
To me, but I may be wrong, that maybe you booted non-uefi version of the iso. For me when I boot from my bootable flash drive, I have to choose "name of my flash drive (UEFI)" and so make sure you installed grub using efi method and not mbr. grub-install --target=x86_64-efi --efi-directory=/boot (make sure efi /boot parition is mounted)
I don't really know what you mean by "non-uefi" version of the iso. But I did do
$ grub-install --target=x86_64-efi --efi-directory=/boot
As the wiki says. And of course in order to do that I've had mounted my boot partition to /dev/sdb1 in /mnt/boot.
Like in order to get a "pop-up" for which device on my system to boot from, I hit F11, and it lists things like dvd-drive, flash-drives, hard-drives and so on. For my live flash drives there is one called "Name of my flash drive"(this is mbr), and "Name of my flash drive UEFI". Since I use uefi, I choose 2nd option, which adds the abbreviation UEFI to my flash drive name
Aaah, okay. Yeah I get the same when reboot and press a special button my laptop has. It lets me choose from different boot devices. The thing is that my SSD seems to only be recognized if I enable legacy support on my BIOS setup. I don't really know if the problem is more related to my BIOS or to the boot partition. I would say the former because when I swapped drives (via SATA conector on the motherboard) it wasn't able to detect any drives that were UEFI, but I have installed and reinstalled grub with UEFI options many times and it doesn't seem to be fixing the issue. I also have checked that my file format for the boot partition is FAT32 and not ext4 which can be seen in the fstab file. Don't really know what more I can do aside from reinstalling everything from the beginning.
With UEFI, very first partition needs to be 1MB with type bios-boot and then 2nd is EFI-System for /boot formated vfat and then rest is normal.
This is how my system is done, and works fine, though I dont have a SSD, just a normal HDD, but concept I would think be the same.
I didn't see any of what you said on the wiki. It just says to format the boot partition (just one) as FAT 32 with
$ mkfs.fat -F 32 /dev/sdaX
. That is what I did and also what I have found to be norm on tutorials, both on Arch and Artix
@bolinhas, I'm in the same situation, my Notebook boot correctly and the only difference that I find, looking your fstab, is that in mine the situation is a little bit different:
UUID=59C0-B9E3 /boot/efi vfat defaults,noatime 0 2
Is specified /boot/efi and not only /boot , as in your fstab.
In my experience an UEFI PC don't boot if is specified only /boot, its for the legacy BIOS.
I hope this can help you.
Oh, that may be the issue. I will look onto it. It is definitly something weird because I clearly remember formatting the partition as FAT and installing grub with the UEFI options. In any case I'll se what I can do. Thanks again!
@francesco well I have started from the beginning (partitioning, creating file systems, etc) and the fstabgen file looks the same. I have also watched a tutorial and the output of fstabgen looks the same, it doesn't have the boot/efi flag.
Mine is mounted /boot, not /boot/efi and makes no difference for me.
Yep, it definitely doesn't make a difference. I think I've solved it. I'll post everything tomorrow.