RPi3创建带网络与SSH的备份target配置失败求助
解决Raspbian Stretch下备份隔离模式的网络与SSH问题
问题分析
你的backup-net.target依赖了rescue.target,而rescue.target是系统救援模式的核心target,它的设计逻辑会终止大部分非必要的系统服务——包括很多网络相关组件。这就导致你执行systemctl isolate后,网络先被终止,后续即使配置了network-online.target和sshd.service,也来不及恢复,最终出现断网、SSH无法连接的情况。
解决方案:重新配置隔离模式Target
我们需要创建一个不依赖rescue.target的独立隔离target,直接基于基础系统服务,仅保留网络和SSH服务,同时自动终止其他用户服务(如Web服务器、数据库等),保证备份的完整性。
1. 创建/替换backup-net.target文件
编辑/etc/systemd/system/backup-net.target,写入以下内容:
[Unit] Description=Maintenance Mode with Networking and SSH # 依赖基础系统服务、网络就绪状态和SSH服务 Requires=basic.target network-online.target sshd.service # 确保基础服务和网络完全就绪后再启动此target After=basic.target network-online.target # 允许切换到这个隔离模式 AllowIsolate=yes [Install] WantedBy=multi-user.target
2. 验证SSH服务的兼容性
检查sshd.service的默认配置(路径/lib/systemd/system/sshd.service),确认它的WantedBy字段包含multi-user.target(默认已配置),这样systemd在切换到隔离模式时能正确拉起SSH服务。
3. 重新加载systemd配置
让systemd识别新的target配置:
sudo systemctl daemon-reload
4. 测试隔离模式
执行以下命令切换到备份隔离模式:
sudo systemctl isolate backup-net.target
此时系统会自动终止所有不在basic.target、network-online.target和sshd.service依赖链中的用户服务,同时保持网络连接和SSH可用,你可以正常远程登录执行备份操作。
5. 退出隔离模式
备份完成后,切换回正常的多用户模式:
sudo systemctl isolate multi-user.target
额外注意事项
- Raspbian Stretch默认使用
dhcpcd管理网络,network-online.target会等待DHCP成功获取IP后才标记为就绪,确保网络真的可用。 - 如果仍有网络异常,可以执行
systemctl status network-online.target检查网络就绪状态,确认它已处于激活状态。
内容的提问来源于stack exchange,提问作者fighter-ii
相关产品推荐
相关产品推荐

