2024-07-27

「微软蓝屏事件」与「信创」

图片来自网络

「微软蓝屏事件」也已经过去一个多星期了。各方信息差不多到位了,讨论得也相对充分,应该不需要我再来分析或者补充什么了。

不过,这个事件发生之后,我遇到一种有意思的想法,可以与大家分享一下。

蓝屏幕席卷全球的时候,我正在旅游。连日记都只能在手机上简单记录一下要点的我,完美错过了这个事件的波峰。等我有空来了解的时候,整个事件基本已经有了结论,甚至都快平息了。我不知道这算我的幸运还是不幸。

当然,余波还是在的。等我周一回到公司,有同事就向我表示,「信创」的事情,可能要因此而加速。理由是这次中国在此次全球性事件中基本幸存,有赖于「脱钩」,那么接下来这个过程应该会更加地紧锣密鼓。

这自然是他自己的理解,不过也很有可能会是一个「正确」的预测。我们都知道所谓的「上头」其实也只是一届「草台班子」而已(实际上谁不是呢?)。他们的见识不见得比普通人高出多少。所以,按照常识,他们很可能也会这样去想,去思考,也就会真的这样去做。

问题是:中国这次的「幸存」,真的是因为「脱钩」吗?

跟许多人的理解可能不太一样,这次微软所谓的蓝屏事件,实际上跟微软没有什么关系。在我看来,这事就是一个装机量巨大的杀毒软件出了一个Bug。由于在企业用户中装机量巨大,企业服务的客户也被影响到,于是闹出了这么大一个事端。微软还真是可怜,其实是它被别的软件给「搞」了。

可能现在活跃在网上的人都太年轻,也或者互联网真的是没记忆了。但我可是都还记得的。
我曾经写过一篇Blog《突发的c000021a蓝屏故障》。2007年,距今有一些年头,15年有,但还不到20年。在我看来,那次的事件比起这一次,其实还更为严重一些。这次只是内核驱动层面出了问题而已。驱动嘛,开个安全模式就进去了。然后把文件夹改个名,让它正常启动时加载不了,就恢复了。2007年那次可是把系统DLL文件直接给干掉了,相当于把操作系统删掉了一部分,安全模式都没用。单机只有哭。

我并不是太清楚现今的CrowdStrike与当年的Symantec哪个更牛逼。反正我现在不用什么杀毒软件或安全防护软件。「自己的安全自己负责」,很多年前我就学会了自己解决问题。普通人肯定没法照搬我的情况,这也是为什么360这种东西至今也还能大行其道的原因。
那么,说到这里,我的另一个大问题就要抛出来了:你为什么就能确定,360之流不会闹出同样的问题呢?

在我看来,作为一个拿到了ring0权限的软件,要把系统搞蓝屏,那简直是举手之劳。能把你Windows搞蓝屏的内核驱动,我要不了几分钟就能写上一个。像CrowdStrike那样的情况,我们一般称之为「逻辑炸弹」,也不是什么多难的事情。无怪有很多人对此事归结于阴谋论。
我觉得这种逻辑炸弹恐怕还有很多,最好不要被什么歹人给拿到。但对此你无法打包票,所以还得要有自己的能力,以及要有备援才行。我上面说的那句话的扩大版,此时应该强调一下:自己的事情,只有自己来操心才靠谱,靠别人都是靠不住的。

况且,国内的软件企业就很靠谱吗?
这次很多人觉得很不可思议的一点是:CrowdStrike既不好好测试,也不做灰度更新,直接全球推送,非常大胆,非常的不专业。有人发现,CrowdStrike的创始人之一,之前在McAfee也闹出过类似的问题。这一点还真是,我也不知道如何吐槽。
CrowdStrike是草台班子,这一点可能没错。但国内的软件企业,我可是更加不放心。

