|
From: | Zacchaeus Scheffer |
Subject: | bug#50788: Swapfile on Btrfs does not start at boot |
Date: | Mon, 27 Sep 2021 11:37:02 -0400 |
Hello John and Zacchaeus,
A month ago I open a thread in guix-devel titled “Using a swapfile on btrfs for
hibernation”¹ describing in depth my setup about your specific issue but it had
no response so far. It should be detailled enought for you to reproduce a
similar setup and if not I would like your feedbakc on it.
John Kehayias <john.kehayias@protonmail.com> writes:
> This has been discussed a few times on #guix, with some having success, but mostly it seems not. The issue is having a swapfile (maybe also for partition?) on Btrfs and swap not being activated on boot. In my case, I can manually start with `sudo herd start swap-/swap/swapfile` and it will work fine. There might be an issue with when different filesystems are loaded with Btrfs subvolumes? I have my swap as a file on a subvolume.
>
>>From syslog, just before and after the only "swap" related message:
[...]
> Checking the status of the service shows:
[...]
> This is the file-systems and swap part of my system configuration:
Following are the same output as yours but from a working setup.
--8<---------------cut here---------------start------------->8---
# dmesg
[...]
[ 6.393304] shepherd[1]: Service udev has been started.
[ 6.431318] Adding 32488200k swap on /swap/swapfile. Priority:-2 extents:2 across:32706248k FS
[ 6.433275] shepherd[1]: Service swap-/swap/swapfile has been started.
[ 6.434347] shepherd[1]: Service user-file-systems has been started.
[ 6.469352] shepherd[1]: Service file-system-/boot/efi has been started.
[ 6.535679] shepherd[1]: Service file-system-/home has been started.
[...]
--8<---------------cut here---------------end--------------->8---
--8<---------------cut here---------------start------------->8---
# herd status swap-/swap/swapfile
Status of swap-/swap/swapfile:
It is started.
Running value is #t.
It is enabled.
Provides (swap-/swap/swapfile).
Requires (udev).
Conflicts with ().
Will not be respawned.
--8<---------------cut here---------------end--------------->8---
Here are the file-systems and swap-devices fields of my operating-system:
--8<---------------cut here---------------start------------->8---
(file-systems
(append (list (file-system
(mount-point "/boot/efi")
(device (uuid "588A-2266" 'fat32))
(type "vfat"))
(file-system
(mount-point "/swap")
(device (uuid "2ab8e658-5878-4acd-ba33-8a46707a3828" 'btrfs))
(type "btrfs")
(needed-for-boot? #t)
(options "compress=zstd,subvol=swap")))
(hash-map->list
(lambda (mount-point subvolume)
(file-system
(mount-point mount-point)
(device (uuid "2ab8e658-5878-4acd-ba33-8a46707a3828" 'btrfs))
(type "btrfs")
(options (string-append "compress=zstd" ",subvol=" subvolume))))
(alist->hash-table '(("/" . "guix-system")
("/home" . "home")
;; ("/swap" . "swap")
("/mnt/btrfs-root" . "/"))))
%base-file-systems))
(swap-devices (list "/swap/swapfile"))
--8<---------------cut here---------------end--------------->8---
> Hope this is helpful in tracking down what is happening, I know I'm not alone in this issue.
I think you are just missing “(needed-for-boot? #t)” on your swap subvolume,
even tho you shouldn't need to have it mounted from the initramfs (except if you
want to hibernate on your swapfile). On the thread previsouly cited¹, I suggest
two new records “swap-file” and “swap-device” where it would make sense to add
an additional “dependecies” field, similar to the one in ”file-system” record,
which would list the “file-system” to be mounted before activating that swap
file (or device).
Hope it helps.
¹ https://yhetil.org/guix/87zgt9nrmg.fsf@waegenei.re/
Cheers,
- Brice
[Prev in Thread] | Current Thread | [Next in Thread] |