Raspberry Pi의 Alpine Linux는 부팅 시 스왑 파티션을 활성화하지 않습니다.

Raspberry Pi의 Alpine Linux는 부팅 시 스왑 파티션을 활성화하지 않습니다.

어쩌면 이것은 매우 순진한 질문일 수도 있지만 기존 문서나 다른 솔루션에 있는 방법을 시도해도 이 작업을 수행할 수 없습니다.

Raspberry Pi에 Alpine Linux를 설치했고, SD 카드는 일반적인 부팅 파티션과 ext4로 포맷되어 호스팅되었습니다 /. Pi에 RAM이 많지 않기 때문에 스왑 파티션을 추가했습니다. 문제는 부팅 시 스왑 파티션이 활성화되지 않는다는 것입니다.

내가 아는 한, 개인 스왑 파티션을 구성하는 전통적인 방법은 이를 파일에 선언하는 것입니다 /etc/fstab. 이것이 작동하지 않았기 때문에 다른 접근 방식은 /etc/init.d폴더에 스크립트를 만들어 강제로 활성화하는 것이었습니다. 놀랍게도 init.d이 버전에는 이 작업을 수행하는 파일이 이미 존재합니다. 즉, /etc/init.d/swap해당 내용은 다음과 같습니다.

depend()
{
        after clock root
        before localmount
        keyword -docker -jail -lxc -openvz -prefix -systemd-nspawn -vserver
}

start()
{
        ebegin "Activating swap devices"
        case "$RC_UNAME" in
                NetBSD|OpenBSD) swapctl -A -t noblk >/dev/null;;
                *)              swapon -a >/dev/null;;
        esac
        eend 0 # If swapon has nothing todo it errors, so always return 0
}

stop()
{
        ebegin "Deactivating swap devices"
        case "$RC_UNAME" in
                NetBSD|OpenBSD) swapctl -U -t noblk >/dev/null;;
                *)              swapoff -a >/dev/null;;
        esac
        eend 0
}

어떻게 든 이것은 제대로 작동하지 않으며 해당 /etc/init.d/swap.apk-new내용이 /etc/init.d/swap.

스왑 파티션이 예상대로 /etc/fstab실행되도록 올바르게 구성되어 있다는 것을 알고 있습니다 swapon -a >/dev/null! 그러나 알파인은 발표에도 불구하고 출시 당시 이를 거부했습니다.

내가 뭐 놓친 거 없니? 장치를 켤 때마다 수동으로 스왑을 활성화할 수 있다는 것을 알고 있지만 시스템이 부팅 시 자동으로 이 작업을 수행해야 한다고 확신합니다.

어떤 식으로든 도움이 된다면 제가 추가한 줄은 /etc/fstab다음과 같습니다.

UUID=<my partition UUID number> none swap defaults 0 0

그리고 swapon -a파티션을 식별합니다. 이번 알파인 버전은 sys install을 이용하여 제작되었으며, 사양은 다음과 같습니다.

OS:     Alpine Linux v3.18 aarch64
Host:   Raspberry Pi 3 Model B Rev 1.2
Kernel: 6.1.37-0-rpi

미리 감사드립니다.

答え1

완전히 다른 작업을 수행하면서 솔루션을 발견했고 작동했습니다! 나는 이것이 터미널에서 선언하는 것만큼 사소하기 때문에 매우 어리석은 느낌이 듭니다.

rc-update add swap boot

이제 Exchange가 예상대로 활성화됩니다!

누군가 비슷한 문제에 직면할 경우를 대비해 이 글을 남겨두겠습니다.

関連情報