운영 체제 버전: 5.9.14-arch1-1 커널
/
부팅 시 전체 디렉터리를 RAM에 로드하는 방법을 알아내려고 합니다 . 여기서 작은 도우미를 찾았습니다.
https://github.com/arcmags/ramroot
따라서 ramroot
후크가 실행되기 시작하면 zram 모듈이 설정됩니다.
modprobe zram
다음으로 메모리를 할당하겠습니다.
zramctl -f -s 10M
내 OS가 부팅되면 이 명령이 제대로 실행되고 장치를 마운트할 수 있습니다 zram0
. 하지만 이 부팅 모드에서는 다음 오류가 발생합니다.
/dev/zram0: failed to set disksize (.... bytes): Cannot allocate memory
문제가 어디에 있는지 아는 사람이 있나요? 작업을 완료하는 데 누락된 모듈이 있습니까?
내 현재 후크 순서는 다음과 같습니다.
HOOKS=(base udev ramroot autodetect modconf block filesystems keyboard fsck)
답변1
여러분이 원하는 것과 동일한 작업을 수행하는 후크를 만들었고 처음에는 작동했지만 커널 업데이트 후에는 동일한 오류 메시지가 나타나기 시작했습니다.
zram
원인은 기본 압축 알고리즘의 변경 일 수 있다고 생각합니다 . 최신 커널 버전이 zstd
새로운 기본값 으로 사용되기 시작했다고 생각합니다 .
나에게 도움이 된 것은 .hook을 사용하여 후크 기능 zstd
에 모듈을 추가하는 것이었습니다 .build()
add_module zstd
물론, 다른 모듈을 사용할 계획이 없다면 zstd
이 모듈을 추가하세요 .
오류 메시지는 매우 오해의 소지가 있지만 따라갈 수 있었습니다.이것