GNU bug report logs -
#33517
Problem booting when using btrfs subvolume for /gnu/store
Previous Next
Reported by: Christopher Baines <mail <at> cbaines.net>
Date: Mon, 26 Nov 2018 20:29:02 UTC
Severity: normal
Done: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
I also lack the experience with guile but it sounds very sensible to
me. I can confirm that just fixing the grub-menu entries with the
subvol path works. I have been invoking guix system reconfigure with a
bash script that in the end calls a grubfix function below with the
path to each newly generated grub.cfg:
In my case the subvol is located at /snap2_rw
function grubfix(){
sudo sed -i "s/linux\ \/gnu/linux\ \/snap2_rw\/gnu/g" "$1"
sudo sed -i "s/initrd\ \/gnu/initrd\ \/snap2_rw\/gnu/g" "$1"
sudo sed -i "s/--set\ \/gnu/--set\ \/snap2_rw\/gnu/g" "$1"
}
Your suggestion to do this directly in config.scm sounds great.
Best regads,
David L
On Sun, 27 Jan 2019, Svante v. Erichsen wrote:
> The subvolume and the mount point are independent issues.
>
> For example, I have a subvolume named @ as root volume:
>
> (file-system
> (device "/dev/mapper/hd")
> (mount-point "/")
> (type "btrfs")
> (options "compress=lzo,ssd,subvol=@"))
>
> It also appears that the subvolume name must be prepended to the path as if it
> just was an ordinary directory (grub.cfg):
>
> …
> linux /@/gnu/store/…
> …
>
> I could not yet confirm this from documentation, but it works like that for me.
> (I semi-manually edit the generated grub.cfg currently.)
>
> So, additionally to stripping the mount point, the subvolume needs to be
> prepended (grub.scm):
>
> (let ((kernel (prepend-subvol device-subvol
> (strip-mount-point device-mount-point
> kernel)))
> (initrd (prepend-subvol device-subvol
> (strip-mount-point device-mount-point
> initrd))))
> …)
>
> This would mean that the menu-entry structure needs the subvol information.
> However, I wouldn't want to parse this from the options field in the file-system
> entry, so I'd propose allowing a list there, maybe like this:
>
> (file-system
> (device "/dev/mapper/hd")
> (mount-point "/")
> (type "btrfs")
> (options '(("compress" . "lzo")
> "ssd"
> ("subvol" . "@"))))
>
> On the other hand, it might be surprising that declaring the options like this
> would work for subvols, while using a string doesn't, especially when some older
> documentation/blogs/gists is still hanging around on the internet, so maybe it
> would be necessary to parse the options anyway (to this list structure).
>
> I'm lacking experience in guix and guile, so making this work and submit a patch
> will take me some time.
>
> Do you think this is sensible?
>
>
> --
> Svante von Erichsen
>
> GPG fingerprint: A78A D4FB 762F A922 A495 57E8 2649 9081 6E61 20DE
>
This bug report was last modified 5 years and 80 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.