Yesterday I have successfully installed Artix on my laptop. It could boot, hibernate and resume from hibernation. I have a GPT/UEFI setup. My boot partition used the FAT32 file system, but I was wondering if I could have a boot partition formatted in the ext4 file system, as you suggest in your wiki. So today I tried it. I deleted my boot partition and created a now one, (of type EFI System), then formatted it in ext4:
mkfs.ext4 /dev/sda1.
Later it turned out that I could not run
grub-install. It complained that my boot partition does not look like an EFI boot partition. So I reformatted it again with
mkfs.fat -F32 and tried to redo certain parts of the installation procedure to fill the boot partition with usable data again. But now it does not boot anymore. Instead of the Grub boot menu I used to have I get a grub console.
Here is more or less what I have now and I have no clue why this is not booting:
blkid/dev/sda1: UUID="A891-66B5" BLOCK_SIZE="512" TYPE="vfat" PARTUUID="58e4f36c-f06c-2c44-a260-10e3e642073a"
/dev/sda2: LABEL="SWAP" UUID="8a8c0b83-8b6f-4fea-bd4a-905e7b51ebb4" TYPE="swap" PARTUUID="a1cbabd7-fafa-c64b-8921-901a005335d2"
/dev/sda3: LABEL="HOME" UUID="f157bfe7-62f4-42b9-af5d-c1541758a11b" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="19468959-0a57-1947-a38a-cf92ea8095d8"
/dev/sda4: LABEL="ROOT" UUID="16211fe2-0927-4853-af22-b701645183fd" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="0507a328-c359-2346-929d-7f8e91cc551b"
/dev/sdb1: LABEL="DATA" UUID="0a45d2db-2042-4e2e-a463-a5aef98795e3" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="0169bd45-b6fe-694d-a2db-2eda031b507e"
/dev/loop0: TYPE="squashfs"
/dev/sdd1: BLOCK_SIZE="2048" UUID="2020-04-13-08-06-08-00" LABEL="ARTIX_202004" TYPE="iso9660"
/dev/sdd2: SEC_TYPE="msdos" LABEL_FATBOOT="ARTIX_EFI" LABEL="ARTIX_EFI" UUID="CEDB-3FA9" BLOCK_SIZE="512" TYPE="vfat"
lsblk -fNAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINT
loop0 squashfs 4.0 0 100% /run/artix/sfs/rootfs
sda
├─sda1 vfat FAT32 A891-66B5 248M 3% /mnt/boot
├─sda2 swap 1 SWAP 8a8c0b83-8b6f-4fea-bd4a-905e7b51ebb4 [SWAP]
├─sda3 ext4 1.0 HOME f157bfe7-62f4-42b9-af5d-c1541758a11b 18.5G 0% /mnt/home
└─sda4 ext4 1.0 ROOT 16211fe2-0927-4853-af22-b701645183fd 181.9G 1% /mnt
sdb
└─sdb1 ext4 1.0 DATA 0a45d2db-2042-4e2e-a463-a5aef98795e3 651.7G 0% /mnt/data
sdd iso9660 ARTIX_202004 2020-04-13-08-06-08-00
├─sdd1 iso9660 ARTIX_202004 2020-04-13-08-06-08-00 0 100% /run/artix/bootmnt
└─sdd2 vfat FAT12 ARTIX_EFI CEDB-3FA9
sr0
fstabgen -L /mnt > /mnt/etc/fstab# /dev/sda4 UUID=16211fe2-0927-4853-af22-b701645183fd
LABEL=ROOT / ext4 rw,relatime 0 1
# /dev/sda3 UUID=f157bfe7-62f4-42b9-af5d-c1541758a11b
LABEL=HOME /home ext4 rw,relatime 0 2
# /dev/sda1 UUID=A891-66B5
/dev/sda1 /boot vfat rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 2
# /dev/sdb1 UUID=0a45d2db-2042-4e2e-a463-a5aef98795e3
LABEL=DATA /data ext4 rw,relatime 0 2
# /dev/sda2 UUID=8a8c0b83-8b6f-4fea-bd4a-905e7b51ebb4
LABEL=SWAP none swap defaults 0 0
The following snippets are from the phase after
artools-chroot /mnt/etc/default/grub# GRUB boot loader configuration
GRUB_DEFAULT=saved
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="Artix"
GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 random.trust_cpu=on resume=UUID=8a8c0b83-8b6f-4fea-bd4a-905e7b51ebb4 quiet"
GRUB_CMDLINE_LINUX=""
# Preload both GPT and MBR modules so that they are not missed
GRUB_PRELOAD_MODULES="part_gpt part_msdos"
# Uncomment to enable booting from LUKS encrypted devices
#GRUB_ENABLE_CRYPTODISK=y
# Set to 'countdown' or 'hidden' to change timeout behavior,
# press ESC key to display menu.
GRUB_TIMEOUT_STYLE=menu
# Uncomment to use basic console
GRUB_TERMINAL_INPUT=console
# Uncomment to disable graphical terminal
#GRUB_TERMINAL_OUTPUT=console
# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
GRUB_GFXMODE=auto
# Uncomment to allow the kernel use the same resolution used by grub
GRUB_GFXPAYLOAD_LINUX=keep
# Uncomment if you want GRUB to pass to the Linux kernel the old parameter
# format "root=/dev/xxx" instead of "root=/dev/disk/by-uuid/xxx"
#GRUB_DISABLE_LINUX_UUID=true
# Uncomment to disable generation of recovery mode menu entries
GRUB_DISABLE_RECOVERY=true
# Uncomment and set to the desired menu colors. Used by normal and wallpaper
# modes only. Entries specified as foreground/background.
GRUB_COLOR_NORMAL="light-blue/black"
GRUB_COLOR_HIGHLIGHT="light-cyan/blue"
# Uncomment one of them for the gfx desired, a image background or a gfxtheme
#GRUB_BACKGROUND="/path/to/wallpaper"
#GRUB_THEME="/path/to/gfxtheme"
# Uncomment to get a beep at GRUB start
#GRUB_INIT_TUNE="480 440 1"
# Uncomment to make GRUB remember the last selection. This requires
# setting 'GRUB_DEFAULT=saved' above.
GRUB_SAVEDEFAULT="true"
With grub, os-prober, efibootmgr already installed:
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=grubgrub-mkconfig -o /boot/grub/grub.cfgcat /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="${saved_entry}"
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
}
set menu_color_normal=light-blue/black
set menu_color_highlight=light-cyan/blue
if [ x$feature_default_font_path = xy ] ; then
font=unicode
else
insmod part_gpt
insmod ext2
set root='hd0,gpt4'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-ieee1275='ieee1275//disk@0,gpt4' --hint-bios=hd0,gpt4 --hint-efi=hd0,gpt4 --hint-baremetal=ahci0,gpt4 16211fe2-0927-4853-af22-b701645183fd
else
search --no-floppy --fs-uuid --set=root 16211fe2-0927-4853-af22-b701645183fd
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 ###
### 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 ###
tree /boot/boot
|-- EFI
| `-- grub
| `-- grubx64.efi
`-- grub
|-- fonts
| `-- unicode.pf2
|-- grub.cfg
|-- grubenv
|-- themes
| `-- starfield
| |-- COPYING.CC-BY-SA-3.0
| |-- README
| |-- blob_w.png
| |-- boot_menu_c.png
| |-- boot_menu_e.png
| |-- boot_menu_n.png
| |-- boot_menu_ne.png
| |-- boot_menu_nw.png
| |-- boot_menu_s.png
| |-- boot_menu_se.png
| |-- boot_menu_sw.png
| |-- boot_menu_w.png
| |-- dejavu_10.pf2
| |-- dejavu_12.pf2
| |-- dejavu_14.pf2
| |-- dejavu_16.pf2
| |-- dejavu_bold_14.pf2
| |-- slider_c.png
| |-- slider_n.png
| |-- slider_s.png
| |-- starfield.png
| |-- terminal_box_c.png
| |-- terminal_box_e.png
| |-- terminal_box_n.png
| |-- terminal_box_ne.png
| |-- terminal_box_nw.png
| |-- terminal_box_s.png
| |-- terminal_box_se.png
| |-- terminal_box_sw.png
| |-- terminal_box_w.png
| `-- theme.txt
`-- x86_64-efi
|-- acpi.mod
|-- adler32.mod
|-- affs.mod
|-- afs.mod
|-- ahci.mod
|-- all_video.mod
|-- aout.mod
|-- appleldr.mod
|-- archelp.mod
|-- at_keyboard.mod
|-- ata.mod
|-- backtrace.mod
|-- bfs.mod
|-- bitmap.mod
|-- bitmap_scale.mod
|-- blocklist.mod
|-- boot.mod
|-- boottime.mod
|-- bsd.mod
|-- bswap_test.mod
|-- btrfs.mod
|-- bufio.mod
|-- cacheinfo.mod
|-- cat.mod
|-- cbfs.mod
|-- cbls.mod
|-- cbmemc.mod
|-- cbtable.mod
|-- cbtime.mod
|-- chain.mod
|-- cmdline_cat_test.mod
|-- cmp.mod
|-- cmp_test.mod
|-- command.lst
|-- configfile.mod
|-- core.efi
|-- cpio.mod
|-- cpio_be.mod
|-- cpuid.mod
|-- crc64.mod
|-- crypto.lst
|-- crypto.mod
|-- cryptodisk.mod
|-- cs5536.mod
|-- ctz_test.mod
|-- date.mod
|-- datehook.mod
|-- datetime.mod
|-- disk.mod
|-- diskfilter.mod
|-- div.mod
|-- div_test.mod
|-- dm_nv.mod
|-- echo.mod
|-- efi_gop.mod
|-- efi_uga.mod
|-- efifwsetup.mod
|-- efinet.mod
|-- ehci.mod
|-- elf.mod
|-- eval.mod
|-- exfat.mod
|-- exfctest.mod
|-- ext2.mod
|-- extcmd.mod
|-- f2fs.mod
|-- fat.mod
|-- file.mod
|-- fixvideo.mod
|-- font.mod
|-- fs.lst
|-- fshelp.mod
|-- functional_test.mod
|-- gcry_arcfour.mod
|-- gcry_blowfish.mod
|-- gcry_camellia.mod
|-- gcry_cast5.mod
|-- gcry_crc.mod
|-- gcry_des.mod
|-- gcry_dsa.mod
|-- gcry_idea.mod
|-- gcry_md4.mod
|-- gcry_md5.mod
|-- gcry_rfc2268.mod
|-- gcry_rijndael.mod
|-- gcry_rmd160.mod
|-- gcry_rsa.mod
|-- gcry_seed.mod
|-- gcry_serpent.mod
|-- gcry_sha1.mod
|-- gcry_sha256.mod
|-- gcry_sha512.mod
|-- gcry_tiger.mod
|-- gcry_twofish.mod
|-- gcry_whirlpool.mod
|-- geli.mod
|-- gettext.mod
|-- gfxmenu.mod
|-- gfxterm.mod
|-- gfxterm_background.mod
|-- gfxterm_menu.mod
|-- gptsync.mod
|-- grub.efi
|-- gzio.mod
|-- halt.mod
|-- hashsum.mod
|-- hdparm.mod
|-- hello.mod
|-- help.mod
|-- hexdump.mod
|-- hfs.mod
|-- hfsplus.mod
|-- hfspluscomp.mod
|-- http.mod
|-- iorw.mod
|-- iso9660.mod
|-- jfs.mod
|-- jpeg.mod
|-- keylayouts.mod
|-- keystatus.mod
|-- ldm.mod
|-- legacy_password_test.mod
|-- legacycfg.mod
|-- linux.mod
|-- linux16.mod
|-- loadbios.mod
|-- loadenv.mod
|-- loopback.mod
|-- ls.mod
|-- lsacpi.mod
|-- lsefi.mod
|-- lsefimmap.mod
|-- lsefisystab.mod
|-- lsmmap.mod
|-- lspci.mod
|-- lssal.mod
|-- luks.mod
|-- lvm.mod
|-- lzopio.mod
|-- macbless.mod
|-- macho.mod
|-- mdraid09.mod
|-- mdraid09_be.mod
|-- mdraid1x.mod
|-- memdisk.mod
|-- memrw.mod
|-- minicmd.mod
|-- minix.mod
|-- minix2.mod
|-- minix2_be.mod
|-- minix3.mod
|-- minix3_be.mod
|-- minix_be.mod
|-- mmap.mod
|-- moddep.lst
|-- modinfo.sh
|-- morse.mod
|-- mpi.mod
|-- msdospart.mod
|-- mul_test.mod
|-- multiboot.mod
|-- multiboot2.mod
|-- nativedisk.mod
|-- net.mod
|-- newc.mod
|-- nilfs2.mod
|-- normal.mod
|-- ntfs.mod
|-- ntfscomp.mod
|-- odc.mod
|-- offsetio.mod
|-- ohci.mod
|-- part_acorn.mod
|-- part_amiga.mod
|-- part_apple.mod
|-- part_bsd.mod
|-- part_dfly.mod
|-- part_dvh.mod
|-- part_gpt.mod
|-- part_msdos.mod
|-- part_plan.mod
|-- part_sun.mod
|-- part_sunpc.mod
|-- partmap.lst
|-- parttool.lst
|-- parttool.mod
|-- password.mod
|-- password_pbkdf2.mod
|-- pata.mod
|-- pbkdf2.mod
|-- pbkdf2_test.mod
|-- pcidump.mod
|-- pgp.mod
|-- play.mod
|-- png.mod
|-- priority_queue.mod
|-- probe.mod
|-- procfs.mod
|-- progress.mod
|-- raid5rec.mod
|-- raid6rec.mod
|-- random.mod
|-- rdmsr.mod
|-- read.mod
|-- reboot.mod
|-- regexp.mod
|-- reiserfs.mod
|-- relocator.mod
|-- romfs.mod
|-- scsi.mod
|-- search.mod
|-- search_fs_file.mod
|-- search_fs_uuid.mod
|-- search_label.mod
|-- serial.mod
|-- setjmp.mod
|-- setjmp_test.mod
|-- setpci.mod
|-- sfs.mod
|-- shift_test.mod
|-- shim_lock.mod
|-- signature_test.mod
|-- sleep.mod
|-- sleep_test.mod
|-- spkmodem.mod
|-- squash4.mod
|-- strtoull_test.mod
|-- syslinuxcfg.mod
|-- tar.mod
|-- terminal.lst
|-- terminal.mod
|-- terminfo.mod
|-- test.mod
|-- test_blockarg.mod
|-- testload.mod
|-- testspeed.mod
|-- tftp.mod
|-- tga.mod
|-- time.mod
|-- tpm.mod
|-- tr.mod
|-- trig.mod
|-- true.mod
|-- udf.mod
|-- ufs1.mod
|-- ufs1_be.mod
|-- ufs2.mod
|-- uhci.mod
|-- usb.mod
|-- usb_keyboard.mod
|-- usbms.mod
|-- usbserial_common.mod
|-- usbserial_ftdi.mod
|-- usbserial_pl2303.mod
|-- usbserial_usbdebug.mod
|-- usbtest.mod
|-- verifiers.mod
|-- video.lst
|-- video.mod
|-- video_bochs.mod
|-- video_cirrus.mod
|-- video_colors.mod
|-- video_fb.mod
|-- videoinfo.mod
|-- videotest.mod
|-- videotest_checksum.mod
|-- wrmsr.mod
|-- xfs.mod
|-- xnu.mod
|-- xnu_uuid.mod
|-- xnu_uuid_test.mod
|-- xzio.mod
|-- zfs.mod
|-- zfscrypt.mod
|-- zfsinfo.mod
`-- zstd.mod
7 directories, 311 files
Can you see why this is not booting?
One thing I noticed is that the Arch-Wiki writes (https://wiki.archlinux.org/index.php/GRUB#Installation_2) that "
grub-install also tries to create an entry in the firmware boot manager" and in the article about efibootmgr (https://wiki.archlinux.org/index.php/Unified_Extensible_Firmware_Interface#efibootmgr) they mention that there should be some
refind directory in my
/boot/EFI after running the command create the boot entry manually. But as you can see in my
tree /boot listing, there is none such thing for me. I've always relied on the automatic boot entry generation by running grub-install.
Thanks for the tip. After reinstalling grub and then kernel, I noticed that the /boot partition contains these files which were absent in my previous tries:
tree /boot/boot
|-- initramfs-linux-fallback.img
|-- initramfs-linux.img
`-- vmlinuz-linux
0 directories, 3 files
Then I installed and configured grub again. Now it actually had some more output:
grub-mkconfig -o /boot/grub/grub.cfgGenerating grub configuration file ...
Found linux image /boot/vmlinuz-linux
Found initrd image /boot/initramfs-linux.img
Found fallback initrd image(s) /boot/initramfs-linux-fallback.img
done
Thanks a lot for your quick assistance. This solved my problem. I can boot again.