CachyOS (Arch linux based) ZFS root with GRUB on legacy BIOS
0
votes
0
answers
127
views
I'm trying to install Cachyos on zfs raidz with 4 hdd 6Tb each.
Hardware is HP Microgen 8.
The system boots and goes to restart after the message "Loading initial ramdisk".
Any idea what I miss?
**Each command from the list below completed its work without errors.**
Prepare disks:
for disk in /dev/disk/by-id/ata-TOSHIBA1 \
/dev/disk/by-id/ata-WDC1 \
/dev/disk/by-id/ata-WDC2 \
/dev/disk/by-id/ata-WDC3; do
parted --script $disk mklabel gpt
parted --script $disk mkpart primary 1MiB 2MiB # grub Boot partition
parted --script $disk set 1 bios_grub on
parted --script $disk mkpart primary 2MiB 8GiB # Swap (8GB)
parted --script $disk mkpart primary 8GiB 100% # ZFS
parted --script $disk name 2 swap
parted --script $disk name 3 zfs
done
Create pool:
zpool create -f \
-o compatibility=grub2 \
-O compression=lz4 \
-O acltype=posixacl \
-O xattr=sa \
-O relatime=on \
-O normalization=formD \
-O mountpoint=none \
-O canmount=off \
-o feature@async_destroy=enabled \
-o feature@device_rebuild=enabled \
-o feature@resilver_defer=enabled \
-o feature@spacemap_histogram=enabled \
-o feature@spacemap_v2=enabled \
-o feature@zpool_checkpoint=enabled \
-o ashift=12 \
zfs_pool raidz1 \
/dev/disk/by-id/ata-*-part3
ZFS Datasets:
zfs create -o mountpoint=none zfs_pool/ROOT
zfs create -o mountpoint=/ -o canmount=noauto zfs_pool/ROOT/cachyos
zfs create -o mountpoint=/home -o canmount=on zfs_pool/HOME
zfs create -o mountpoint=/var -o canmount=on zfs_pool/VAR
Mount ZFS:
zpool export zfs_pool
zpool import -R /mnt zfs_pool
zfs mount -a
Generate zpool.cache
zpool set cachefile=/etc/zfs/zpool.cache zfs_pool
Install system:
pacstrap /mnt base base-devel linux-cachyos-lts linux-cachyos-lts-headers zfs grub mdadm nano mkinitcpio sudo linux-firmware networkmanager dhcpcd
Copy zpool.cache
cp /etc/zfs/zpool.cache /mnt/etc/zfs/
Add zfs to HOOKS before 'filesystems' in /mnt/etc/mkinitcpio.conf and COMPRESSION=gzip
Chroot to new system:
arch-chroot /mnt
Recreate initrams:
mkinitcpio -P
Update grub /etc/default/grub:
GRUB_CMDLINE_LINUX="root=ZFS=zfs_pool/ROOT/cachyos boot=zfs"
GRUB_PRELOAD_MODULES="part_gpt part_msdos zfs"
Install grub to HDD:
grub-install --target=i386-pc /dev/disk/by-id/ata-TOSHIBA1
grub-install --target=i386-pc /dev/disk/by-id/ata-WDC1
grub-install --target=i386-pc /dev/disk/by-id/ata-WDC2
grub-install --target=i386-pc /dev/disk/by-id/ata-WDC3
Generate new Grub cfg:
grub-mkconfig -o /boot/grub/grub.cfg
Finish:
exit
unmount -R /mnt
zpool export zfs_pool
reboot
Get reboot after Grub tries to boot CachyOS, shows messages:
Loading Linux linux-cachyos-lts ...
Loading initial ramdisk ...
boot/grub/grub.cfg looks:
...
menuentry 'CachyOS Linux' --class cachyos --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-2fa7a1906badbbdd' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod part_gpt
insmod part_gpt
insmod part_gpt
insmod zfs
set root='hd2,gpt3'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd2,gpt3 --hint-efi=hd2,gpt3 --hint-baremetal=ahci2,gpt3 --hint-bios=hd1,gpt3 --hint-efi=hd1,gpt3 --hint-baremetal=ahci1,gpt3 --hint-bios=hd0,gpt3 --hint-efi=hd0,gpt3 --hint-baremetal=ahci0,gpt3 --hint-bios=hd3,gpt3 --hint-efi=hd3,gpt3 --hint-baremetal=ahci3,gpt3 2fa7a1906badbbdd
else
search --no-floppy --fs-uuid --set=root 2fa7a1906badbbdd
fi
echo 'Loading Linux linux-cachyos-lts ...'
linux /ROOT/cachyos@/boot/vmlinuz-linux-cachyos-lts root=ZFS=zfs_pool/ROOT/cachyos rw root=ZFS=zfs_pool/ROOT/cachyos boot=zfs loglevel=7
echo 'Loading initial ramdisk ...'
initrd /ROOT/cachyos@/boot/initramfs-linux-cachyos-lts.img
}
...
fdisk -l for each disk looks:
fdisk -l /dev/disk/by-id/ata-TOSHIBA1
Disk /dev/disk/by-id/ata-TOSHIBA1: 5.46 TiB, 6001175126016 bytes, 11721045168 sectors
Disk model: TOSHIBA MG04ACA6
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 9A...
Device Start End Sectors Size Type
/dev/disk/by-id/ata-TOSHIBA1-part1 2048 4095 2048 1M BIOS boot
/dev/disk/by-id/ata-TOSHIBA1-part2 4096 16777215 16773120 8G Linux filesystem
/dev/disk/by-id/ata-TOSHIBA1-part3 16777216 11721043967 11704266752 5.5T Linux filesystem
What am I missing?
Asked by KonstantinKuklin
(205 rep)
Jun 13, 2025, 12:22 AM
Last activity: Jun 13, 2025, 05:25 PM
Last activity: Jun 13, 2025, 05:25 PM