systemd: zram에서 스왑 및 파일 시스템을 설정하기 위한 .service 데몬 작성

systemd: zram에서 스왑 및 파일 시스템을 설정하기 위한 .service 데몬 작성

최근에 SSD가 장착된 노트북을 구입했는데 SSD에 너무 많은 부담을 주지 않기 위해(쓰기 주기 수가 제한되어 있다고 들었습니다) 스왑 및 파일 시스템을 설정하기 위해 시스템 장치 파일을 작성하기로 결정했습니다. (나중에 asd와 함께 사용됨) 장치 zram0 및 zram1에서 각각 사용됩니다. 저는 systemd와 udev에 별로 익숙하지 않아서 어리석은 실수를 했을 수도 있지만 찾을 수 없습니다... 제 파일은 다음과 같습니다: etc/udev/rules.d/10-zram.rules:

 KERNEL=="zram0",SYMLINK+="zramswap" ,ATTR{disksize}="1G" ,ENV{SYSEMD_WANTS}+="zram-swap@%k.service"

 KERNEL=="zram1",SYMLINK+="zramfs",ATTR{disksize}="250m", ENV{SYSTEMD_WANTS}+="zram-fs@%k.service"

/etc/systemd/system/[이메일 보호됨]

[Unit]
Description="Daemon that sets xfs on %i device"

BindsTo=dev-%i.swap

After=dev-%i.device
Requires=dev-%i.device

Before=dev-%i.swap
Wants=dev-%i.swap

[Service]
Type=oneshot
ExecStart="/usr/bin/mkswap /dev/%i"

[이메일 보호됨]/usr/bin/mkfs.xfs를 사용한다는 점을 제외하면 거의 동일합니다(xfs가 생성 속도가 빠르다는 것을 읽었으므로)

마지막으로 내 fstab이 종료됩니다.

/dev/zram0      swap        swap    defaults    0 0
/dev/zram1      /media/asd  xfs     defaults    0 0

문제는 내 시스템이 이 설정으로 제대로 부팅되지 않는다는 것입니다... 두 장치를 교환하고 마운트하려고 하면 스왑과 파일 시스템이 존재하지 않는다는 메시지가 표시되고 Journalctl -xb를 보면 다음을 위한 장치가 있습니다. 동일한 원인 두 장치를 설치하고 교체하는 동안 오류가 발생했습니다. 그런데 /sys를 보면 장치 크기가 udev 규칙에 설정한 크기이므로 규칙을 읽고 작동하는 것 같은데 문제는 서비스 파일이 실행되지 않거나 작동하지 않는 것 같습니다. .

답변1

내 문제가 무엇인지 알아냈습니다. 가장 큰 문제는 zram이 기본적으로 systemd에서 처리되지 않는다는 것입니다. 결과적으로 dev-zram0.device 단위가 없으므로 충족되지 않은 종속성으로 인해 서비스가 실패합니다. 해결책은 추가하는 것입니다.

TAG+="systemd"

내 udev 규칙을 따르세요

데몬의 ExecStart 라인에 큰따옴표가 필요하지 않은 또 다른 작은 버그가 있어 오류가 발생합니다.

어쨌든 누구든지 답변을 해주시면 감사하겠습니다!

관련 정보