我曾经有个同事,脑子算是聪明。别人上大学的时候,他当兵去了。复员后也没受过什么系统性的专业训练,「怎么写代码」这件事情,都是自己琢磨的。其实从这一点就能看出来,人的确是挺聪明的。但他路子也挺野。若让他去研究技术问题,我认为或许会是一把好手,但不应该去做工程师。他写出来的代码,Bug不少。
他有一种自创的加密文件格式,其中的加密算法基本上就是异或,关键是密钥是他自己的硬编码。这个东西用在了他当时给公司开发的产品中。后来他离职了,代码就交接给了我。「Bug多」的印象,也就是这个时候留下的。
听别人说他去了某大城市发展。再后来,可能四五年后了,我在研究360的一款产品的时候,发现它们的漏洞库文件的HEX密文看上去很眼熟。于是我用那位同事留下的代码去试了一下,没想到真的一下子就解密成功了。
这……

所以,「脱钩」并不能保证不受影响。相反,闭门造车,低水平造轮子,还加上不用接受市场检验,由政府背书和「保送」,使得出现这种问题的机会,其实是增加了。
要问什么才是真正有效的手段,窃以为,增加多样性,增加市场竞争,算是一个。
所谓「信创」,不管背后的内容是什么,重点应该放在「创」字上。如果还是现在这种搞法,把重点放在「不被卡脖子」上,不可能解决这个问题,反而会恶化。

如果能创造出更多样的生态,有了更多的选择,就不会吊死在一棵树上。最理想的情况,每个软件都是不一样的,就不会因为一个弱点而全球瘫痪。
就像生物世界一样,每个人的DNA都是不一样的,没有什么病毒可以杀死100%的人类,总有人能幸存下来,然后把抗病毒的基因传播下去。

说到底,科学技术范畴的事情,就要遵循科学技术的发展规律,而不要想着去为自己的政权安全服务。出发点如果就「心术不正」,最后是结不出什么好果子的。

2024-07-22

我的手机史(十一)——iPhone SE

2016年,准确地说应该是3月26日,我在清明节回重庆之前,去AppleStore买了一个当年三月份新上市的iPhone SE,把我之前在用的Samsung Galaxy Note 3手机替换了下来。Note3带回去给了我爸去用,老人可能更需要大屏幕一些。而我,其实更喜欢小屏幕的手机。

我的手并不算大。或者说,我的手掌可能比较大,但手指不长。我的手指和手掌的长度比例,不像有些人是3:2或4:3,甚至都不是1:1,而是有点夸张的3:5。这使得我用手指去「够」屏幕远端的触控内容时,单手操作有些费劲。还因为这个原因摔过几次手机。

所以,体验过大屏幕手机之后,这次我又回归到了小手机上。
这部iPhone SE有着5S的尺寸大小,外观几乎一模一样,但内部的系统,甚至略微高过6S,或者说起码是同一个级别的。速度自不必说,除了电池略差,其它都是当时iPhone最高的档次。64GB,总之是够我用了。

这回是本尊无误了

当时的我,觉得买的很值。别人以为我这个是5S,特别是我套了手机壳以后。但我也不在乎,自己用着爽就行。

没过多久,下半年吧,苹果出了iPhone 7。有了防水功能,也因此把耳机插孔砍掉了。我的SE在耳机插头方面变成了绝唱。
再后来,苹果爆出了「电池门」事件。为了平息众怒,答应给所有符合条件的手机免费换原装电池,即使是不符合条件的,也可以打折换电池。
太太当时在用的iPhone 6 Plus,就在苹果商店免费换了电池。刚好岳父说没手机用,于是我去买了一台iPhone 8 Plus,把SE也拿去掏钱换了一次电池,然后就给岳父用了。当时电池峰值容量还有89%,Apple的店员一直劝我考虑考虑。

岳父也是狠人,后来这部小SE,他一直用到去年,才被替换下来,算算大概服役了6年多。电池肯定又不行了,峰值容量剩73%,Home键也不太好使,屏幕边缘也开始发黄,总之是一副行将就木的样子。
不过其它功能说来还算正常。iOS版本一直支持到15,目前还算是能用的机型。现在它被我放在公司当测试机,毕竟5寸屏幕的小手机如今不太好找了。

2024-07-05

Dbgview与小狼毫输入法冲突

今天在调试一段代码的时候,偷懒用了OutputDebugString,于是想打开Dbgview看输出。双击了没反应,试了试dbgview64,还是没反应。有点奇怪,心说是不是旧版本不能用了,看看SysInternals有没有新版本可以下载,点开Chrome,发现Chrome启动也没反应了。心里有点慌,想开任务管理器看看到底怎么回事,结果任务管理器也打不开,这才真的有点发慌了。

