本帖最后由 192 于 2024-9-25 16:31 编辑
接上,在FNOS下部署了一台虚拟机DSM
首先说一下kvm本身web管理界面自带开机启动某一台虚拟机的,
但是因为虚拟网桥防火墙会阻碍某黑的引导,所以需要关闭防火墙才能正常启动,
因为是通过echo改值
echo 0 > /proc/sys/net/bridge/bridge-nf-call-iptables
这种方式重启之后防火墙会自动打开赋值为1,所以需要每次开机计划中加入,
(理论上应该是可以通过修改文件方式来关闭防火墙的,请自行搜索,我这里绕过)
顺便在脚本中加入当防火墙关闭后自动启动虚拟机DSM,
这里比较关键的是系统开机加载一些配置需要时间,所以需要脚本反复确认防火墙是否已经关闭再来启动DSM
加入开机计划有很多方式,这里以服务service形式创建
主题为脚本程序
1.创建一个需要开机自启的脚本.sh 可放在任意目录下
#!/bin/bash
while true; do
value=$(cat /proc/sys/net/bridge/bridge-nf-call-iptables)
if [ "$value" -eq 0 ; then
echo "Successfully set the value to 0"
echo "0" > /proc/sys/net/bridge/bridge-nf-call-iptables
break
else
echo "0" > /proc/sys/net/bridge/bridge-nf-call-iptables
echo "Value is not 0, retrying..."
sleep 1
fi
done
virsh start nas #这条指令就是启动我这里名为nas的虚拟机 需根据自己的情况修改
以上我的情况,我这里存放的目录是我的家目录/home/yaotoon/reltab.sh
脚本要运行需要可执行X权限,下面给权限
chmod +x /home/yaotoon/reltab.sh
这里可以先通过. 指令来确认自己的脚本是否可以正常运行
脚本这里基本就这样,但此时这个脚本只是可执行并不能开机启动
2.创建自启该脚本对应的服务存放于/etc/systemd/system/目录下
我这里是br0tab0.service
你可以通过vim nano等工具创建
先cd到系统服务目录
cd /cetc/systemd/system/
然后创建
nano br0tab0.service
以下是服务模板
[Unit]
Description=br0tab0
After=network.target
[Service]
ExecStart=/home/yaotoon/reltab.sh #这里是你的脚本.sh文件存放目录需根据自己的情况修改
Type=simple
[Install]
WantedBy=multi-user.target
然后依次执行以下指令
systemctl daemon-reload
systemctl enable br0tab0.service
systemctl start br0tab0.service
systemctl status br0tab0.service
如果在最后服务状态查询中返回绿色enable字样说明你的服务是有效的
然后就可以reboot测试是否正常
可能这样的方式会有些繁琐,不如直接从配置文件中关闭防火墙来的便捷。我主要记录自己在折腾过程中的一些心得和
从网上收集到的信息。因为现在信息太多太乱,我也试过很多方式都失败了。主要是一个学习的过程,比如以后需要什么开机
计划我可以直接在自己的.sh脚本中添加就行,举一反三。把最后成功的案例记录下来,希望对大家有点屁用
|