arch-linux-surface
arch-linux-surface copied to clipboard
Precompiled kernel 4.18.20-4 boots to emergency shell on surface pro 4
Hey,
I cloned your repository and installed the precompiled kernel from your latest release as instructed in the readme. However when I try to boot from the kernel I get dropped into the emergency shell with the following message:
Warning: /lib/modules/4.18.20-4-surface/modules.devname not found - ignoring
Starting version 240
arch: clean, 1428820/9732096 files, 9407575/38912000 blocks
mount: /new_root: unknown filesystem type 'ext4'.
You are now being dropped into an emergency shell.
sh: can't access tty: job control turned off
[rootfs ]#
Where did I go wrong?
I don't think this is an issue with the pre-compiled kernels, since it's working fine for me. Maybe try checking out these threads?
https://bbs.archlinux.org/viewtopic.php?id=215432 https://bbs.archlinux.org/viewtopic.php?id=212129
Hello, I got the same problem both with compiled and pre-compiled kernels. I've checked the links you gave but it didn't help. I use reefind dual boot Windows 10/arch last version. When I choose from reefind to use the regular kernel things work, it does not with surface's kernel so reefind does detect surface kernel Booting to regular kernel works tho and as this application patches the kernel I don't need to use surface-kernel that reefind try to boot to, right ? If you use reefind just click f2 or tab or insert and choose the kernel that is NOT named surface-kernel
Same problem here on a surface pro 4. I was using the AUR repo, and tried to update to this kernel, but I end up on the same error as OP. Thankfull the old kernel is still available in my Refind menu.
Ok, I added this line to my refind.conf, in /boot:
"Boot new kernel" "root=PARTUUID=751cc960-c067-014c-b5d2-9bc1f414dc12 add_efi_memmap rootfstype=ext4 initrd=/boot/intel-ucode.img initrd=/boot/initramfs-linux-surface.img loglevel=3 vga=current"
Booting from this solves the issue.
Nice. People seeing this issue don't forget to # blkid to get your root partition PARTUUID I don't have /boot/intel-ucode.img. Are you sure it is refind.conf NOT refind_linux.conf because your text seem to be the kind accepted by refind_linux.conf not refind.conf It works for me without intel-ucode and refind_linux.conf in /boot (ESP being mounted in /efi not /boot obviously).
To chime in, on my system, I am not using rEFInd, but I do have intel-ucode installed. That being said, I'm not sure how much help I will be with respect to this issue. To all of you that have not installed the intel-ucode binary, I'd recommend you do so, because it contains necessary microcode for the processor.
I also use refind for the touch support in the boot menu. Will try the suggested solutions and report back. Thanks everyone for having a look at this.
Sorry for reporting back so late.
Modifying /boot/refind_linux.conf like @realSpok suggested fixed this for me:
"Boot extra" "root=UUID=... rw quiet resume=UUID=... add_efi_memmap rootfstype=ext4 initrd=/boot/intel-ucode.img initrd=/boot/initramfs-linux-surface.img"
But interestingly I can't boot the default kernel with this options. There I have to use the default option:
"Boot with standard options" "root=UUID=... rw quiet resume=UUID=..."

can someone help me please?
i'm using refind too. my refind.conf looks like:

