标签归档:台风

Manjaro Linux 抢救记

2024 年中秋适逢台风贝碧嘉来袭(熟悉的开头:D),强降水给小区带来的树倒、停电等一系列灾害,我的装了洗手.jpgManjaro 系统的 N100 小主机在 226 天的 uptime 后终于趁着停电休息了一把。供电恢复后通过 openVPN 、智能家居 app 发现路由器、 IoT 设备都已重新上线,困惑的是唯独这台小主机仍然处于失联状态。等到节后回来便研究了一番。以下全程感谢 @wzyboy 再一次的不吝指导。

接上显示器和外设开机发现,系统已经处于 emergency mode 状态。此时遇到的第一个坑是,emergency mode 的第一行提示 “loadkmap short read”,加上按一些字母键都没有反应(此时实为输入密码状态,但无回显),由于对 emergency mode 不熟悉使我和 gpt 误认为键盘映射出现问题。实际上此时只要输入 root 的密码就可以登录系统。

以 root 登录后输入 dmesg 查看内核输出的启动信息,发现在正常启动过程中有以下看起来很关键的报错:

intel_ish_ipc: ishtp-ish timed out waiting for fw-initiated reset
intel_ish_ipc: ISH: hw start failed.

于是一阵搜索,越搜越觉得困惑和茫然,是不是内核 bug,是不是硬件损坏…gpt 也小心翼翼地建议在 grub 启动项中屏蔽 ish 有关硬件,满怀希望地保存后重启,问题依旧。

emergency mode 中,系统很明确地提示要用 journalctl -xb 命令去查看启动日志,于是很仔细地查看这一千七百八行日志,这里我边看边在想,和 dmesg 不同的是阻塞正常启动的关键错误信息可能不会按时间顺序出现在日志的最后面,但仍会以不同颜色的字体标出。

仔细观察日志后发现与 /etc/fstab 有关的挂载错误,却没被我放在心上。我知道挂载一个不存在的分区会引起启动问题,因此在 /etc/fstab 中设置了 nofail 来长期把一移动硬盘挂载在系统中。虽然排错时移动硬盘未插入,不至于影响正常启动吧?所以又错过了奇点,从别的角度甚至是 USB Live CD 的 chroot 等方式试图修复系统。等到回过头继续从 journalctl -xb 日志侦错时,还是觉得大致记下报错的分区 UUID 去 /etc/fstab 看一眼吧。这一看才发现该 UUID 所对应的是一个未设置 nofail 、已经被合并了进 / 了的、不存在的分区,因为操作时间久远且一直未重启才忽略了该问题,注释该行,问题解决。

在排错的过程中,因为系统设置了中文导致 emergency mode 的字体全变成方块,这个问题在我首次接触 debian 时也遇到过,不过此次学到了通过设置变量 export LANG=C 的方法强制 fallback 到比 en_US.UTF-8 还基本的 locale 来避免中文显示问题。甚至还了解到了有趣的 Linux tty 勉强型中文字体——戴着有限字符空间的镣铐跳起支持中文的舞。又让我想起了一些汉化版 FC 游戏因 ROM 空间不足而被迫实施的一些奇技淫巧。

Linux 启动排错可能使人更有机会了解 “Linux 系统是怎么编排硬件的” 。而我一直想象的一个场景是:把桌面环境的 Linux 自行配置成家用路由器——通过安装 pppoe 、 upnp 等软件包来实现家用路由器功能;配置多网卡、网桥、路由表等来实现 WAN-LAN 口转发等,这样的场景想必更有挑战,也会使人更加了解 “Linux 系统是怎么编排网络的” 。

香港国际机场中转过夜

长假后的几天从东京成田 NRT 归国飞上海浦东 PVG,因为直飞过于离谱的价格,不得已选择了 HX 香港航空绕行香港机场 HKG,后半夜到达 HKG 后要逗留近 6 个小时,再在早晨转乘前往 PVG 的联程航班。更加不巧的是,10 月 9 日晚遇到了台风小犬,更是自 1992 年设立暴雨警告信号系统以来,首次出现 “八号风球” 与 “黑色暴雨警告” 同时生效的情况。

之前做了一些在 HKG 过夜的攻略,也咨询了在 HKG 过过夜的盆友 @xierch ,比如在什么样椅子上休息、充电插口有哪些、夜里去哪里吃东西等等,更高阶一点的可以考虑免费洗澡间和 24h 休息室。但是亲身体验一把之前心里还是觉得很没底的。

8 日晚在从 NRT 起飞前,香港天文台就已经挂出了九号风球,但这也没影响飞 HKG 的前序航班正常抵达。在降落前,飞机在风暴中忽上忽下的搏斗和机长颇有几分坚毅口吻的降落广播都难免使我有点紧张。 9 日 1:42(UTC+8) 终于落地,只见风雨如晦,八号风球仍正生效中。

进入航站楼后查看地图,发现位于 T1 的西翼,西翼也有转机点可上达出发层,但我事先已得知免费洗澡间在到达层,所以先不急上楼。在到达层向东翼走了茫茫长的一段路,也见到了许多在到达层下机口和衣而卧的人。在 12 号下机口发现洗澡间,但男浴室却高挂维护牌,女浴室则没有。一路上比肩继踵的人都奔向入境口,似乎也没见什么人对这两间澡堂子有兴趣的。

通过转机安检后上楼,来到了熟悉的 T1 东翼出发层。在免税店和登机口的交界处发现了 24h 麦当劳,进去(实际上是下去,这个店的平面位于出发层以下)后发现转机食饭的旅客挺多,更多的是身着各类制服的航司、机场工作人员在抓紧时间吃夜宵。可用点餐机,支微卡付款都支持。

匆匆吃完后来到真·冷冷清清的 T1 出发层,香港公共场所的冷气量妇孺皆知,在这种暴风雨天气下更是和我之前至少 9 次因转机等造访 HKG 留下的繁忙、热闹印象完全不同。冷冰冰的八号风球警告和空中花园关闭通知在广播中一遍遍地播送,更是给人多感官上都带来了不安。

从落地的时间算起,滑行、走路、吃饭已经花去了相当多的时间,吃完麦当劳后我记得已经大约快要凌晨三点。没什么心情再欣赏 HKG 的设施、飞行器等,直接在东翼的几个登机口找躺卧的地方,这里很多攻略 app 上都会列出详尽的躺椅、三连座的细目表,不过我并没有找到三连座的椅子,最终选择在 26 号登机口面向玻璃幕墙的躺椅安顿下来,放好了行李小推车,把港版转换头接上 GaN 充电器开始充电——这里不得不提到 HKG 虽然把 USB 充电口升级成了 USBA+C 这样的双口充电模块,但实际上这类插口的故障率仍然很高,我也没有条件去检测输出功率等情况,如果用自带的充电头,那么港版的转换头又少不了,着实有点麻烦啊。

即使是自带了专为过夜准备的毛毯,HKG 冷气的杀伤力还是不容小觑,右肩被吹得人根本睡不着,只能看着雨水在昏暗的停机坪照明下彻夜擦着玻璃。就这么干熬了一两个小时,约凌晨 6 点的时候 T1 已经热闹了起来,登机口也逐渐变得繁忙。找了个洗手间刷了牙,此时得知我往 PVG 航班的登机口被指派到了 5XX 摆渡车专用层,摇头苦笑,经历了如此难忘的一夜后,在大雨中露天上飞机好像都不算什么了。