用Windows还是Linux?SurfacePro4的服务器之路
2025年3月27日,我的好友大彬送了我一台没有屏幕的SurfacePro4,这是到我手上快两个月它的变化。
图为2025年5月,服务器正常运行的样貌
折腾之始
从拿快递说起
3月27日晚上,我收到了一堆快递。内容物包含视频采集卡、HDMI线、MiniDP转HDMI转接头、USB2.5G网卡、USB-HUB、网线。
一切都是为了一台无屏幕的SurfacePro4服务。
进行初次尝试
我将MiniDP转HDMI转接头和HDMI线与视频采集卡接一起插我电脑上,打开OBS,进入全屏预览。不出意外的话,意外就发生了:
我起初不知道Surface如何进BIOS界面,当时还以为在硬盘无系统的情况下,不进BIOS会无任何显示内容。
但是过了很久之后,朋友告诉我本应该会显示一个无法引导的提示框,可是不知为何采集卡无法采集到这个界面:
“无法引导”的提示框
后来通过自主摸索,得知需要按住音量上键和电源键才能进入BIOS。
可是,这个BIOS看起来并不正常:
几乎全部错位,鼠标无法点按任何交互按钮
这让我坚定了是采集卡的问题
跌宕起伏
于是我安装了win10LTSC2022,可谁又还记得,我U盘里这位系统大哥是我N年前给学校希沃定制的LTSC,删除了大多数系统组件,连最基本的系统休眠都没办法做到。
这导致后来我通过RDP远程进入服务器后,发现分辨率无法自动识别,在平板上进行RDP,也会导致触摸无法正常使用。
后来我咨询大彬,他告诉我驱动安装不应该这么快,他说安装需要十多分钟,期间在某个阶段卡住一段时间才对。可是我两分钟内就安装完了,而且还不止安装了一次。于是我开始怀疑上了这个定制LTSC。
"平稳"落地
我无奈地插回了视频线,这次我直接安装了22H2普通版win10,手动注入了IoT版激活码,就没出现过问题了。
大起大落
无奈妥协
过了一星期,由于HTTP Proxy经常睡死,故删除了Windows Server转战Linux Debian.可谁知这将成了一切的开始。
安装困难
由于这台Pro4是无屏幕版本,我使用采集卡采集画面后,无法正常输出TTY界面:文字、命令行混在一起,颜色也是糊在一起,这使得我放弃了使用采集卡安装。
图片糊在一起
好在Debian有一个分支叫Armbian,这款系统的好处是不用配置,烧入即用。于是我烧入了硬盘中,开机后使用SSH连接进去,这才终于将它安装好了。
SSH能够正常输出字符
软件源更新与1panel安装失败
由于我的网络由CPE提供,许多软件源会重置来自我的IP的访问。
好在,后续安装1panel时,面板安装所自带的安装脚本帮我自动选择了镜像源,可是,安装面板又成了个问题。
Docker安装失败,无法安装面板
由于1panel面板依赖Docker,可是限于国内优良的网络环境,我无法使用脚本安装Docker。
系统代号不匹配,手动安装困难
由于Armbian和Debian的系统代号不一致,需要将代号更改方可手动安装。
只需要将添加的APT源中的系统代号全部替换成Debian12的代号就行。
OpenWRT防火墙限制
由于之前配置了OpenWRT防火墙,关闭了一些端口(可在我安装1panel时忘记了这回事),导致我查了好久都没搞清楚为什么我就是进不去1panel后台。
安装完成
经历多重磨难终于将1panel安装了进去
拿来做什么用?
多亏了Debian和1panel的加持,我可以在这台服务器上跑各种服务:
配置是怎样的?
硬件/软件 | 详情 |
---|---|
CPU | Intel Core I5-6100U |
RAM | 4GB LPDDR3 |
ROM | 128G SAMSUNG NVME |
SYS | Linux Debian |
Kernel | 6.1.0-32-amd64 |
_,met$$$$$gg. root@K-server
,g$$$$$$$$$$$$$$$P. -------------
,g$$P" """Y$$.". OS: Debian GNU/Linux 12 (bookworm) x86_64
,$$P' `$$$. Host: Surface Pro 4 124000000000000000000000D:0B:08F:1C:03P:38
',$$P ,ggs. `$$b: Kernel: 6.1.0-32-amd64
`d$$' ,$P"' . $$$ Uptime: 8 hours, 56 mins
$$P d$' , $$P Packages: 856 (dpkg)
$$: $$. - ,d$$' Terminal: /dev/pts/0
$$; Y$b._ _,d$P' CPU: Intel i5-6300U (2) @ 3.000GHz
Y$$. `.`"Y$$$$P"' GPU: Intel Skylake GT2 [HD Graphics 520]
`$$b "-.__ Memory: 1469MiB / 3837MiB
`Y$$
`Y$$.
`$$b.
`Y$$b.
`"Y$b._
`"""
一共花了多少钱?
这一切都需要归功于大彬,在他的帮助下,给我省了不少钱
。
虽说是送的,但该算的账还是得算
:
项目 | 价格 |
---|---|
无屏幕 无硬盘SurfacePro4 | 100元 |
USB2.5G网卡 | 38元 |
网络线 视频线 采集卡 HUB | 62元 |
NVME128G | 48元 |
合计248元
现状怎样?
由于经常会在休眠时CPU占用100%,我设置了定时任务,用于监控CPU状态并在合适的时间内重启服务器:
休眠占用
定时任务
监控CPU并重启
#!/bin/bash
# 设置监测时间间隔(秒)
INTERVAL=10
# 设置 CPU 高占用的阈值(百分比)
THRESHOLD=95
# 计数器变量
COUNT=0
# 目标次数 (3 分钟,每 10 秒一次,需 18 次)
TARGET_COUNT=18
while true; do
# 获取 CPU 使用率
CPU_USAGE=$(grep 'cpu ' /proc/stat | awk '{usage=($2+$4)*100/($2+$4+$5)} END {print usage}')
# 判断 CPU 使用率是否超过阈值
if (( $(echo "$CPU_USAGE > $THRESHOLD" | bc -l) )); then
((COUNT++))
else
COUNT=0
fi
# 如果超过目标次数,则重启服务器
if [ "$COUNT" -ge "$TARGET_COUNT" ]; then
echo "CPU 使用率持续超过 $THRESHOLD%,系统即将重启..."
reboot
fi
sleep "$INTERVAL"
done