You are not logged in.
Hi,
I´m trying to install arch on a Lenovo Thinkpad X1 (UEFI). I installed grub as described in the wiki, but grub does not start up at all when the machine is powered on. sda is partitioned (GPT) as follows:
1. 512 MB: ESP (EF00) = sda1
2. remaining space: LVM (8E00)
a.) boot (300 MB)
b.) Swap (4 GB)
c.) root (25 GB)
d.) home (remaining space)
fstab:
LABEL=root / ext4 rw,relatime,data=ordered 0 1
LABEL=home /home ext4 rw,relatime,data=ordered 0 2
LABEL=boot /boot ext4 rw,relatime,data=ordered 0 2
/dev/sda1 /boot/efi vfat rw,relatime,fmask=0022,codepage=437;iocharset=iso8859-1,shortname=mixed,errors=remount-ro 0 2
/dev/mapper/lvm-spwap none swap defaults 0 0
I installed grub via
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=arch_grub --recheck --debug
No errors were reported, x86_64-efi is now present in /boot/grub. /boot/efi is now populated by the folder EFI/arch_grub, which contains grubx64.efi
grub.cfg was generated within the chroot by
grub-mkconfig -o /boot/grub/grub.cfg
This command gives somes warnings:
WARNING: Failed to connect to lvmetad: No such file or directory. Falling back to internal scanning.
/run/lvm/lvmetad.socket: connect failed: No such file or directory
done
If I try to activate lvmetad.service by systemctl I get the error:
Running in chroot, ignoring request.
Leaving the chroot (lvmetad is running), 'grub-mkconfig -o /mnt/boot/grub/grub.cfg' results in:
Generating grub configuration file ...
Found memtest86+ image: /boot/memtest86+/memtest.bin
/usr/bin/grub-probe: warning:unknown device type dm-0
.
done
After rebooting I just get a blank screen, grub is not loading at all. I have absolutely no idea, what went wrong during the installation, therefore I would be glad if you gave me some input. Thanks!
EDIT: I just installed arch with the legacy BIOS enabled instead of UEFI. The problem is very similar with this configuration. Instead of a loaded Grub I only get a blinking cursor.
Last edited by tyr0 (2014-02-17 00:05:41)
Offline
I want to write down these findings in a second post, since the problem seems to be not strictly UEFI related:
I´ve set up the machine with Bios legacy. I partitioned the SDD (sdb) as follows:
sdb1 - EF02 - ext4 --> /boot partition
sdb2 - 8E00 - ext4 --> LVM
a.) /dev/lvm/swap
a.) /dev/lvm/root
a.) /dev/lvm/home
I´ve set up the system as described, everything went well. Then I installed syslinux instead of Grub, which was installed by "syslinux-install_update -i -a -m". Output:
Syslinux BIOS install successful
Attribute Legacy Bios Bootable Set - /dev/sdb1
Installed MBR (/usr/share/syslinux/bios/gptmbr.bin) to /dev/sdb
Everything looks great. Upon reboot I end again in a black screen without syslinux showing up. I have absolutely no idea what to do next.
Offline
do you have lvm2 as hook in mkinitcpio.conf ?
also check the kernel boot line in /boot/syslinux/syslinux.cfg , it should have something like this :
root=/dev/mapper/volumegroupname-logicalvolumename
Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.
clean chroot building not flexible enough ?
Try clean chroot manager by graysky
Offline
Thank you for you reply. mkinitcpio.conf contains lvm2 between the hooks block and filessystem and syslinux.cfg contains:
APPEND root=/dev/mapper/lvm-root rw
Syslinux prompt does not show up upon reboot, I only get a black screen.
When I try to manually install syslinux, I get the following output:
cp -r /usr/lib/syslinux/bios/*.c32 /boot/syslinux/ --> no errors
extlinux --install /boot/syslinux --> /boot/syslinux is device /dev/sdb1
sgdisk /dev/sdb1 --attributes=1:set:2 --> error below
Found invalid GPT and valid MBR; converting to GPT format in memory
Exact type match not found for type code 6F00; assigning type code for 'Linux filesystem'
Warning! Secondary partition table overlaps the last partition by 5224866608 blocks!
You will need to delete this partition or resize it in another utility.
Non-GPT disk; not saving changes. Use -g to override.
I have no idea what this means. The automatic install worked flawlessly. Moreover, I´m able to set the bootflag "legacy-BIOS bootable" with gdisk without problems. This error only occurs when using sgdisk.
"dd bs=440 conv=notrunc count=1 if=/usr/lib/syslinux/bios/gptmbr.bin of=/dev/sdb"
results in:
1+0 records in
1+0 records out
440 bytes (440 B) copied, 0.00388746 s, 113 kB/s
Last edited by tyr0 (2014-02-15 15:40:46)
Offline
I´m completely lost now. To further simplify the situation, I did a fresh install with Bios legacy enabled and without an lvm. I did just a plain gpt partitioning:
sdb:
a.) /dev/sdb1 -> /mnt/boot
b.) /dev/sdb2 -> swap
c.) /dev/sdb3 -> /mnt
d.) /dev/sdb4 -> /mnt/home
The installation was fine. I installed and configured syslinux without errors. However, upon restart I ended up with a black screen. Then I repartitioned the disk and added a Bios boot partition and installed/configured grub ("Installation finished. No error reported."). Again I got only a black screen. Something is really wrong with my machine, even this simple setup failed. I would be happy about any input.
Offline
If i read things correctly, sdb is a GPT disk ?
which program did you use to format the partitions ?
Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.
clean chroot building not flexible enough ?
Try clean chroot manager by graysky
Offline
Yes, sdb is a gpt disk. It was partitioned with gdisk. Actually the gpt format is the only thing, which all variants tested had in common.
To sum it up: Regardless of using bios legacy or UEFI, I am not able to start a boot loader (tested syslinux, grub) when the machine is powered on. I only get a black screen.
EDIT: I have to apologize. I did a fresh install on the system with UEFI enabled, now syslinux is showing up (most likely because edited /boot/efi/EFI/syslinux/syslinux.cfg and not /boot/syslinux/syslinux.cfg :-) ). Nevertheless, syslinux can´t boot arch because of:
../../../../vmlinuz-linux... failed: No such file or directory
vmlinuz-linux and initramfs-linux.img are present in /boot.
My /boot/efi/EFI/syslinux/syslinux.cfg looks like:
UI menu.c32
PROMPT 0
MENU TITLE Boot Menu
TIMEOUT 50
DEFAULT arch
LABEL arch
MENU LABEL Arch Linux
LINUX ../../../../vmlinuz-linux
APPEND root=/dev/sda2 rw
INITRD ../../../../initramfs-linux.img
LABEL archfallback
MENU LABEL Arch Linux Fallback
LINUX ../../../../vmlinuz-linux
APPEND root=/dev/sda2 rw
INITRD ../../../../initramfs-linux-fallback.img
I have to say that I created a separted boot partition:
sda1 (ESP) -> mounted to /boot/efi
sda2 -> mounted to /boot
sda3 (LVM) -> mounted to /
Last edited by tyr0 (2014-02-16 19:50:48)
Offline
First, I note that you're specifying "root=/dev/sda2" in your boot loader configuration; but you reported using LVM, with your root filesystem on /dev/lvm/root. The LVM partition is not a valid root specification to pass to the kernel. Fixing this detail might get you booted.
If not, try using the rEFInd CD-R or USB flash drive image to boot. Ideally, it should show you one or more Linux kernel options. To boot, though, you'll probably have to hit F2 or Insert twice to open a simple line editor and add "root=/dev/lvm/root" (or whatever your correct root specification is) to the kernel options. rEFInd tends to be easier to set up than most other boot programs. It's certainly less finicky than GRUB, which is about the most difficult-to-configure boot loader ever devised by human minds.
Offline
Thank you for your reply. You are absolutely right of course. It was just a copy-error. Actually I specified "root=LABEL=root", which should be okay. I think syslinux had a problem with /boot being a separate partition. So I switched to grub which i working perfectly fine now, despite the config is a mess as you indicated. I will try rEFInd, thank you for the link.
So the problem is solved and I am still not sure why. Probably because of the new gpt table. Thank you for your help, I´ll mark this as solved.
Offline