danboid / ALEZ

Arch Linux Easy ZFS installer
GNU General Public License v3.0
145 stars 25 forks source link

grub route works - systemd-boot doesn't #40

Closed MolallaComm closed 5 years ago

MolallaComm commented 5 years ago

I've been playing around with this and when I choose the systemd-boot path thru the installer, i end up with a non-bootable system. I've got 2 small sata ssds for mirrored root, and 5 nvmes for data. The boot drives are /dev/sda and /dev/sdb:

When i reboot with the USB key and manually mount /dev/sda1 to see what happened, all i see is a folder hierarchy "env/zedenv-default" with no files in it. I tried running "bootctl --path=/mnt install", which did copy over the efi stub files and create a UEFI boot entry that shows up, but it still won't boot.

When i try the grub path - all other things being equal - it works fine. I would prefer the systemd-boot path, so any ideas why it isn't working? The machine is configured in UEFI mode (as opposed to dual mode) and "efivars --list" works as expected.

Also, after successfully booting via the grub method - i manually created my data pool which worked fine, but notice that it wouldn't automount between reboots (i.e. i'd have to do a "zpool import dpool" after each reboot. I was wondering if fixing this was as simple as maybe just manually rebuilding the initramfs image or something but didn't try it.

johnramsden commented 5 years ago

I just tested a install on a mirror with the latest ISO and I was able to boot with systemd-boot. I'm not sure why you had an issue.

The fact that you didn't have any of the UEFI entries makes me think something's failing related to the bootctl command. Did you try the install more than once?

Could you maybe post your resulting fstab? It should look something like this:

# zroot/ROOT/default
zroot/ROOT/default      /               zfs             rw,noatime,xattr,posixacl       0 0

# zroot/data/home
zroot/data/home         /home           zfs             rw,xattr,posixacl       0 0

# /dev/sda1 LABEL=zroot
UUID=052E-92F8          /mnt/efi        vfat            rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro       0 2

# /mnt/efi/env/zedenv-default
/mnt/efi/env/zedenv-default     /boot           none            rw,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro,bind   0 0

Maybe also post your partition layout:

blkid /dev/sda[1-2] && fdisk -l /dev/sda
blkid /dev/sdb[1-2] && fdisk -l /dev/sdb

Just to verify, when you manually ran bootctl, you mounted /dev/sda1 to /mnt, and ran:

bootctl --path=/mnt install

You might want to also confirm that there are kernels in env/zedenv-default. If there aren't, that might be the problem, in which case you'd want to.

MolallaComm commented 5 years ago

Thanks for the tips. I installed proxmox 6 on the machine because its installer supports mirrored ZFS root via systemd-boot and it worked. I collected basically all the stuff you mentioned above off it so i'd have a working setup to go on, and plan on retrying alez today if I have time (might try it in a VM too since it works for you - it may be something machine specific). I should be able to figure it out and will let you know what I find. I really like your installer because it is very easy to look at the script and understand what is going on.

danboid commented 5 years ago

AFAIK Proxmox doesn't give you the option of using the systemd bootloader, it is GRUB only but if it works for you then great! Please do let us know if you work out why ALEZ wasn't working for you.

MolallaComm commented 5 years ago

I installed again, and it worked this time. One thing i noticed though is that the files on esp partitions /dev/sda1 and /dev/sdb1 aren't the same after the install finishes. The files on /dev/sda1 looked right this time, but the files on /dev/sdb1 were still the proxmox stuff. Before rebooting, just to be safe, I mounted both and rsynced the proper stuff to the other disk with the --delete flag so they would be mirrors of each other. This may have been my initial problem, in that in the supermicro UEFI setup for boot order it is very hard to tell which disk is which due to poor UI design on their part and maybe they were backwards.

FWIW, version 6 of proxmox which just came out a few days ago does support systemd boot both per my observation and in the release notes if you care to check them out.

danboid commented 5 years ago

You did say v6 - great to hear PVE has got systemd boot support now! I'll have to check that out.

Maybe we should re-open this?

johnramsden commented 5 years ago

The reason for the files not being there on one partition is that right now the script does not mirror the UEFI partitions and just installs to the one you select. If you want redundancy, doing what you did is your best bet, however you should also probably set up a recurring task to keep them in sync if you wanted to retain the redundancy.