也许这是一个非常天真的问题,但我无法通过尝试在现有文档或其他解决方案中找到的方法来完成这项工作。
我在 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
按预期方式激活交换分区!然而 Alpine 拒绝在启动时这样做,尽管已经宣布了……
我错过了什么吗?我知道我可以在每次打开设备时手动激活交换,但我确信系统应该在启动时自动执行此操作。
如果它有任何帮助,我添加的行/etc/fstab
如下所示。
UUID=<my partition UUID number> none swap defaults 0 0
并swapon -a
识别分区。这个 Alpine 版本是使用 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
现在交换按预期激活!
我会留下这个以防万一有人遇到类似的问题我猜......