一次服务器失联排查——e1000e 网卡硬件挂起的故障
故障现象描述
在我的某台服务器运行过程中,出现系统网络无响应故障:SSH 无法连接、ICMP 请求(Ping)超时。但是,云服务商监控面板显示 CPU 与内存等基础资源指标处于正常范围。在缺乏 VNC 或带外管理(OOB)控制台的环境下,此类状态表现为服务器完全失联,仅能通过强制重启恢复。
此类故障随机出现了若干次,且我给服务器的任务负载不高,因此怀疑是底层网络驱动或硬件层面发生故障。
在我的某台服务器运行过程中,出现系统网络无响应故障:SSH 无法连接、ICMP 请求(Ping)超时。但是,云服务商监控面板显示 CPU 与内存等基础资源指标处于正常范围。在缺乏 VNC 或带外管理(OOB)控制台的环境下,此类状态表现为服务器完全失联,仅能通过强制重启恢复。
此类故障随机出现了若干次,且我给服务器的任务负载不高,因此怀疑是底层网络驱动或硬件层面发生故障。
“某厂”与“某通”的一些列漏洞(草台班子)为广大玩机用户带来了“BL解锁节”,因而一批手机获得了
root 权限,但玩机的风险也随之而来:
一方面,来源不明的模块、脚本可能包含恶意“格机”代码;另一方面,手动的刷机,系统降级也可能引发一些分区数据的错误删改。
在这些分区中,尤其需要注意的是Modem和
Persist
等分区。前者是我们常见到的基带分区,一旦损坏将导致手机丢失信号、无法识别
SIM 卡;后者则存储了出厂校准数据、传感器参数及 DRM
密钥。这些分具有唯一性,一旦丢失几乎无法通过常规刷机手段找回,因此进行备份是必要的。
本文是对原 mrwei95 的博客 中方案的扩展与补充:
增加针对物理分区表的备份逻辑
优化了分区排除策略,减小备份体积
引入了端到端的 Hash 校验机制,以确保备份数据传输的可靠。
旨在提供一个更加完整的备份方法。
为何需要手动备份而不使用成品工具?
第三方工具有黑盒属性,在备份与恢复、数据存储等方面不受控制(例如,需要对应软件才可恢复,需要特定版本才能恢复等);此外,对于一个未知工具,随意授予 root 权限是危险的。
数据无价,备份先行。但如果备份文件本身在传输过程中损坏了怎么办?
前几天,一个朋友遇到了这场数据灾难。在将 HyperOS(澎湃 OS)的系统备份文件通过 USB 导出到电脑时,传输过程意外中断,导致最终得到的压缩包不完整,常规的解压软件直接报错拒绝工作。
警示(写在最前面):
无论是使用 USB (MTP/PTP) 还是 adb pull/push
传输体积庞大的备份文件,务必在传输完成后进行双端 Hash(如
SHA-256)比对 ,永远不要盲目信任进度条跑到了 100%。
所幸,笔者尚有仅存不多的 ZIP 文件知识,因此尝试了直接对残缺的压缩包进行十六进制层面的分析,手动剥离出还能抢救的数据。本文记录了这次恢复过程。
最近把 VPS 上的 qBittorrent 从 4.3.9 升级到了 5.1.2(Docker 安装),随后发现一个奇怪的问题:通过另一台 VPS 上的 Vertex 反向代理访问 Web UI 时,页面能打开,顶部菜单也在,但种子列表完全空白,菜单栏点击也无响应。而直接用 IP 访问,或者通过自动化脚本调用 API,一切正常。
折腾了一段时间,最终发现罪魁祸首是 Cloudflare 的 Rocket Loader 功能。这篇文章记录完整的排查思路,希望对遇到类似问题的人有所帮助。
经常需要配置安装 ZSH,这里放一个自用的安装方法吧,基本上只要复制命令并执行就可以了,不用去手动编辑文件。
包括字体安装,启用
zsh-autosuggestions,zsh-syntax-highlighting
等实用插件。
本文方法为原创,使用 ChatGPT 整理润色发布。阅读本文需要一定的技术基础。数据无价,谨慎操作。
在 NAS 或多硬盘系统中,常遇到 硬盘挂载点随重启或热拔插变化 的问题:
mountmgr 或 udisks)会给硬盘分配
/vol00/硬盘名 路径,但这些路径不是固定的。因此,为解决上述问题,需要寻求一个办法,将特定的硬盘分区挂载到固定的挂载点。
本来 docker 对 ipv6 的支持就不好,使用 rootless 模式更是雪上加霜。
也许有人问为啥不用 host
网络模式,答案就在于“rootless”,此时使用 host
网络模式可能无法正确监听端口。当然,一种可行的方法是,使用 root 身份启动
docker 进程,然后手动指定 user PID 和 GID 来降级运行(此时可以使用 host
模式)。
考虑安全原则,本文我们来讨论下如何在 rootless 下配置 ipv6。
书接上文,新购入 Canokey Canary 后,有一大工作就是将之前的 2FA - TOTP(Time-based One-time Password)验证码迁移保存至新的硬件密钥。然而,对于账户数量较多的情况,使用手动方式迁移效率低,工作量大。
本文介绍了一个笔者编写的脚本,用于批量、快速迁移 TOTP 到 Canokey 中(或 Yubikey)。