You are not logged in.
Hi,
I did a standard pacman -Syu command yesterday. Since then the systems hangs when it tries to load the initial ramdisk.
My system is over ten years old and has a separate /boot partition at /dev/sda2. The bootloader is grub. There is a MBR on /dev/sda.
To fix it I have tried:
- download the latest arch linux iso and put it on a USB stick
- boot the USB stick
- mount the root disk of my system at /mnt
- mount the boot partition at /mnt/boot
- arch-chroot /mnt
- pacman -S linux grub to reinstall grub and linux
- grub-install --target=i386-pc /dev/sda
- grub-mkconfig -o /boot/grub/grub.cfg
I once added
set pager=1
set debug=all
to the generated grub.cfg file and got screens of output which ended shortly after some initrd messages which did not look like errors to me. I took a photo of the screen.
I've just tried mkinitcpio -P to reset all the initramfs's.
Any ideas what I should try now.
Thanks,
Jonathan
Last edited by jclark (2023-08-29 15:30:06)
Offline
Before we take a look at the photo you didn't link - can you install and boot the LTS kernel?
Is there still free space on the boot partition?
Online
Thanks for your suggestion.
I have installed linux-lts, updated the /boot/grub/grub.cfg file, booted the lts kernel, with the same result. Hangs after Loading initial ramdisk . Still have 100MB on the boot partition.
I didn't post the photo because I read something that said they were frowned on here . I will now add those debug lines to the lts entry in the cfg,
and take another photo and find somewhere to stick it, and stick a link to it here.
Offline
You can perfectly fine upload photos eg. at imgur and link them, you're just asked to please not embed huge photos and usually to not post pictures of text, but it's going to be close to impossible to dump the actual text in your situation.
Online
https://photos.app.goo.gl/PGmxwnChuSkEA16g8
is I think the last screen.
More thanks
Offline
There's a lot of GPT for "There is a MBR on /dev/sda"?
fdisk -l /dev/sda
and post your grub.cfg
Did anything outside the OS change?
BIOS update/reset? Is there a parallel windows?
https://wiki.archlinux.org/title/Partit … PT_and_MBR
Online
Hi,
I'm not aware anything particular changed other than what was changed by the pacman -Syu. The machine has no other OS on it, there have been no changes to the BIOS, apart from boot order as I switch between the rescue system and testing the system I care about.
fdisk -l /dev/sda
Disk /dev/sda: 465.76 GiB, 500107862016 bytes, 976773168 sectors
Disk model: Seagate BarraCud
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 89231D5D-06F8-4130-95E1-8819BA5B0A56
Device Start End Sectors Size Type
/dev/sda1 2048 956293119 956291072 456G Linux LVM
/dev/sda2 956293120 957112319 819200 400M Linux filesystem
/dev/sda3 957112320 957132799 20480 10M BIOS boot
/dev/sda4 957132800 976007167 18874368 9G Linux swap
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 lvm
insmod ext2
set root='lvmid/0v9nTT-Wczd-acX9-tFrM-IoSR-V7DV-PjWXMH/ZWJikM-MfnF-RqiY-WT0z-Txok-AIMk-sRbW6V'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint='lvmid/0v9nTT-Wczd-acX9-tFrM-IoSR-V7DV-PjWXMH/ZWJikM-MfnF-RqiY-WT0z-Txok-AIMk-sRbW6V' a4225767-a322-46e7-99c2-a868a4c4a6da
else
search --no-floppy --fs-uuid --set=root a4225767-a322-46e7-99c2-a868a4c4a6da
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=10
# Fallback normal timeout code in case the timeout_style feature is
# unavailable.
else
set timeout=10
fi
### END /etc/grub.d/00_header ###
### BEGIN /etc/grub.d/10_linux ###
menuentry 'Arch Linux' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-a4225767-a322-46e7-99c2-a868a4c4a6da' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod ext2
set root='hd0,gpt2'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2 182ecff5-935a-49bd-90f1-0fe487ecc782
else
search --no-floppy --fs-uuid --set=root 182ecff5-935a-49bd-90f1-0fe487ecc782
fi
echo 'Loading Linux linux.bak ...'
linux /vmlinuz-linux.bak root=/dev/mapper/vg01-arch rw loglevel=3 quiet
}
submenu 'Advanced options for Arch Linux' $menuentry_id_option 'gnulinux-advanced-a4225767-a322-46e7-99c2-a868a4c4a6da' {
menuentry 'Arch Linux, with Linux linux.bak' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux.bak-advanced-a4225767-a322-46e7-99c2-a868a4c4a6da' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod ext2
set root='hd0,gpt2'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2 182ecff5-935a-49bd-90f1-0fe487ecc782
else
search --no-floppy --fs-uuid --set=root 182ecff5-935a-49bd-90f1-0fe487ecc782
fi
echo 'Loading Linux linux.bak ...'
linux /vmlinuz-linux.bak root=/dev/mapper/vg01-arch rw loglevel=3 quiet
}
menuentry 'Arch Linux, with Linux linux.bak (recovery mode)' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux.bak-recovery-a4225767-a322-46e7-99c2-a868a4c4a6da' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod ext2
set root='hd0,gpt2'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2 182ecff5-935a-49bd-90f1-0fe487ecc782
else
search --no-floppy --fs-uuid --set=root 182ecff5-935a-49bd-90f1-0fe487ecc782
fi
echo 'Loading Linux linux.bak ...'
linux /vmlinuz-linux.bak root=/dev/mapper/vg01-arch rw single
}
menuentry 'Arch Linux, with Linux linux-lts' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-lts-advanced-a4225767-a322-46e7-99c2-a868a4c4a6da' {
set pager=1
set debug=all
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod ext2
set root='hd0,gpt2'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2 182ecff5-935a-49bd-90f1-0fe487ecc782
else
search --no-floppy --fs-uuid --set=root 182ecff5-935a-49bd-90f1-0fe487ecc782
fi
echo 'Loading Linux linux-lts ...'
linux /vmlinuz-linux-lts root=/dev/mapper/vg01-arch rw loglevel=3 quiet
echo 'Loading initial ramdisk ...'
initrd /initramfs-linux-lts.img
}
menuentry 'Arch Linux, with Linux linux-lts (fallback initramfs)' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-lts-fallback-a4225767-a322-46e7-99c2-a868a4c4a6da' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod ext2
set root='hd0,gpt2'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2 182ecff5-935a-49bd-90f1-0fe487ecc782
else
search --no-floppy --fs-uuid --set=root 182ecff5-935a-49bd-90f1-0fe487ecc782
fi
echo 'Loading Linux linux-lts ...'
linux /vmlinuz-linux-lts root=/dev/mapper/vg01-arch rw loglevel=3 quiet
echo 'Loading initial ramdisk ...'
initrd /initramfs-linux-lts-fallback.img
}
menuentry 'Arch Linux, with Linux linux-lts (recovery mode)' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-lts-recovery-a4225767-a322-46e7-99c2-a868a4c4a6da' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod ext2
set root='hd0,gpt2'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2 182ecff5-935a-49bd-90f1-0fe487ecc782
else
search --no-floppy --fs-uuid --set=root 182ecff5-935a-49bd-90f1-0fe487ecc782
fi
echo 'Loading Linux linux-lts ...'
linux /vmlinuz-linux-lts root=/dev/mapper/vg01-arch rw single
echo 'Loading initial ramdisk ...'
initrd /initramfs-linux-lts-fallback.img
}
menuentry 'Arch Linux, with Linux linux' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-advanced-a4225767-a322-46e7-99c2-a868a4c4a6da' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod ext2
set root='hd0,gpt2'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2 182ecff5-935a-49bd-90f1-0fe487ecc782
else
search --no-floppy --fs-uuid --set=root 182ecff5-935a-49bd-90f1-0fe487ecc782
fi
echo 'Loading Linux linux ...'
linux /vmlinuz-linux root=/dev/mapper/vg01-arch rw loglevel=3 quiet
echo 'Loading initial ramdisk ...'
initrd /initramfs-linux.img
}
menuentry 'Arch Linux, with Linux linux (fallback initramfs)' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-fallback-a4225767-a322-46e7-99c2-a868a4c4a6da' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod ext2
set root='hd0,gpt2'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2 182ecff5-935a-49bd-90f1-0fe487ecc782
else
search --no-floppy --fs-uuid --set=root 182ecff5-935a-49bd-90f1-0fe487ecc782
fi
echo 'Loading Linux linux ...'
linux /vmlinuz-linux root=/dev/mapper/vg01-arch rw loglevel=3 quiet
echo 'Loading initial ramdisk ...'
initrd /initramfs-linux-fallback.img
}
menuentry 'Arch Linux, with Linux linux (recovery mode)' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-recovery-a4225767-a322-46e7-99c2-a868a4c4a6da' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod ext2
set root='hd0,gpt2'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2 182ecff5-935a-49bd-90f1-0fe487ecc782
else
search --no-floppy --fs-uuid --set=root 182ecff5-935a-49bd-90f1-0fe487ecc782
fi
echo 'Loading Linux linux ...'
linux /vmlinuz-linux root=/dev/mapper/vg01-arch rw single
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/25_bli ###
if [ "$grub_platform" = "efi" ]; then
insmod bli
fi
### END /etc/grub.d/25_bli ###
### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###
### BEGIN /etc/grub.d/30_uefi-firmware ###
if [ "$grub_platform" = "efi" ]; then
fwsetup --is-supported
if [ "$?" = 0 ]; then
menuentry 'UEFI Firmware Settings' $menuentry_id_option 'uefi-firmware' {
fwsetup
}
fi
fi
### END /etc/grub.d/30_uefi-firmware ###
### 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 ###
It's way too long because at some point I renamed all the grub files to grub.bak (e.g. initramfs.... to initramfs....bak) to avoid deleting things, but making sure my process was genuinely recreating them. So there is lots of duplication in there.
And now I will go and re-read that link.
Offline
I take your point about a lot of GPT....
Arch linux was installed on this machine some time around 2013 I think. That's when I partitioned the disks etc. I haven't touched the partitioning since then I don't think - it's not something I do often. I will have read up about it when I installed the system, but haven't had to think about it since.
Offline
Disklabel type: gpt
This is a https://wiki.archlinux.org/title/GRUB#G … structions situation - but should™ be fine (obviously it's not for some reason)
You could add some "echo '... done'" after the initrd call to see whether we arrive there.
The screenshot suggests hd0 was closed.
Do you have https://wiki.archlinux.org/title/Instal … cpio_hooks in your mkinitcpio.conf?
Online
Thanks again.
I have played around with the hooks a bit. I examined the backup copy I have of the /etc/mkinitcpio.conf from a few days ago - before the pacman -Syu - and I copied the HOOKS line from that. I also tried my own which was
HOOKS= (base systemd udev autodetect modeconf keyboard keymap consolefont block lvm2 filesystem fsck)
(There may be typos in that - I have just re-typed it from notes I made at the time. The mkinitcpio -P command worked.)
System still stopped after "Loading initial ramdisk ..."
Then as you suggested I added
echo 'Initial ramdisk loaded'
after the initrd line, and the echo message was printed. So it got past the initrd, but does that mean the initrd was succesful? It looks like I've run out of places to put echo commands.
I seem to recall back in my Redhat days in the '90s actually building my own kernel, which this feels very like I'm getting into. As I recall, the kernel and the initramfs were inextricably linked. I was not particularly hoping to ever do that again.
I'm now trying to decide between carrying on examining why this system is refusing to boot, vs just reinstalling the whole shooting match from the latest iso. Can't say I'm really enamoured of having to do all the setup - useradd, network configuration, samba configuration, blah blah blah. Any feelings as to which will be the quicker way to get back on air?
Again, thanks for your help and advice.
Offline
Stop press: since I posted that, I have been going through each of the six kernels I have which are linux, linux-fallback initramfs and linux recovery mode, plus the same three options for linux-lts. Both the recovery mode options got past the "Loading initial ramdisk ..." message. The screen cleared and at the top of the next screen was
:: running early hook [udev]
Starting systemd-udevd version 25
Now wondering what this means?
Offline
In that previous post, there is a typo. The version was 254.1-1-arch.
Offline
pacman -Qikk systemd
and try to boot "nomodeset", also see https://wiki.archlinux.org/title/Genera … l_messages to increase the output in the early boot phase.
Online
pacman -Qikk systemd:
Name : systemd
Version : 254.1-1
Description : system and service manager
Architecture : x86_64
URL : https://www.github.com/systemd/systemd
Licenses : GPL2 LGPL2.1
Groups : None
Provides : nss-myhostname systemd-tools=254.1 udev=254.1
Depends On : acl libacl.so=1-64 bash cryptsetup libcryptsetup.so=12-64 dbus iptables kbd kmod libkmod.so=2-64 hwdata libcap libcap.so=2-64 libgcrypt libxcrypt libcrypt.so=2-64 systemd-libs libidn2 lz4 pam libelf libseccomp libseccomp.so=2-64 util-linux libblkid.so=1-64 libmount.so=1-64 xz pcre2 audit libaudit.so=1-64 openssl libcrypto.so=3-64 libssl.so=3-64
Optional Deps : libmicrohttpd: systemd-journal-gatewayd and systemd-journal-remote
quota-tools: kernel-level quota management
systemd-sysvcompat: symlink package to provide sysvinit binaries [installed]
systemd-ukify: combine kernel and initrd into a signed Unified Kernel Image
polkit: allow administration as unprivileged user [installed]
python: Unified Kernel Image with ukify [installed]
curl: systemd-journal-upload, machinectl pull-tar and pull-raw [installed]
gnutls: systemd-journal-gatewayd and systemd-journal-remote [installed]
libbpf: support BPF programs [installed]
libfido2: unlocking LUKS2 volumes with FIDO2 token
libp11-kit: support PKCS#11 [installed]
tpm2-tss: unlocking LUKS2 volumes with TPM2 [installed]
Required By : at-spi2-core bluez-utils colord cups cups-filters gcr-4 gnome-desktop-common libcolord libgudev libinput libpulse libwacom mdadm media-player-info mkinitcpio netctl polkit python-pyudev rtkit subversion systemd-sysvcompat upower vte3
Optional For : None
Conflicts With : nss-myhostname systemd-tools udev
Replaces : nss-myhostname systemd-tools udev
Installed Size : 29.65 MiB
Packager : Christian Hesse <eworm@archlinux.org>
Build Date : Wed Aug 9 15:07:25 2023
Install Date : Tue Aug 15 16:24:08 2023
Install Reason : Installed as a dependency for another package
Install Script : Yes
Validated By : Signature
backup file: systemd: /etc/systemd/homed.conf (Modification time mismatch)
backup file: systemd: /etc/systemd/homed.conf (Size mismatch)
backup file: systemd: /etc/systemd/homed.conf (MD5 checksum mismatch)
backup file: systemd: /etc/systemd/homed.conf (SHA256 checksum mismatch)
backup file: systemd: /etc/systemd/journald.conf (Modification time mismatch)
backup file: systemd: /etc/systemd/journald.conf (Size mismatch)
backup file: systemd: /etc/systemd/journald.conf (MD5 checksum mismatch)
backup file: systemd: /etc/systemd/journald.conf (SHA256 checksum mismatch)
backup file: systemd: /etc/systemd/resolved.conf (Modification time mismatch)
backup file: systemd: /etc/systemd/resolved.conf (Size mismatch)
backup file: systemd: /etc/systemd/resolved.conf (MD5 checksum mismatch)
backup file: systemd: /etc/systemd/resolved.conf (SHA256 checksum mismatch)
systemd: 1360 total files, 1 altered file
Offline
Using the recovery linux-lts, and adding nomodeset, the system has booted to a certain extent. It tells me I'm in rescue mode. I can't login as root because root doesn't have a password (that's what sudo is for). So I can't get to maintenance mode. But Alt-Ctrl-F2 gets me another terminal which I have managed to login to, despite the screen switching back to tty1 every 5 seconds (any way to turn that off, so I can work in a tty session?) I would like to look at journalctl.
So we're making progress.
Offline
And to answer my question above, stopping lxdm.service stops the screen going back to tty1 every 5 secs
Offline
To unlock the root account: https://bbs.archlinux.org/viewtopic.php … 1#p2113821
And yes, journal might be very helpful.
Edit: can you boot normally when disabling lxdm?
Last edited by seth (2023-08-28 21:03:08)
Online
How do I mark this solved?
Thanks for all the help.
The nomodeset made it obvious it was to do with the graphics drivers. I read up about AMD radeon drivers. In the end I installed xf86-video-amdgpu, and added MODULES=(amdgpu radeon) to the mkinitcpio.conf, ran mkinitcpio -P and grub-mkconfig -o .... and everything is working again. I'm now wondering why it has been working for years without the amdgpu module (the radeon driver was in use on its own before).
Offline
Did your xorg config previously reference xf86-video-amdgpu?
Otherwise lxdm starts before the GPU was initialized and therefore failed, but it's hard to say why it would not either return to the console or retry until the GPU is ready.
MODULES=(amdgpu radeon) to the mkinitcpio.conf
You most likely only want/need one of those.
Feel free to post journal and xorg log to illustrate what's going on atm and therefore might have failed before.
Mark resolved threads by editing your initial posts subject - so others will know that there's no task left, but maybe a solution to find.
Thanks.
Online
Hi,
You asked earlier if there was any other change at the same time and I said No. I think what happened was that about a month ago I uninstalled linux-firmware, but didn't go on and run mkinitcpio or grub-mkconfig. Nothing broke, so I assumed I didn't need linux-firmware. When I did the pacman -Syu two nights ago, the grub change had come in, so the mkinitcpio, possibly grub-install, and grub-mkconfig ran, there was no radeon module and the console broke. The rest of this thread was you helping me find that out.
You're probably right that I only need the radeon module, but what I have is now working and I can live with an unnecessary amdgpu in the initramfs.
Offline
I solved adding "dis_ucode_ldr" to "GRUB_CMDLINE_LINUX_DEFAULT" in the /etc/default/grub file
Offline