企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
在面试了几个小伙子后,许三爷愤愤的跟我说,“没什么工作经验呢,就会了5种语言了。我只敢说自己就会一种语言,那就是python,因为我研究过它的编译器。” “照你这标准,我岂不是一种语言都不会啦?人家会5种语言,只要是能够熟悉其语法,熟虑用其开发项目也就足以。要求不要太高嘛。”我持反对意见。 “我想表达的是,这些小伙子应该谦虚一点。这样做不会给面试官带来好印象。” “好吧,我只是想跟你抬一杠。” 回过头来再说Docker。Docker的好处那么多,我终于忍不住动心了。安装的时候发现Docker的要求像许三爷面试一样高,跑在64位机器上,Linux kernel要3.8以上。64位机满足了,但第二条不行。我的Ubuntu 12.04还是3.2的kernel,要想玩Docker就要先升级kernel。本以为这还是一件轻松加愉快的事情,但结局却出乎我的意料。就像那流行的一句话:是我入戏太深,而结局却一个人。 我以前在我的Fedora上编译过kernel并运行它。只要一步一步安装文档来,成功率还是挺高的。这一次我按照Docker install 文档来,只一句命令就将kernel升级了,然后reboot,一切都很美好。在那个周五的晚上,我体验着Docker带来的美好,真是太令人兴奋了。时间不早,我高兴的关机回家,心中憧憬着周一回来用Docker搭我的wiki。 周一早上我神采奕奕的来到办公桌前,快速按下电源按钮,开机。然后给自己打来一杯热水,静静的坐下,却发现系统进不去了。重启一下试试,还是进不去Ubuntu。我这电脑是双系统,试一下进入另一个XP系统吧,结果可以。我心中暗骂Shit,却发现自己无计可施。Grub可以进来的,但输入命令不起作用。半个小时的瞎推断仍然不行,我确认自己是摊上事儿了。脑袋嗡的一下瘫坐在座位上。 我怀疑是kernel升级造成的。多方资料调查后,发现kernel升级之后,对于双系统要执行“update-grub”。既然是grub,我可以进行一些修复才对。试着制作一个U盘启动的Ubuntu进入去修改Ubuntu下的grub,同时也修改XP C盘下的grub。结果还是令我失望。看来要重装系统了。 对我来说,另一个问题出现了。Ubuntu系统没有分区,如果直接重装,那么我的所有数据都将丢失。其中有数百G的Android源码,还有我“价值连城”的Android动画源码,那是我呕心沥血用3周时间实现的。所有这些,我丢不起。其实我只是在原系统基础进行升级,那么用户数据是不会丢失的。但是有两个问题让我决定一不做二不休。一是原有的账户不能用了,错误提示提到了原用户是基于kernel 3.2,但终端(Ctrl+alt+F1)是可以进入的;另一个问题是,分区应该做,以备日后系统再次崩溃我不至于这样狼狈。 后一条是重点,因为谁也不希望将Windows系统分做一个分区,然后将系统和所有数据都放到那个C盘。在大干一番之前,我做了另外一个尝试。进入启动盘的Ubuntu进而访问我的硬盘,然后用gparted工具将其分区。但结果是,刚刚升级的系统又启动失败。我顿时放弃所有尝试的念头,要做一件快刀斩乱麻的事。 在一个月黑风高的夜晚,我将数据拷出来(包括XP中的资料),然后准备随意蹂躏我的机器,让Ubuntu做我唯一的操作系统。之前跟许三爷探讨过分区的形式,按照惯例大多将Ubuntu建三个分区:根、Home以及swap。系统安装在根目录下,这就与Windows安装在C盘中类似。个人数据都在Home下,不论你有几个用户。但是,如果你习惯将自己的软件放在/opt下,或者搭建Web server,如果重装系统,/opt和/var目录仍然会被格掉。所以也可以将/opt /var等你需要的目录也分出来。 分区做好了,剩下的就很简单了,因为我Ubuntu14.04的安装引导做的十分简单易懂美观,这在12.04时代是可望不可及的。安装完毕,重启硬盘中的系统,还是进不去!真是见鬼啦!这么晚了,我浑身冒着冷汗,想起了办公室里键盘声的传说。那是三年前齐天第一个发现的,说在许三爷指导我如何用英文对付德国客户时我的工位上,不时会发出机械键盘的敲击声。故事发生在周末,齐天约会被放鸽子后无所事事,去单位加班。空荡荡的开发大厅就他一个人,但偶尔会听见西面墙边的工位上有键盘的敲击声,几次之后,他有点发毛,迅速逃离那怪异的现场。后来告诉我们,其他人也发现晚上加班时有响动。我也听过,但我总是感觉那应该是隔壁开发大厅传来的声音。直到有一天我们去隔壁大厅开会,墙边根本没有工位,空荡荡的只有一个会议桌。一想到自己的假设被证实是错误的,我背后也直发麻。好了,赶紧回家,明天再说。 第二天早上自己重新做了一次还是不行,只好 再次找许三爷求助。我用一瓶可乐的代价换来了许三爷一上午的帮助,可惜的是还是没有搞定。他也没辙了,说所有的步骤都没有问题,并让我看他的分区信息。基本一样,我又用启动盘进入系统查看我的分区,发现我的机器与许三爷的有唯一的区别!那就是分区格式不同,他的是MBR,而我这里是GPT。MBR(Master Boot Record)分区格式最大的寻址范围是2TB,在大硬盘的今天它逐渐被GPT(GUID Partition Table)取代。而Ubuntu14.04在分区时默认就使用了GPT,这是一个新技术替代旧技术的必然。但问题是,硬件支持并没有跟上,这就造成了系统还是启动不了的结果。主板是12年的,虽然已经有了UEFI的选项,但经过几次实验发现它未能正常工作。最后的解决方案是,再做一个Ubuntu12.04的启动盘,安装时分区格式选择MBR,然后用14.04去升级这个系统。成功真是不易。 这一趟系统安装之旅源于Docker,在许三爷的帮助下终于趟过阵阵浑水。为了表达我的感谢之情,将许三爷的外号之前冠以刀客美名!谢谢刀客!