You are not logged in.
Have been running Arch for the past two months as my main distro. Have previous partitions with the OEM Windows install and my last distro Ubuntu. Recently, I rebooted and instead of my normal login screen, I get black screen grub> prompt. I can exit out and select either Ubuntu or Windows to boot into, but not my Arch install (hd0,pt9). Tried to tinker with the UEFI boot settings, but no go. Need help on how to proceed.
Offline
sounds like the esp wasn't mounted during a recent update
one way: boot an arch install media - arch-chroot into the system - make sure the esp is mounted correctly (may fix your fstab) - reinstall kernel which also triggers a recreation of the initramdisk - and check your grub.cfg
if somethings our of order recreate a new config with grub-mkconfig
Offline
Can I do any of this from GNU Grub? I get the impression that this grub prompt is associated with my Arch partition. But none of the usual Linux commands seem to work in here
https://www.linuxfoundation.org/blog/bl … 2-on-linux
Looks like it might work for me. But I'm not sure how to specify some of the things like lines 2 and 3 here:
grub> set root=(hd0,1)
grub> linux /boot/vmlinuz-3.13.0-29-generic root=/dev/sda1
grub> initrd /boot/initrd.img-3.13.0-29-generic
grub> boot
My Arch partition is (hd0,gpt9) so definitely root shouldn't be /dev/sda1. Dunno how to find the current vmlinuzband initrd.img files on my current install either
Last edited by saltbringer (2024-09-05 13:02:03)
Offline
again:
one way is to boot an arch install media
it maybe possible from grub rescue shell - but I'm no expert in helping with that
as for the root= parameter I would use a uuid
Offline
I get the impression that this grub prompt is associated with my Arch partition
The "grub>" prompt indicates that GRUB has found it's modules and loaded but it cannot find any valid menuentries to present, this may be because grub.cfg is missing or is searched for in the wrong location; it may also be caused by a grub.cfg that lacks menuentries.
The `set` command (just by itself, no flags or arguments) from the "grub>" prompt should show where GRUB is looking for $configfile (grub.cfg).
Dunno how to find the current vmlinuzband initrd.img files on my current install either
For the vanilla kernel package Arch uses /boot/vmlinuz-linux and /boot/initramfs-linux.img, if you want to try those.
Jin, Jiyan, Azadî
Offline
I recently had an issue that linux files were installed during an update to root partition's boot directory instead of boot partition. It did cause some strange behavior.
Offline
saltbringer wrote:I get the impression that this grub prompt is associated with my Arch partition
The "grub>" prompt indicates that GRUB has found it's modules and loaded but it cannot find any valid menuentries to present, this may be because grub.cfg is missing or is searched for in the wrong location; it may also be caused by a grub.cfg that lacks menuentries.
The `set` command (just by itself, no flags or arguments) from the "grub>" prompt should show where GRUB is looking for $configfile (grub.cfg).
Thanks. Is there a way to check/configure/remake my grub.cfg (Arch partition) from, say my Ubuntu partition? For example, I am in Ubuntu now, looking at the files on my Arch partition. I can see the vmlinuz and initramfs.img files, along with the 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_gpt
insmod btrfs
search --no-floppy --fs-uuid --set=root 45106c82-89ee-444d-9473-bda92ec394ad
font="/@/usr/share/grub/unicode.pf2"
fi
if loadfont $font ; then
set gfxmode=auto
load_video
insmod gfxterm
set locale_dir=$prefix/locale
set lang=en_US
insmod gettext
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 ###
Not really sure what to be looking for apart from root being set to the correct mountpoint (45106c82-89ee-444d-9473-bda92ec394ad appears to be correct, as it is the mount point for my Arch partition).
Offline
grub loading btrfs and load additional data from it looks somewhat wrong
but to get a working cfg you can chroot into arch from ubuntu: https://wiki.archlinux.org/title/Chroot - although I still recommend booting an arch install media
Offline
Is there a way to check/configure/remake my grub.cfg (Arch partition) from, say my Ubuntu partition?
You can install the arch-install-scripts package in Ubuntu, which will provide arch-chroot(8) so you can follow that section of cryptearth's ArchWiki link (grub-mkconfig needs the API filesystems mounted to detect the drives).
I can see the vmlinuz and initramfs.img files
Are you using a separate /boot/ partition for Arch?
the grub.cfg
That contains no menuentries, which is strange, but it explains the "grub>" prompt. Did you try the `set` command from the "grub>" prompt? Did it confirm the Arch partition as the source of $configfile?
Jin, Jiyan, Azadî
Offline
Have been trying to chroot from USB installation media, but getting errors.
My boot partition is /dev/sda1 and my arch partition is /dev/nvme0n1p9. I mount them respectively to /mnt/boot and /mnt.
When I try to arch-chroot to /mnt directly, i get error that
mount: /mnt/proc: mount point does not exist.
dmesg(1) may have more information after failed mount system call
I think this is because all filesystem stuff (/bin /boot /dev /efi, etc, etc) is in the /@ directory in my arch partition root. So I try to arch-chroot /mnt/@ instead, which works, but also gives me a
WARNING: /mnt/@ is not a mountpoint. This may have undesirable side effects.
From here, I try to
grub-mkconfig -o /boot/grub/grub.cfg
and get an error that
/usr/bin/grub-probe: error: cannot find a device for / (is /dev mounted?).
Stumped. Don't know how to move forward from here.
Offline
Try
# mount -o subvol=@ /dev/nvme0n1p9 /mnt
# mount /dev/sda1 /mnt/boot
# arch-chroot /mnt
Last edited by Head_on_a_Stick (2024-09-17 17:05:54)
Jin, Jiyan, Azadî
Offline
Try
# mount -o subvol=@ /dev/nvme0n1p9 /mnt # mount /dev/sda1 /mnt/boot # arch-chroot /mnt
Nice, that got me in. I get an error though,
line 270: /boot/grub/grub.cfg.new: no such file or directory
when I try to grub-mkconfig.
On another note, I wanted to run general updates on my Arch partition since I haven't been on it in a while. Hoping maybe some update here will fix my issue. Set up my network connection and ran pacman -Syu. Theres like 4gb of updates. Get to the end of it and I get errors telling me could not get file information for boot/intel-ucode.img, partition /boot is read only, not enough free disk space, no packages updated. How can I navigate around this to get my updates?
Offline
line 270: /boot/grub/grub.cfg.new: no such file or directory
when I try to grub-mkconfig
Check the contents of /boot/, that message will be shown if there is no /boot/grub/ directory.
Theres like 4gb of updates. Get to the end of it and I get errors telling me could not get file information for boot/intel-ucode.img, partition /boot is read only, not enough free disk space, no packages updated. How can I navigate around this to get my updates?
You will have to upgrade in stages using https://wiki.archlinux.org/title/Arch_Linux_Archive and following the news page recommendations as you go. Good luck!
Jin, Jiyan, Azadî
Offline
Is there a way to verify which of my partitions should be the boot partition? I have Windows (i think /dev/nvme0n1p3), Ubuntu (root on /dev/nvme0n1p5), and Arch (/dev/nvme0n1p9) as operation system partitions. I have two EFI partitions, /dev/sda2 and /dev/nvme0n1p1 and I suspect that I may have mounted the wrong partition as /mnt/boot when i ran my pacman -Syu updates from earlier because I am getting notifications that the partition (nvme0n1p1) is full. Also, when I chroot and look at /boot, it seems like this could've been an arch boot partition.
My /etc/fstab lists /dev/nvme0n1p1 in there alongside of my Arch partition, nvme0n1p9. I wonder if it shouldn't be /dev/sda2 in there.
Offline
Arch /boot/ partitions will contain vmlinuz-* without a version number whereas Ubuntu uses versioned kernel images.
Check the EFI system partitions for /EFI/grub/ or /EFI/Arch/, depending on which --bootloader-id option was passed to the grub-install command.
Jin, Jiyan, Azadî
Offline