You are not logged in.
I installed arch on my macbook air 6 months ago and have been able to resolve any issues so far by lurking on these great forums. But yesterday while updating my system with pacman I got a kernel panic and force-shut down the machine. The last pacman log entry is "starting full system upgrade".
Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
Kernel Offset: 0x0 from 0xffffffff81000000 (relocation range: 0xffffffff80000000-0xffffffff9fffffff)
drm_kms_helper: panic occured, switching back to text console
Upon reboot it "Started Flush Journal to Persistent Storage..." and timed out after 1'30'' and reported "Dependency failed" for "/boot", "Local File Systems", "/dev/sda3" (my swap partition) and "Swap". It then started an Emergency Shell, however my keystrokes were not registered.
I found out that if I entered an invalid root partition in the kernel parameters I got to a rescue shell, so I did that, mounted my root partition and edited my fstab, commenting out the swap partition entry. On the next boot it didn't search for the swap, but only the /boot partition for which it failed in the same way as before.
I understand that my /boot partition is somehow faulty and I cannot use the emergency shell because the keyboard hook has not been run at that time, but I'm clueless as how to restore my /boot partition or even what caused this problem. I should note that I have enabled early KMS a few days ago, in order to change my console font (I added the i915 module in the mkinitcpio conf).
I've tried to boot using the fallback initrd, but it was exactly the same. On a side note, when I insert an arch installation USB stick my gummiboot doesn't seem to see it, but when I insert my external HDD with a Mac OS X installation on it, it shows another entry and boots into it just fine.
Thanks in advance for any helpful comments
Last edited by hafty (2015-02-23 00:05:44)
Offline
You could just chroot into your system from the Arch live ISO, re-install your kernel image & gummiboot (also check the configuration files) and perform a full system upgrade.
Make sure /boot is mounted correctly before you do this.
If you run into problems with this you should post your gummiboot configuration files, your mkinitcpio.conf, your fstab and the output of:
# parted -l
lsblk -f
Make sure your partitions are properly mounted and you have chroot'd into your system before running these commands.
Offline
Thank you for the input @Head_on_a_Stick.
I kinda cheated my way around configuring gummiboot as I found out it does not automatically look for bootable drives by installing refind.
From the arch live iso I tried to run mkinitcpio and it spit out these lines:
==> Building image from preset: /etc/mkinitcpio.d/linux.preset: 'default'
-> -k /boot/vmlinuz-linux -c /etc/mkinitcpio.conf -g /boot/initramfs-linux.img
==> Starting build: 3.18.6-1-ARCH
-> Running build hook: [base]
-> Running build hook: [udev]
==> ERROR: file not found: `/usr/lib/udev/rules.d/60-persistent-storage.rules'
==> ERROR: file not found: `/usr/lib/udev/rules.d/64-btrfs.rules'
==> ERROR: file not found: `/usr/lib/udev/rules.d/80-drivers.rules'
==> ERROR: file not found: `/usr/lib/udev/scsi_id'
-> Running build hook: [autodetect]
findmnt: error while loading shared libraries: /usr/lib/libudev.so.1: file too short
==> ERROR: failed to detect root filesystem
findmnt: error while loading shared libraries: /usr/lib/libudev.so.1: file too short
-> Running build hook: [modconf]
-> Running build hook: [block]
-> Running build hook: [resume]
-> Running build hook: [filesystems]
-> Running build hook: [keyboard]
-> Running build hook: [fsck]
==> Generating module dependencies
==> Creating gzip-compressed initcpio image: /boot/initramfs-linux.img
==> WARNING: errors were encountered during the build. The image may not be complete.
==> Building image from preset: /etc/mkinitcpio.d/linux.preset: 'fallback'
-> -k /boot/vmlinuz-linux -c /etc/mkinitcpio.conf -g /boot/initramfs-linux-fallback.img -S autodetect
==> Starting build: 3.18.6-1-ARCH
-> Running build hook: [base]
-> Running build hook: [udev]
==> ERROR: file not found: `/usr/lib/udev/rules.d/60-persistent-storage.rules'
==> ERROR: file not found: `/usr/lib/udev/rules.d/64-btrfs.rules'
==> ERROR: file not found: `/usr/lib/udev/rules.d/80-drivers.rules'
==> ERROR: file not found: `/usr/lib/udev/scsi_id'
-> Running build hook: [modconf]
-> Running build hook: [block]
==> WARNING: Possibly missing firmware for module: aic94xx
-> Running build hook: [resume]
-> Running build hook: [filesystems]
-> Running build hook: [keyboard]
-> Running build hook: [fsck]
==> Generating module dependencies
==> Creating gzip-compressed initcpio image: /boot/initramfs-linux-fallback.img
==> WARNING: errors were encountered during the build. The image may not be complete.
my mkinitcpio.conf is default but for ' MODULES="i915" '
parted -l:
Model: ATA APPLE SSD TS064C (scsi)
Disk /dev/sda: 60.7GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 211MB 210MB fat16 EFI System msftdata
2 211MB 49.9GB 49.7GB ext4 Linux filesystem
3 49.9GB 60.7GB 10.7GB fat32 Windows_NTFS_Untitled_2 msftdata
Model: JetFlash Transcend 4GB (scsi)
Disk /dev/sdb: 4049MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
2 129kB 32.6MB 32.5MB primary fat16 esp
lsblk -f:
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
├─sda1 vfat 367B-E3C9
├─sda2 ext4 d299663d-85db-41b1-a455-aa68a54b150d
└─sda3 vfat 62BD-1BDA /root/mp
sdb iso9660 ARCH_201502 2015-02-01-04-35-10-00
├─sdb1 iso9660 ARCH_201502 2015-02-01-04-35-10-00 /run/archiso/bootmnt
└─sdb2 vfat ARCHISO_EFI CBAD-30D3
loop0 squashfs /run/archiso/sfs/airootfs
loop1 ext4 f0ca1199-6a92-4dea-8ca7-c29587a85fa5
└─arch_airootfs ext4 f0ca1199-6a92-4dea-8ca7-c29587a85fa5 /
loop2 ext4 f0ca1199-6a92-4dea-8ca7-c29587a85fa5
└─arch_airootfs ext4 f0ca1199-6a92-4dea-8ca7-c29587a85fa5 /
Last edited by hafty (2015-02-22 20:24:46)
Offline
I kinda cheated my way around configuring gummiboot as I found out it does not automatically look for bootable drives by installing refind.
Please elaborate on this.
From the arch live iso I tried to run mkinitcpio and it spit out these lines:
==> Building image from preset: /etc/mkinitcpio.d/linux.preset: 'default' -> -k /boot/vmlinuz-linux -c /etc/mkinitcpio.conf -g /boot/initramfs-linux.img ==> Starting build: 3.18.6-1-ARCH -> Running build hook: [base] -> Running build hook: [udev] ==> ERROR: file not found: `/usr/lib/udev/rules.d/60-persistent-storage.rules' ==> ERROR: file not found: `/usr/lib/udev/rules.d/64-btrfs.rules' ==> ERROR: file not found: `/usr/lib/udev/rules.d/80-drivers.rules' ==> ERROR: file not found: `/usr/lib/udev/scsi_id' -> Running build hook: [autodetect] findmnt: error while loading shared libraries: /usr/lib/libudev.so.1: file too short ==> ERROR: failed to detect root filesystem findmnt: error while loading shared libraries: /usr/lib/libudev.so.1: file too short -> Running build hook: [modconf] -> Running build hook: [block] -> Running build hook: [resume] -> Running build hook: [filesystems] -> Running build hook: [keyboard] -> Running build hook: [fsck] ==> Generating module dependencies ==> Creating gzip-compressed initcpio image: /boot/initramfs-linux.img ==> WARNING: errors were encountered during the build. The image may not be complete. ==> Building image from preset: /etc/mkinitcpio.d/linux.preset: 'fallback' -> -k /boot/vmlinuz-linux -c /etc/mkinitcpio.conf -g /boot/initramfs-linux-fallback.img -S autodetect ==> Starting build: 3.18.6-1-ARCH -> Running build hook: [base] -> Running build hook: [udev] ==> ERROR: file not found: `/usr/lib/udev/rules.d/60-persistent-storage.rules' ==> ERROR: file not found: `/usr/lib/udev/rules.d/64-btrfs.rules' ==> ERROR: file not found: `/usr/lib/udev/rules.d/80-drivers.rules' ==> ERROR: file not found: `/usr/lib/udev/scsi_id' -> Running build hook: [modconf] -> Running build hook: [block] ==> WARNING: Possibly missing firmware for module: aic94xx -> Running build hook: [resume] -> Running build hook: [filesystems] -> Running build hook: [keyboard] -> Running build hook: [fsck] ==> Generating module dependencies ==> Creating gzip-compressed initcpio image: /boot/initramfs-linux-fallback.img ==> WARNING: errors were encountered during the build. The image may not be complete.
my mkinitcpio.conf is default but for ' MODULES="i915" '
parted -l:
Model: ATA APPLE SSD TS064C (scsi) Disk /dev/sda: 60.7GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 1049kB 211MB 210MB fat16 EFI System msftdata 2 211MB 49.9GB 49.7GB ext4 Linux filesystem 3 49.9GB 60.7GB 10.7GB fat32 Windows_NTFS_Untitled_2 msftdata Model: JetFlash Transcend 4GB (scsi) Disk /dev/sdb: 4049MB Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 2 129kB 32.6MB 32.5MB primary fat16 esp
lsblk -f:
NAME FSTYPE LABEL UUID MOUNTPOINT sda ├─sda1 vfat 367B-E3C9 ├─sda2 ext4 d299663d-85db-41b1-a455-aa68a54b150d └─sda3 vfat 62BD-1BDA /root/mp sdb iso9660 ARCH_201502 2015-02-01-04-35-10-00 ├─sdb1 iso9660 ARCH_201502 2015-02-01-04-35-10-00 /run/archiso/bootmnt └─sdb2 vfat ARCHISO_EFI CBAD-30D3 loop0 squashfs /run/archiso/sfs/airootfs loop1 ext4 f0ca1199-6a92-4dea-8ca7-c29587a85fa5 └─arch_airootfs ext4 f0ca1199-6a92-4dea-8ca7-c29587a85fa5 / loop2 ext4 f0ca1199-6a92-4dea-8ca7-c29587a85fa5 └─arch_airootfs ext4 f0ca1199-6a92-4dea-8ca7-c29587a85fa5 /
Did you mount all your Arch partitions and chroot into your system before running those commands?
Offline
Sorry about that. I did the lsblk and parted out of chroot.
lsblk: error while loading shared libraries: /usr/lib/libudev.so.1: file too short
parted is not installed on my arch
Offline
Can you try a full system upgrade from within the chroot?
# pacman -Syu
The `parted` output would be the same but can you tell me where you have mounted your /boot and root partitions?
Offline
I mounted the root and boot partitions at /mnt and /mnt/boot
# pacman: error while loading shared libraries: /usr/lib/libgssapi_krb5.so.2: file too short
I wouldn't be too opposed to reinstalling my system entirely, as I have wanted to declutter it for some time. Would you consider that the easiest solution?
The thing that bugs me though is that I have no idea of what happened and how I caused it
Offline
That library is from the krb5 package in [core] and the libudev.so.1 is from libsystemd (also in [core]) -- you could try re-installing those packages from /var/cache/pacman/pkg using `pacman -U`...
But yes, maybe a re-install would be simpler (bit of a cop out though).
Offline
Thank you so much for your help. You made my day
Pacman wouldn't run at all so I ran pacman from the live stick with the -r switch to reinstall krb5 and then I could reinstall libsystemd and systemd itself and then mkinitcpio was successful.
I can now boot and it's almost fine, but I think the package management is messed up a bit. I had to regenerate pacman keys and right now i cant establish any secure connections. I also had to reinstall perl with --force because it seems there were some empty files pacman was hesitant to overwrite.
I figured I'd just reinstall every single package and then it would tell me if there were empty files so I could reinstall those which fail with --force. Is that a sensible thing to do?
I'm marking this as solved as my computer is basically running again.
Last edited by hafty (2015-02-23 00:06:26)
Offline
I figured I'd just reinstall every single package and then it would tell me if there were empty files so I could reinstall those which fail with --force. Is that a sensible thing to do?
Have you tried a full system upgrade yet?
You can re-install all native packages using:
# pacman -Qnq | pacman -S
List all foreign packages using:
pacman -Qmq
Offline
I did that and it reported some 4 broken packages (ca-certificates-mozillal amongst others) so I reinstalled them and now everything seems to be working flawlessly.
hafty wrote:I kinda cheated my way around configuring gummiboot as I found out it does not automatically look for bootable drives by installing refind.
Please elaborate on this.
I found out that gummiboot, unlike rEFInd, doesn't automatically look for EFISTUBs except in some special cases, which is why I was able to boot into Mac OS X on an external HDD but not into the arch installation drive. So I booted into OS X and installed rEFInd from there. rEFInd scans all available drives for EFISTUBs and allowed me to boot into the installation media.
Meanwhile, I've installed gummiboot again with an entry for rEFInd, should I need it at some point.
Thanks for your support @Head_on_a_Stick
Offline
You're welcome
Offline