pieroproietti / penguins-eggs

On the road of Remastersys, Refracta, Systemback and father Knoppix!
https://penguins-eggs.net
374 stars 41 forks source link

In Arch linux with btrfs subvolumes vmlinuz-linux not found by dad and no configuration generated #354

Open Apocalyt opened 4 months ago

Apocalyt commented 4 months ago

Command: sudo eggs dad -d Produces on fresh install of penguins-eggs output:

command: dad -d

Daddy, what else did you leave for me?
- creating configuration dir...
Due the lacks of calamares package set force_installer = false
/_active/rootvol/boot/vmlinuz-linux not exists!

Contents of fstab:

# Static information about the filesystems.
# See fstab(5) for details.

# <file system> <dir> <type> <options> <dump> <pass>
# /dev/sda3 LABEL=orion
UUID=dfb671f6-e1c2-4e30-8193-3c91e9e6f6f8       /               btrfs           rw,noatime,compress=lzo,ssd,discard=async,space_cache=v2,subvol=/_active/rootvol        0 0

# /dev/sda1
UUID=B005-4C4C          /boot/efi       vfat            rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro   0 2

# /dev/sda3 LABEL=orion
UUID=dfb671f6-e1c2-4e30-8193-3c91e9e6f6f8       /home           btrfs           rw,noatime,compress=lzo,ssd,discard=async,space_cache=v2,subvol=/_active/homevol        0 0

# /dev/sda3 LABEL=orion
UUID=dfb671f6-e1c2-4e30-8193-3c91e9e6f6f8       /mnt/defvol     btrfs           rw,noatime,compress=lzo,ssd,discard=async,space_cache=v2,subvol=/       0 0

# /dev/sda2
UUID=56f5f8f7-ffa3-4aeb-a636-7776e5bb5041       none            swap            defaults        0 0

contents of boot directory, where vmlinuz-linux is found:

ls /boot
efi  grub  initramfs-linux-fallback.img  initramfs-linux.img  intel-ucode.img  syslinux  vmlinuz-linux

I think the issue is that the parsing for location of vmlinuz-linux doesn't understand the btrfs subvolume setup, where /dev/sda3 contains _active and _snapshots subvolumes and /_active/rootvol subvolume in /dev/sda3 is mounted to / -directory. Instead it tries to find _active from under the filesystem / -directory, which obviously doesn't exist.

The idea of this setup is that all snapshots of subvolumes are available under /_snapshots in /dev/sda3 and the snapshotted files can then be accessed through /mnt/defvol, where the /dev/sda3 is mounted.

orion% ls /mnt/defvol
_active  _snapshots
orion% ls /mnt/defvol/_active
homevol  rootvol
orion% ls /mnt/defvol/_active/rootvol
bin  boot  dev  etc  home  lib  lib64  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

I think it should figure out that subvol=/_active/rootvol of /dev/sda3 is mounted to / and be able to remove the /_active/rootvol from the attempted path somehow.

pieroproietti commented 3 months ago

Hi Apocalyt you're probably right, I'm not too familiar with btrfs, anyway this is the code that retrieve vmlinuz, I hope you can give me some suggestions.

Thanks