История изменений
Исправление
uwuwuu,
(текущая версия)
:
Я все проделал как в том гисте, что-то передал и оно работает
$ sudo mount /dev/nvme1n1p1 /mnt/btr_pool
$ sudo btrfs su cr /mnt/btr_pool/@swap
$ sudo mkdir /var/lib/swap
$ sudo mount -o subvol=@swap /dev/nvme1n1p1 /var/lib/swap
$ sudo btrfs fi mkswapfile --size 32g --uuid clear /var/lib/swap/swapfile
create swapfile /var/lib/swap/swapfile size 32.00GiB (34359738368)
$ sudo swapon /var/lib/swap/swapfile
# Добавляем хук resume
$ sudo -e /etc/mkinitcpio.conf
...
HOOKS=(... filesystems resume ...)
$ sudo mkinitcpio -p linux
==> Building image from preset: /etc/mkinitcpio.d/linux.preset: 'default'
-> -k /boot/vmlinuz-linux -c /etc/mkinitcpio.conf -g /boot/initramfs-linux.img
...
$ sudo -e /etc/systemd/system/hibernate-preparation.service
[Unit]
Description=Enable swap file and disable zram before hibernate
Before=systemd-hibernate.service
[Service]
User=root
Type=oneshot
ExecStart=/bin/bash -c "/usr/sbin/swapon /var/lib/swap/swapfile && /usr/sbin/swapoff /dev/zram0"
[Install]
WantedBy=systemd-hibernate.service
$ sudo systemctl enable hibernate-preparation
Created symlink /etc/systemd/system/systemd-hibernate.service.wants/hibernate-preparation.service → /etc/systemd/system/hibernate-preparation.service.
$ findmnt -no UUID -T /var/lib/swap/swapfile
8ce809ab-7858-4b8e-90cf-7d0f5f220c96
$ sudo btrfs inspect-internal map-swapfile -r /var/lib/swap/swapfile
72754432
$ sudo -e /boot/loader/entries/arch.conf
...
options root=PARTUUID=... resume=UUID=8ce809ab-7858-4b8e-90cf-7d0f5f220c96 resume_offset=72754432
$ echo "UUID="$(blkid -o value -s UUID /dev/nvme1n1p1)" /var/lib/swap btrfs defaults,noatime,compress=no,commit=120,nodatacow,subvol=@swap 0 0" | sudo tee -a /etc/fstab
UUID=8ce809ab-7858-4b8e-90cf-7d0f5f220c96 /var/lib/swap btrfs defaults,noatime,compress=no,commit=120,nodatacow,subvol=@swap 0 0
# Опционально
$ echo "/var/lib/swap/swapfile none swap defaults,discard 0 0" | sudo tee -a /etc/fstab
/var/lib/swap/swapfile none swap defaults,discard 0 0
# гибернация не будет запускаться, если размер текущего swap меньше необходимого (у zram по умолчанию максимальный размер 8 GiB)
$ sudo mkdir -p /etc/systemd/system/systemd-logind.service.d
$ cat <<-EOF | sudo tee /etc/systemd/system/systemd-logind.service.d/override.conf
[Service]
Environment=SYSTEMD_BYPASS_HIBERNATION_MEMORY_CHECK=1
EOF
$ sudo mkdir -p /etc/systemd/system/systemd-hibernate.service.d
$ cat <<-EOF | sudo tee /etc/systemd/system/systemd-hibernate.service.d/override.conf
[Service]
Environment=SYSTEMD_BYPASS_HIBERNATION_MEMORY_CHECK=1
EOF
Исправление
uwuwuu,
:
Я все проделал как в том гисте, что-то передал и оно работает
$ sudo mount /dev/nvme1n1p1 /mnt/btr_pool
$ sudo btrfs su cr /mnt/btr_pool/@swap
$ sudo mkdir /var/lib/swap
$ sudo mount -o subvol=@swap /dev/nvme1n1p1 /var/lib/swap
$ sudo btrfs fi mkswapfile --size 32g --uuid clear /var/lib/swap/swapfile
create swapfile /var/lib/swap/swapfile size 32.00GiB (34359738368)
$ sudo swapon /var/lib/swap/swapfile
# Добавляем хук resume
$ sudo -e /etc/mkinitcpio.conf
...
HOOKS=(... filesystems resume ...)
$ sudo mkinitcpio -p linux
==> Building image from preset: /etc/mkinitcpio.d/linux.preset: 'default'
-> -k /boot/vmlinuz-linux -c /etc/mkinitcpio.conf -g /boot/initramfs-linux.img
...
$ sudo -e /etc/systemd/system/hibernate-preparation.service
[Unit]
Description=Enable swap file and disable zram before hibernate
Before=systemd-hibernate.service
[Service]
User=root
Type=oneshot
ExecStart=/bin/bash -c "/usr/sbin/swapon /var/lib/swap/swapfile && /usr/sbin/swapoff /dev/zram0"
[Install]
WantedBy=systemd-hibernate.service
$ sudo systemctl enable hibernate-preparation
Created symlink /etc/systemd/system/systemd-hibernate.service.wants/hibernate-preparation.service → /etc/systemd/system/hibernate-preparation.service.
$ findmnt -no UUID -T /var/lib/swap/swapfile
8ce809ab-7858-4b8e-90cf-7d0f5f220c96
$ sudo btrfs inspect-internal map-swapfile -r /var/lib/swap/swapfile
72754432
$ sudo -e /boot/loader/entries/arch.conf
...
options root=PARTUUID=... resume=UUID=8ce809ab-7858-4b8e-90cf-7d0f5f220c96 resume_offset=72754432
$ echo "UUID="$(blkid -o value -s UUID /dev/nvme1n1p1)" /var/lib/swap btrfs defaults,noatime,compress=no,commit=120,nodatacow,subvol=@swap 0 0" | sudo tee -a /etc/fstab
UUID=8ce809ab-7858-4b8e-90cf-7d0f5f220c96 /var/lib/swap btrfs defaults,noatime,compress=no,commit=120,nodatacow,subvol=@swap 0 0
# Опционально на всякий случай (zram generator отрубает swap на диске)
$ echo "/var/lib/swapfile none swap defaults,discard 0 0" | sudo tee -a /etc/fstab
/var/lib/swapfile none swap defaults,discard 0 0
# гибернация не будет запускаться, если размер текущего swap меньше необходимого (у zram по умолчанию максимальный размер 8 GiB)
$ sudo mkdir -p /etc/systemd/system/systemd-logind.service.d
$ cat <<-EOF | sudo tee /etc/systemd/system/systemd-logind.service.d/override.conf
[Service]
Environment=SYSTEMD_BYPASS_HIBERNATION_MEMORY_CHECK=1
EOF
$ sudo mkdir -p /etc/systemd/system/systemd-hibernate.service.d
$ cat <<-EOF | sudo tee /etc/systemd/system/systemd-hibernate.service.d/override.conf
[Service]
Environment=SYSTEMD_BYPASS_HIBERNATION_MEMORY_CHECK=1
EOF
Исходная версия
uwuwuu,
:
Я все проделал как в том гисте, что-то передал и оно работает
$ sudo mount /dev/nvme1n1p1 /mnt/btr_pool
$ sudo mkdir /var/lib/swap
$ sudo mount -o subvol=@swap /dev/nvme1n1p1 /var/lib/swap
$ sudo btrfs fi mkswapfile --size 32g --uuid clear /var/lib/swap/swapfile
create swapfile /var/lib/swap/swapfile size 32.00GiB (34359738368)
$ sudo swapon /var/lib/swap/swapfile
# Добавляем хук resume
$ sudo -e /etc/mkinitcpio.conf
...
HOOKS=(... filesystems resume ...)
$ sudo mkinitcpio -p linux
==> Building image from preset: /etc/mkinitcpio.d/linux.preset: 'default'
-> -k /boot/vmlinuz-linux -c /etc/mkinitcpio.conf -g /boot/initramfs-linux.img
...
$ sudo -e /etc/systemd/system/hibernate-preparation.service
[Unit]
Description=Enable swap file and disable zram before hibernate
Before=systemd-hibernate.service
[Service]
User=root
Type=oneshot
ExecStart=/bin/bash -c "/usr/sbin/swapon /var/lib/swap/swapfile && /usr/sbin/swapoff /dev/zram0"
[Install]
WantedBy=systemd-hibernate.service
$ sudo systemctl enable hibernate-preparation
Created symlink /etc/systemd/system/systemd-hibernate.service.wants/hibernate-preparation.service → /etc/systemd/system/hibernate-preparation.service.
$ findmnt -no UUID -T /var/lib/swap/swapfile
8ce809ab-7858-4b8e-90cf-7d0f5f220c96
$ sudo btrfs inspect-internal map-swapfile -r /var/lib/swap/swapfile
72754432
$ sudo -e /boot/loader/entries/arch.conf
...
options root=PARTUUID=... resume=UUID=8ce809ab-7858-4b8e-90cf-7d0f5f220c96 resume_offset=72754432
$ echo "UUID="$(blkid -o value -s UUID /dev/nvme1n1p1)" /var/lib/swap btrfs defaults,noatime,compress=no,commit=120,nodatacow,subvol=@swap 0 0" | sudo tee -a /etc/fstab
UUID=8ce809ab-7858-4b8e-90cf-7d0f5f220c96 /var/lib/swap btrfs defaults,noatime,compress=no,commit=120,nodatacow,subvol=@swap 0 0
# Опционально на всякий случай (zram generator отрубает swap на диске)
$ echo "/var/lib/swapfile none swap defaults,discard 0 0" | sudo tee -a /etc/fstab
/var/lib/swapfile none swap defaults,discard 0 0
# гибернация не будет запускаться, если размер текущего swap меньше необходимого (zram по дефолту 8 GiB)
$ sudo mkdir -p /etc/systemd/system/systemd-logind.service.d
$ cat <<-EOF | sudo tee /etc/systemd/system/systemd-logind.service.d/override.conf
[Service]
Environment=SYSTEMD_BYPASS_HIBERNATION_MEMORY_CHECK=1
EOF
$ sudo mkdir -p /etc/systemd/system/systemd-hibernate.service.d
$ cat <<-EOF | sudo tee /etc/systemd/system/systemd-hibernate.service.d/override.conf
[Service]
Environment=SYSTEMD_BYPASS_HIBERNATION_MEMORY_CHECK=1
EOF