一番折腾没有效果,包括找了别的电脑RDP远程桌面过来,也进不了桌面,还把主机卡在登录界面进不去了。还好右下角的重启按钮还是有反应,而且没让我等多久。
重启完以后,第一时间去开任务管理器,然后重来了一遍。之前以为是偶然现象,确实很久没重启了,但发现这次Dbgview还是卡住,还是只能重启。反复折腾了几次,都是如此。上网一搜,还真有人遇到类似问题,一看「对方」——小狼毫。

这和我的情况对上号了,我也在用这个小狼毫作为输入法。于是我把这个输入法的主进程WeaselServer.exe杀掉以后再去开Dbgview,工作得非常正常。于是案子算是破了。
接下来我好好调查了一番这个事情。除了原Github贴子反馈的事情,我还发现了一些情况:

如果先有WeaselServer.exe,再去启动Dbgview.exe,Dbgview就会卡住,界面出不来。如果事先开着任务管理器,就会看到Dbgview.exe进程出现,并未「无响应」,CPU占用率也不高。此时如果杀掉了WeaselServer.exe,系统会立刻恢复正常。杀掉Dbgview.exe也行,但系统恢复要慢上一点,似乎在等待着什么。

如果是先有Dbgview.exe,再去启动WeaselServer.exe,则会在Dbgview上看到大约100条左右的日志出现。多也没有很多,而且后续并没有更多的日志出现。
诡异而关键的一点来了:此时DbgView也能在界面上通过鼠标正常操作,只是不能碰键盘。如果一动键盘,哪怕仅仅单独碰了一下Ctrl或Shift键,都会导致DbgView无响应。

而只要Dbgview.exe开始卡住,接下来Windows里面就会无法新建进程。在别的已经启动的进程里面,也不能去碰键盘,一碰就卡。包括任务管理器,我前几次被迫重启,就是栽在这里——我实在是太喜欢用快捷键了。

在测试时,有碰到过一次Process Explorer能够「例外」,也就是说操作键盘不会被卡住。但接下来我想要再重现,发现它的「防护结界」失效了。所以目前还算是没找到规律。

这问题看上去是Dbgview.exe和WeaselServer.exe这两个进程在键盘消息的处理方面有所冲突。原Github贴主提到的「过滤掉“.cc:”相关日志」的临时解决方案,并不能解决我遇到的问题。我试过,即使让DebugView停止Capture也不行。不过,只要注意启动顺序,并能忍住不要去用键盘,就还暂时可以让它们俩一起工作,相安无事。

我不知道作者会不会去修正这个问题,以及什么时候修正。有点担心,恐怕他缺乏足够的动力和精力去做这种事情。现在真的没什么好输入法可以用了么?

2024-07-04

两个关于「日本人」的小故事

最近,苏州的日本校车刺杀事件作为一个新闻热点,随着胡友平女士的离世,慢慢进入平复期。
相关的讨论已经很多了,我也无意再去发表一些观点和看法。今天只是简单地分享一下两件跟「日本人」有关,对我感触比较深的事情。两个小故事,也不代表和说明什么,随便看看吧。

没来由的恨意

许多年以前,当时我还在厦门工作。公司里有位女同事,我们都叫她小王。
小王是一个比较朴实的人,心直口快,没什么城府。她有一次跟我们聊天,说起她上一份工作时,特别提到同事里面有一位是日本人,跟她关系很要好。

『他后来回国了,临别的时候,还送了我一套茶具呢!』

小王说这话的时候,是颇有一些骄傲自豪的情绪在里面的。
然而,紧接着她又说:

『但是我一直告诉他,我很恨日本人。跟你个人无关,我就是恨日本人。』
『他临走的时候还哭了,问这是为什么。』
『我告诉他说,我也不知道,但是就是恨。我这一辈子都不会喜欢日本人。』

我们也有点纳闷,问她是不是祖上有什么前辈,在二战日军侵华的时候死在日本人手上?她说并没有,而且强调说她真的不知道为什么。
说到这里,她眼里应该有迷惘,但我并没有看到。我看到的,还是骄傲自豪。

