OVERSEER.LOG
READING MODE
← 返回日志

// HARDWARE / HOMELAB

旧笔记本改造家庭服务器:从噪音到静音

8GB 内存、35GB 磁盘、一块快要报废的电池。它本来该被淘汰, 却刚好适合放在角落里跑监控、机器人和一堆实验。旧笔记本做家庭服务器, 最大的优势不是性能,而是自带 UPS、功耗低、还有一块可以救命的屏幕。

00 / 为什么是旧笔记本

迷你主机和树莓派当然更整洁,但旧笔记本有几个很难替代的优点:

01 / 先做一次硬件体检

在装系统之前,先确认这块机器还值得托付:

# 电池健康
upower -i /org/freedesktop/UPower/devices/battery_BAT0

# 磁盘健康
sudo smartctl -a /dev/sda

# 温度与风扇
sensors

# 内存与磁盘
free -h
df -h /

如果磁盘开始出现重映射扇区,尽快换一块 SSD;如果电池鼓包,直接拆掉, 不要把一个膨胀的电池放在无人看管的角落里。

02 / 系统:不要桌面

服务器不需要图形界面。Ubuntu Server 或 Alpine 都可以,关键是关掉不用的服务, 把资源留给真正要跑的东西。笔记本还要处理合盖和休眠:

HandleLidSwitch=ignore
HandleLidSwitchExternalPower=ignore
HandleSuspendKey=ignore
sudo systemctl restart systemd-logind
loginctl show-session $(loginctl | awk '/tty/{print $1; exit}') -p Active

如果不改,合上盖子后机器会休眠,所有服务一起消失。 有些机型还需要在 BIOS 里关闭「合盖休眠」。

03 / 噪音与温度

旧笔记本最吵的时候往往不是满载,而是风扇策略太激进。 先清理灰尘、换硅脂,再观察空闲温度:

sensors
cat /sys/class/thermal/thermal_zone*/temp
cpupower frequency-info

把 CPU governor 调成 powersave 或 ondemand, 限制最大频率,通常就能把风扇压到很低的转速。把机器放在通风的硬表面上, 不要塞进封闭的柜子里。

04 / 服务与内存边界

8GB 内存听起来不少,但 Docker、Java 和浏览器自动化一起上,很快就会见底。 给容器加内存限制,给 JVM 设堆上限:

services:
  bot:
    image: example/bot:latest
    mem_limit: 512m
    restart: unless-stopped

  monitor:
    image: louislam/uptime-kuma:1
    mem_limit: 256m
    restart: unless-stopped

不要让所有服务都设置 restart: always 却没有任何资源边界。 一个内存泄漏的进程可以把整台机器拖进 OOM,最后所有服务一起重启。

05 / 35GB 磁盘怎么活

小磁盘最容易被日志和镜像撑爆。把它当成一个需要定期打扫的房间:

docker system df
docker image prune -a
docker builder prune

sudo journalctl --vacuum-size=200M
du -sh /var/log/* | sort -h

把不常用的镜像和大文件放到外接硬盘或另一台机器上。 数据库目录不要放在会随容器删除的临时层里。

06 / 备份:不要只备份到同一块盘

旧硬盘随时可能坏。至少把重要数据备份到另一台机器或云端,并定期做恢复测试:

restic -r sftp:backup.example.com:/srv/restic init
restic -r sftp:backup.example.com:/srv/restic backup /opt /etc
restic -r sftp:backup.example.com:/srv/restic check
restic -r sftp:backup.example.com:/srv/restic snapshots

备份没有恢复测试,就等于没有备份。至少每季度挑一个文件恢复出来, 确认密钥、路径和权限都是对的。

07 / 小结

旧笔记本不是「凑合能用」,而是一台有明确边界的服务器: 不要指望它跑重型数据库,也不要把它当成唯一副本。 把电源、散热、磁盘和备份这四件事处理好,它可以安静地在角落里跑很久。