Systemd-swap: 交换错误“交换文件有孔”

创建于 2020-07-07  ·  16评论  ·  资料来源: Nefelim4ag/systemd-swap

在最新版本的systemd-swap上(manjaro测试),我只能使zram可以工作,而其他swapfc zswap不起作用。 在版本4.0.1-2上,一切正常。 (我没有测试过其他以前的版本)

所有16条评论

硬件配置:

System:
  Host: Workstation Kernel: 5.7.6-1-MANJARO x86_64 bits: 64 compiler: gcc 
  v: 10.1.0 Desktop: Xfce 4.14.2 tk: Gtk 3.24.20 info: xfce4-panel wm: xfwm4 
  dm: LightDM 1.30.0 Distro: Manjaro Linux 
Machine:
  Type: Desktop Mobo: Gigabyte model: GA-78LMT-S2P v: x.x serial: <filter> 
  BIOS: Award v: F3 date: 10/18/2012 
CPU:
  Topology: Dual Core model: AMD Athlon II X2 250 bits: 64 type: MCP 
  arch: K10 rev: 3 L2 cache: 2048 KiB 
  flags: lm nx pae sse sse2 sse3 sse4a svm bogomips: 12057 
  Speed: 800 MHz min/max: 800/3000 MHz Core speeds (MHz): 1: 1800 2: 800 
Graphics:
  Device-1: AMD RV730 PRO [Radeon HD 4650] 
  vendor: Hightech Information System driver: radeon v: kernel 
  bus ID: 01:00.0 chip ID: 1002:9498 
  Display: x11 server: X.Org 1.20.8 driver: ati,radeon unloaded: modesetting 
  alternate: fbdev,vesa resolution: 1920x1080~60Hz 
  OpenGL: renderer: AMD RV730 (DRM 2.50.0 / 5.7.6-1-MANJARO LLVM 10.0.0) 
  v: 3.3 Mesa 20.1.2 compat-v: 3.0 direct render: Yes 
Audio:
  Device-1: AMD SBx00 Azalia vendor: Gigabyte driver: snd_hda_intel 
  v: kernel bus ID: 00:14.2 chip ID: 1002:4383 
  Device-2: AMD RV710/730 HDMI Audio [Radeon HD 4000 series] 
  vendor: Hightech Information System driver: snd_hda_intel v: kernel 
  bus ID: 01:00.1 chip ID: 1002:aa38 
  Sound Server: ALSA v: k5.7.6-1-MANJARO 
Network:
  Device-1: Qualcomm Atheros AR8161 Gigabit Ethernet vendor: Gigabyte 
  driver: alx v: kernel port: df00 bus ID: 02:00.0 chip ID: 1969:1091 
  IF: enp2s0 state: up speed: 1000 Mbps duplex: full mac: <filter> 
  IF-ID-1: vmnet1 state: unknown speed: N/A duplex: N/A mac: <filter> 
  IF-ID-2: vmnet8 state: unknown speed: N/A duplex: N/A mac: <filter> 
Drives:
  Local Storage: total: 223.58 GiB used: 29.45 GiB (13.2%) 
  ID-1: /dev/sda vendor: SanDisk model: SDSSDA120G size: 111.79 GiB 
  speed: 3.0 Gb/s serial: <filter> rev: 00RL scheme: MBR 
  ID-2: /dev/sdb vendor: Samsung model: SSD 840 EVO 120GB size: 111.79 GiB 
  speed: 3.0 Gb/s serial: <filter> rev: DB6Q scheme: GPT 
Partition:
  ID-1: / size: 111.79 GiB used: 28.70 GiB (25.7%) fs: btrfs dev: /dev/sda2 
  ID-2: /home size: 111.79 GiB used: 28.70 GiB (25.7%) fs: btrfs 
  dev: /dev/sda2 
Sensors:
  System Temperatures: cpu: 26.0 C mobo: N/A gpu: radeon temp: 62 C 
  Fan Speeds (RPM): N/A 
Info:
  Processes: 228 Uptime: 31m Memory: 3.84 GiB used: 2.17 GiB (56.4%) 
  Init: systemd v: 245 Compilers: gcc: 10.1.0 Shell: zsh v: 5.8 
  running in: xfce4-terminal inxi: 3.0.37

如果有帮助,我会使用btrfs进行故障排除