再后来,小王肚子大了,辞职回家生孩子去了。我们后来再也没见到她,只是偶尔在看见路边的大肚婆时,不约而同地猛然互相问起「小王生了男孩还是女孩」这档子事来。

你们为什么叫我「日本人」?

大学时候,有一位同学,成都本地人,姓李,住我斜对面寝室。大家平时都叫他「日本人」。叫得顺了口,俨然已经成了他的绰号。最开始这样叫的,大概率是他同寝室的同学,估计从来没有人问过为什么。

有一天中午,我在寝室边吃饭边玩游戏。他寝室的同学估计都不在,自己大概也忘了带钥匙,开不了门,于是跑来我这边「串门」,很随意地逛逛。

我也用他的「日本人」绰号称呼他,跟他打招呼。
然而那一天不知道是不是他过得不太顺心。总之不知道怎么回事,他一下子就爆发了:

『我不知道你们为什么都要叫我「日本人」,我又没得罪你们,你们为什么要这样子对我?』

这话的语气,我可能不一定能准确形容。总之用「抱怨」可能是有点避重就轻了。他的火气很明显,看起来完全不是在调侃或开玩笑。这个情绪一定在他心里被压抑了很久。我心中一「咯噔」,完了,今天要在我这里「爆炸」了?

我心中闪过了无数个念头。
要说他像不像日本人?身高应该有超过一米八,也算仪表堂堂,家世应该也不错。有一次他女朋友跑来学校找他,闯到教室来打听。挺不错的女孩儿,配得上他,后来他还被我们集体起哄。
要说他哪里像日本人?如果鼻子下面留上一撮希特勒小胡子,戴上黑色圆形小眼镜,再配上他那标志性的「狞笑」,倒是真的有点像抗日神剧里面的日本军官。
不过……
表面上我是不动声色,捏鼠标的手也没动过,只是白了他一眼,然后缓缓说道:

『谁让你成天嘴上都是「说的是呢」、「说的是呢」?』

我觉得我肯定是抓住了我那无数个念头中,最好的那一个。这个短语也的确是他的口头禅。我甚至觉得我真的Get到了第一个称他「日本人」的那个人心中的Point。

估计我和他都是「恍然大悟」。他接下来的表情,我只能想到四个字:「回嗔作喜」。

『说的是呢,原来是这个原因啊。』他嬉皮笑脸地坐到我旁边来,『哎,你说这个日语也真是有意思哈。你看,「说的是呢」,这几个字换成中文也是这个意思。你说这日语是不是就是当年学的中国话……』

我附和着他后面的喋喋不休,心想着这次危机应该算是解除了吧。

2024-07-03

从KuaiCheDao搬迁至Nube.sh

之前为了让太太看Netflix,经人介绍在KuaiCheDao上买了一个SJC的VPS。价格不算非常便宜,但也还好,而且「质量」的确不错。带宽和速度都不错,当时说是家宽,用下来感觉跟其它VPS提供商的东西的确有些不一样。自己的VPS,IP地址比较爱惜,后续很多时候都派上了不小的用场,包括AI。

前些天,收到了邮件,说这个VPS即将关闭,在7月后就没法续费了。替代方案是迁移去Nube.sh。
说起Nube.sh,我知道是同一个老板折腾出来的东西,想从VPS变成Cloud,也就是向Vultr之类看齐,貌似费了不少劲。之前他一直没弄好Nube.sh的SJC地域,我也就没去关注。现在要强制迁移KuaiCheDao上的客户,想必是已经搞定了。于是周末我就去尝试把VPS迁移了。

先说说这个Nube.sh本身吧。
打开页面,就直接提示我用Google账号登录。我懒得注册,直接允许了,确实比较省事。
控制台比较简单,功能或许尚算够用。地域的选择位于页面上方中部,感觉属于框架的部分。我一开始没看到,疑惑了半天结果还是下错了单。而且一旦下单就立即开始部署,说起来也算是太过「流畅」,但这种既没有「确认」界面,而且页面下方还有用户没明确选择的项目也没给提示的UI设计,结果就是我稀里糊涂$0.02一键就出去了。这个必须吐槽一下。

