최근에 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 라인에 큰따옴표가 필요하지 않은 또 다른 작은 버그가 있어 오류가 발생합니다.
어쨌든 누구든지 답변을 해주시면 감사하겠습니다!