有一个拙劣的PR(https://github.com/Nefelim4ag/systemd-swap/pull/140)修改了btrfs代码路径,可能的修复仍在进行中(https://github.com/Nefelim4ag/systemd -swap / pull / 144)。

由于#144提交者已经有一段时间没有看到更新了,因此我可以修复并合并它。

糟糕,不是要立即关闭此功能。
c8431ddbd728e7da14eaa69362a2ef0becf6074d是否已为您修复了此问题?

@ Jarel1337当我回到家时,我会给您反馈。 我应该在这里使用arch repo还是git clone中的版本?

@ Jarel1337当我回到家时,我会给您反馈。 我应该在这里使用arch repo还是git clone中的版本?

请使用master(此处为aur软件包或仅进行安装)

似乎对我不起作用,我尝试删除旧的systemd-swap文件夹并重新启动系统,但它对我来说总是出错。

我正在使用aur包btw

systemctl状态systemd-swap

● systemd-swap.service - Manage swap spaces on zram, files and partitions.
     Loaded: loaded (/usr/lib/systemd/system/systemd-swap.service; disabled; vendor preset: disabled)
     Active: active (running) since Wed 2020-07-08 22:29:05 +08; 2s ago
   Main PID: 2168 (bash)
     Status: "Monitoring memory status..."
      Tasks: 1 (limit: 19132)
     Memory: 8.7M
     CGroup: /system.slice/systemd-swap.service
             └─2168 bash /usr/bin/systemd-swap start

Jul 08 22:29:05 ryzen-linux systemd-swap[2168]: INFO: swapD: searching swap devices
Jul 08 22:29:05 ryzen-linux systemd-swap[2168]: INFO: swapFC: allocate chunk:  1
Jul 08 22:29:05 ryzen-linux systemd-swap[2254]: Job failed. See "journalctl -xe" for details.
Jul 08 22:29:05 ryzen-linux systemd[1]: systemd-swap.service: Got notification message from PID 2254, but reception only permitted for main PID 2168
Jul 08 22:29:06 ryzen-linux systemd-swap[2168]: INFO: swapFC: free swap: 0 < 15 - allocate chunk:  2
Jul 08 22:29:06 ryzen-linux systemd-swap[2288]: Job failed. See "journalctl -xe" for details.
Jul 08 22:29:06 ryzen-linux systemd[1]: systemd-swap.service: Got notification message from PID 2288, but reception only permitted for main PID 2168
Jul 08 22:29:07 ryzen-linux systemd-swap[2168]: INFO: swapFC: free swap: 0 < 15 - allocate chunk:  3
Jul 08 22:29:07 ryzen-linux systemd-swap[2324]: Job failed. See "journalctl -xe" for details.
Jul 08 22:29:07 ryzen-linux systemd[1]: systemd-swap.service: Got notification message from PID 2324, but reception only permitted for main PID 2168

journalctl -xe的相关部分:

Jul 08 22:29:41 ryzen-linux systemd[1]: Activating swap Swap File...
-- Subject: A start job for unit var-lib-systemd\x2dswap-swapfc-32.swap has begun execution
-- Defined-By: systemd
-- Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- A start job for unit var-lib-systemd\x2dswap-swapfc-32.swap has begun execution.
-- 
-- The job identifier is 1414.
Jul 08 22:29:41 ryzen-linux swapon[3377]: swapon: /var/lib/systemd-swap/swapfc/32: skipping - it appears to have holes.
Jul 08 22:29:41 ryzen-linux systemd[1]: var-lib-systemd\x2dswap-swapfc-32.swap: Swap process exited, code=exited, status=255/EXCEPTION
-- Subject: Unit process exited
-- Defined-By: systemd
-- Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- An n/a= process belonging to unit var-lib-systemd\x2dswap-swapfc-32.swap has exited.
-- 
-- The process' exit code is 'exited' and its exit status is 255.
Jul 08 22:29:41 ryzen-linux systemd[1]: var-lib-systemd\x2dswap-swapfc-32.swap: Failed with result 'exit-code'.
-- Subject: Unit failed
-- Defined-By: systemd
-- Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- The unit var-lib-systemd\x2dswap-swapfc-32.swap has entered the 'failed' state with result 'exit-code'.
Jul 08 22:29:41 ryzen-linux systemd[1]: Failed to activate swap Swap File.
-- Subject: A start job for unit var-lib-systemd\x2dswap-swapfc-32.swap has failed
-- Defined-By: systemd
-- Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- A start job for unit var-lib-systemd\x2dswap-swapfc-32.swap has finished with a failure.
-- 
-- The job identifier is 1414 and the job result is failed.
Jul 08 22:29:41 ryzen-linux systemd-swap[3376]: Job failed. See "journalctl -xe" for details.
Jul 08 22:29:41 ryzen-linux systemd[1]: Cannot find unit for notify message of PID 3376, ignoring.

@ Jarel1337对我也一样(例如@nathanielcwm)通过make install

最新版本> journalctl -p err -b swap File failed to activate

@nathanielcwm您是否还在使用btrfs?

要解决此问题,直到合并了修订,您可以设置swapfc_force_use_loop=true

编辑:显然, systemd-swap.service单元不允许循环设备,解决方法是简单的一个衬套,并且在当前的主设备上。

应该通过使用dd而不是fallocate (我什至忘记了dd未用于某些文件系统,这应该早就发生了)

我希望它能解决该问题,解决方法: swapfc_force_use_loop=true向我显示systemctl status systemd-swap.service invalide参数

也可以与硬件相关吗?

我希望它能解决该问题,解决方法: swapfc_force_use_loop=true向我显示systemctl status systemd-swap.service invalide参数

也可以与硬件相关吗?

您将需要手动向后移植两个提交才能使其正常工作,我建议暂时只使用master

最后从master进行安装,问题消失了。 非常感谢@ Jarel1337
我将等到拱形Linux上游存储库中。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

Navneet-Suresh picture Navneet-Suresh  ·  11评论

Nefelim4ag picture Nefelim4ag  ·  3评论

terencode picture terencode  ·  31评论

dou4cc picture dou4cc  ·  7评论

Brottweiler picture Brottweiler  ·  6评论