老板给了$0.2的授信额度,可以用于摸索和测试,包括测试IP和网络的情况。基本上这个额度够用了。
最小的实例一小时才$0.0027,月租不到$2,额外的IP和存储费用还不到$0.3。流量每G只要$0.0009,按原来KuaiCheDao的额度2TB计算相当于$1.8。而且Nube.sh这边算Outgoing不算Incoming,反正比阿里云便宜多了。
当然,现阶段价格有折扣。恢复正常以后,按照KuaiCheDao我原来的VPS规格算下来大约是一个月$5不到。相比起来,费用方面还是会更便宜一些。不过可想而知,老板肯定能更方便地超售。

IPv6用起来貌似没遇到太多问题,目前能正常用。KuaiCheDao那边曾经遇到过问题,而且修好以后还有过反复,后来我索性把IPv6给禁用掉了。
拿到的IPv4地址也看了一下。type也是hosting,不是isp,有些遗憾。虽然VPS肯定是在SJC,但IP是香港的Cogant,不过用ipinfo去看确实是在SJC没错。
我KuaiCheDao的VPS地址印象以前中是isp,现在发现也变hosting了。用起来倒是还没什么感觉,反正太太现在更多的都是看我下载到本地的片子,而不是在线看Netflix了。试了一下ChatGPT可以用,那就还算OK。

测试完成后,用银联卡充了$10。VPS部署完先放了起来,等我KuaiCheDao到期后就把线路切换过去。
只希望这个Nube.sh不要像KuaiCheDao那样被人攻击。

2024-07-01

微软更新弄丢了我的VS2013窗口布局

早上来公司,打开电脑显示屏,发现似乎有些不一样。周五下班时挂着在运行抓Dump的一个程序,不见了。

心中一喜,还以为抓住Dump了。再一看,Visual Studio不对劲。心一沉,去Windows日志里面一看,果然今天早上1点多的时候,机器被重启了。再去看Windows更新日志,果然,今天凌晨安装了KB5039299,然后就被微软自动重启了。

微软还挺贼,重启完了以后,还把我的应用程序都给「恢复原状」。包括像Chrome和Visual Studio。可里面的工作状态终究是没法真的恢复,而且把虚拟机也给我关了,简直气死我了。我已经想尽了办法阻止它自动重启,而且也禁止了Windows在登录时重启应用,可这货在这一点上简直比中国AI还蠢,横竖不听,我行我素。

别的我就忍了,大不了当作周末断过电。可微软还干了一件出格的事情:它把我的VS2013的窗口布局给重置掉 了。我一共开了6个VS2013,其中5个都被重置过了。我小心翼翼地最后关闭那个看上去没被重置的VS2013窗口,然而没用,新打开的都是那种资源管理器在右边的布局形态。

记得以前也处理过类似的事情,后来发现有捷径。在网上搜了一阵子,总算捡回了记忆。

工具 -> 导入和导出设置
从「工具」菜单中选择「导入和导出设置」,然后选择「导入选定的环境设置」,再接下来选择「否,仅导入新设置,覆盖我的当前设置」。
最近没有备份过,但我对工作环境并没有什么特别的定制,所以重新选Visual C++就好。如果对于习惯的开发环境特别在意,平时还是注意导出并备份吧。保存路径在自己动手的过程中就可以看到。

还是更习惯VC++的传统窗口布局
我还是更习惯传统的资源管理器在左边的那种VC++的窗口布局方式,可能也有一些老筒子跟我是一样的习惯吧?

每个周一都很忙,真希望微软不要再添乱了。

2024-06-25

我的手机史(十)——Samsung Galaxy Note 3

太太一直喜欢看韩剧,带孩子也很辛苦,于是2013年她过生日的时候,我偷偷买了一部当时的三星旗舰Note3,送给了她当生日礼物。

图片来自网络,非本人手机

太太很开心。当时韩剧里面铺天盖地都是前一年发售的Note2,Note3则是刚刚上市的新锐机种。我还特意把铃声设置成了跟太太正在看的韩剧里面主角用的手机一模一样的铃声。然后我就从太太手中接过了4S自己用。

要说这部Note3的确颜值很高。白色皮质背面,自带一杆手写笔,6寸的大屏,还比iPhone要轻。当时的对手iPhone 5S只是一款「小」手机,比4S要长一些而已,还被人吐槽说长宽比例不协调。相比之下,三星的大屏手机,在尺寸上没有对手。

