Using Swapfile for Hibernation with BTRFS and Kernel 5.0.16-gentoo

iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 1337 -j DNAT --to 192.168.1.2:1337
iptables -A FORWARD -p tcp -d 192.168.1.2 --dport 1337 -j ACCEPT

Где:

  • eth0 должен быть интерфейсом WAN.
  • 192.168.1.2 - это ваш компьютер в локальной сети.

* Я бы по-прежнему рекомендовал использовать WEBUI для управления правилами iptables.

0
29.05.2019, 11:17
1 ответ

u/hjoke(https://www.reddit.com/user/kjoke/)сделал мой день:

filefrag неправильно вычисляет смещение для BTRFS, но есть скрипт, который вычисляет правильное смещение:https://github.com/osandov/osandov-linux/blob/master/scripts/btrfs_map_physical.c

Загрузите и gcc btrfs_map_physical.c -o btrfs_map_physicalзатем получите первое физическое смещение для файла подкачки:

$ sudo./btrfs-map-physical /swap | head -n2
FILE OFFSET EXTENT TYPE LOGICAL SIZE    LOGICAL OFFSET  PHYSICAL SIZE   DEVID   PHYSICAL OFFSET
0   regular 4096    607759892480    268435456   1   608833634304

Здесь:608833634304. Разделите это смещение на размер страницы :

.
$ getconf PAGESIZE
4096

Итак, resume_offsetравно 608833634304 / 4096 = 148641024. Добавьте это значение с параметром resumeв качестве параметров ядра и перезагрузитесь. После этого systemd hibernateпо-прежнему будет давать сбой, потому что systemd игнорирует параметры ядра и неправильно вычисляет смещение, но echo disk > /sys/power/stateработает.

4
28.01.2020, 02:40

Теги

Похожие вопросы