后来这部Note3也来到了我手里。那个时候我的眼睛其实已经出了问题,视力在慢慢减退。大屏可以用更大的字体来显示,比较适合我。4S之前的电池问题,三星由于可以换电池,所以至少给使用者一种安心感——电池不行了还可以换,手机还能用嘛。虽然实际上它比电池先「不行」,但这种心态就像后来电动汽车的里程焦虑,心理因素居多。

这是我和太太用的第一款Android手机,可能也是最后一款。这一切只因为一个事件。

当时太太把手机给她侄子,试图让小孩子在吃饭的时候安静一点。小朋友不知道什么时候自己去下载了一个《Subway Surfers》的山寨版,玩着玩着就被扣了钱。等太太拿回手机,已经被扣了好几个点播,外加一个包月套餐。

图片来自Google Play,与本文所述事件无关

我们也是看到短信,才知道「三星市场」里面还有这种靠移动扣费的山寨游戏。找移动也无果,没有人担责,最后这事也不了了之。也许放在十年后的现在,这件事情可能会有一个不同的结果。不过我们知道,在iPhone上是不会有这种事情的,AppStore压根就不会让它上架。

这之后我一般就只从Google Play上下载App了,也因此接触了APK Downloader。要说Android的好处也还是有不少,可以玩不少盗版游戏,而且还有模拟器。我后来看见过一位同事在Android手机上用模拟器玩《零之轨迹》,馋得我直流口水。

太太用上了iPhone 6 Plus之后,Note3用户变成了我。我用来当作办公手机用过一段时间,因为有根手写笔,开会记笔记还是挺方便的。电量也不错,算是大屏手机的另类优势吧。再后来,我终究还是手小,嫌它太大,把它给了我爸,让它的大屏幕陪老人家发挥余热去了。

2024-06-20

Nginx更新遇到GPG签名变更

这些天对自己的Debian系统进行apt update的时候,总是遇到报错:

W: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: http://nginx.org/packages/mainline/debian buster InRelease: The following signatures were invalid: EXPKEYSIG ABF5BD827BD9BF62 nginx signing key <signing-key@nginx.com>

W: Failed to fetch http://nginx.org/packages/mainline/debian/dists/buster/InRelease  The following signatures were invalid: EXPKEYSIG ABF5BD827BD9BF62 nginx signing key <signing-key@nginx.com>
W: Some index files failed to download. They have been ignored, or old ones used instead.

我的Nginx是按照官方指引从来源安装的mainline版本,不是直接用的Debian的apt源内置的Nginx。Debian的Nginx我嫌它版本低了。

当时瞄了一眼,知道是说GPG的签名出了问题。这种问题可大可小,如果是之前的版本被人植入了恶意代码,就像之前的XZ/liblzma后门事件,那么一整个源可能会被撤销。
但我也看到了「EXP」字样,所以似乎只是简单的Key过期而已。并且同期并没有大的信息安全新闻爆出,不像是安全事故。鉴于我当时的时间紧张,并没有当场去处理它,反正Nginx更新得并不是很频繁。

今天花了点时间来仔细看了一下,果然是Nginx的PGP Key在六月14日过期了。Nginx的官方Blog登载了这一则通知,同时也提供了更新的方法。
按照官方的指引,只需要执行下列命令即可:

curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null

如果你是像我一样在root下面操作,并且没有安装sudo,那么去掉sudo就好:

curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor | tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null

更新完Key以后,可以用下列命令来验证新Key的过期时间:

gpg --dry-run --quiet --no-keyring --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg

据Nginx这篇Blog中称,今后将以大概每两年一次的频率对他们的PGP Key进行更新。果然这次得到的新Key的到期时间就是2027-05-24。


2024-06-18

送别同事,还有更多

昨天送别了一位同事,也可以说是我亲手送走的。她的试用期考核,没有能够通过。

决定是周末下的。和别的同事讨论了很长的时间,最后很艰难地下了这个决定。
因为是我面试招进来的,所以心里很是难受。这也等于是打了我的脸。
其实平时的工作还算是过得去,但是评定考试的成绩太差。同时参加培训的学生里面,她的分数比其他人要低一大截。真正用人部门也不是我,其他人要是都觉得不能留,我也没法力排众议。

对方应该也有所心理准备,默然地接受了。不过要真说起来,除了考试成绩,还有一个最重要的因素就是这个岗位只有一个职缺。如果现在凑合将就了,后续就没有了犯错的机会,剩下的只有风险而已。经济时局不好,企业都在降本增效,力争在寒冬之中先活下来,没有那么多机会留给「试错」这种事情。

图片来自Stable Diffusion,纯属虚构

无独有偶,今天听说公司还有两位同事也要被「清退」,大概就在夏天。不算辞退,但是合同到期就不再续签,也算是一种裁员了。

这两位同事都是比较边缘一点的岗位,寒冬来临之际,最先被撤岗,也并不奇怪。不过接下来要是再有进一步的动作,就难免人人自危,风雨飘摇起来。
我这人的个性,很不喜欢看到这些,但也不能不看。公司本来已经快开始盈利了,经历元首这一番折腾,结果去年出现了相当明显的亏损,今年不得不开始裁员。也不知道哪天会轮到我,更不知道以后会怎样。

不管怎么说,至少还有岗位在招人,一口气也算还没有断。
奇怪,我以前对于「铁打的营盘流水的兵」这句话,没有这么反感的。


Proxmox VE更新出了问题

在公司用Proxmox VE搭了一个「超融合」环境,开了一些VPS给同事用。因为没打算花钱,所以一直用的未订阅方式进行更新。

今天跑apt dist-upgrade的时候,遇到一大串内容:

root@pve:~# apt dist-upgrade
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
The following package was automatically installed and is no longer required:
  proxmox-kernel-6.8.4-3-pve-signed
Use 'apt autoremove' to remove it.
The following packages will be REMOVED:
  proxmox-ve pve-manager
The following packages have been kept back:
  pve-container
The following packages will be upgraded:
  libpve-cluster-api-perl libpve-cluster-perl libpve-notify-perl libpve-rs-perl
4 upgraded, 0 newly installed, 2 to remove and 1 not upgraded.

我也没有细看,一个回车按下去,报了一些错:

Do you want to continue? [Y/n] y
W: (pve-apt-hook) !! WARNING !!
W: (pve-apt-hook) You are attempting to remove the meta-package 'proxmox-ve'!
W: (pve-apt-hook)
W: (pve-apt-hook) If you really want to permanently remove 'proxmox-ve' from your system, run the following command
W: (pve-apt-hook)       touch '/please-remove-proxmox-ve'
W: (pve-apt-hook) run apt purge proxmox-ve to remove the meta-package
W: (pve-apt-hook) and repeat your apt invocation.
W: (pve-apt-hook)
W: (pve-apt-hook) If you are unsure why 'proxmox-ve' would be removed, please verify
W: (pve-apt-hook)       - your APT repository settings
W: (pve-apt-hook)       - that you are using 'apt full-upgrade' to upgrade your system
E: Sub-process /usr/share/proxmox-ve/pve-apt-hook returned an error code (1)
E: Failure running script /usr/share/proxmox-ve/pve-apt-hook

我这个笨蛋还是没有细想,按照提示操作了,随后重启了这台宿主机。
然后上面的VPS就启动不起来了。既没有自动启动,也无法打开Web控制台进行操作。netstat一看,HTTP端口监听没有了。

心里慌了,连忙上网搜,才发现好多人都在叫唤。只不过我是其中心比较大,真的操作了的那个白痴。更多人是在报错那步停下来了。

这下怎么办呢?翻了下日志,看到proxmox-ve和pve-manager被remove了。我想把proxmox-ve给装回来,又有报错,看来不行:

root@pve:~# apt install proxmox-ve
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 pve-container : Depends: proxmox-backup-client (>= 3.2.5-1) but 3.2.3-1 is to be installed
E: Unable to correct problems, you have held broken packages.

还好,讨论帖里面有人给出了抢救措施:

apt install pve-manager=8.2.3

操作以后,Web控制台出现了。我进去启动了VPS,用起来没有什么问题。
先这样吧,接下来就是等官方消息了。
我们应该都是没花钱的用户,也许官方不一定会有修正?

-- 更新于2024.06.19:

官方已经为未订阅apt源修正了这个问题