也有一段时间没有写博客了,记录一下最近的折腾经历。最近依然是不务正业的研究一些小东西,说是研究,其实也不过是学习其他大佬的方法和思路,说抄作业应该更恰当。

折腾的起点

那天在逛别人的博客,发现一个比较有意思的项目 ,是一个网页的聊天室。开源真是世界上最伟大的行为,之一。作为一个刚接触网站和服务器的小白,自然经受不住项目的诱惑。

fiora

我打算用本地的Docker容器先部署一遍。我尝试过用服务器的Docker,由于需要修改项目文件,就需要挂载容器文件或者进入容器内部。我有一点强迫症,服务器不大,我想要尽可能的保证服务器文件系统的整洁,还需要项目可以打包。我不想挂载容器里的文件,但是我用VSCode连接服务器里的容器会导致服务器卡死,所以只能用本地容器修改好后打包到服务器部署。

问题一

由此引出了第一个问题,我一直以来都是用的Win10 LTSC 2019的版本,这个版本已经是5年前发布的了,不支持Docker Desktop。

尝试解决

  1. 尝试了另一种叫什么docker tool的工具,但是这个工具也早就停止开发了,用起来各种问题。

  2. 经过搜索,网上说LTSC 2021版支持docker,我用U盘做了WTG,确实可以安装docker,但是docker引擎启动不了,找了很久也没找到解决办法。

  3. 最后尝试了Win11,总算没问题了。不过WSL2在Win11上用起来也就勉勉强强,因为docker desktop占用了太多性能。

问题二

大概是第二天我在岗位上摸鱼调试容器,切换到工作的WTG做了点工作,当我再回到Win11的WTG时,第二个问题出现了。Win11开不了机了,开机还没进入桌面直接卡死,只能强制关机,我裂开来。

尝试解决

重启多次后,更离谱的事情出现了,蓝屏了我去。也算有了头绪,因为蓝屏的原因大概率是驱动出了问题。于是我重新制作Win11的WTG,可以开机,整个安装过程完全没问题。按照习惯我设置好所有东西后,重启一次准备备份镜像,问题又出现了,开机直接蓝屏,我整个人都不好了。

还是同一个蓝屏代码,我除了系统自带的设置什么也没安装,判断应该是联网后系统自动安装了某驱动。我又开始了重装Win11,确实没有问题。

到此,Win11蓝屏的原因被确诊为公司电脑老旧,硬件兼容性出现问题。

新需求-新尝试

晚上回到家,我体验了一下Win11,在界面上确实更加现代化,但是用起来远不如我的LTSC。11系统预装了太多对我没用的东西,加上不太习惯11的操作,Win11没有留下我的心,我决定给我的U盘安装两个系统,一个Win11,另一个LTSC。Win11用来玩docker,win10用来日常使用和办公。

旧方案

在之前大学的时候玩过一段时间双系统,用的是多系统分区+编辑引导文件的方式。

用MBROSTool打造BIOS/UEFI多PE+WTG+Linux+凤凰+苹果系统启动维护.. ——萝卜头IT论坛

但是这个方式有一些缺点:

  1. 系统分区的大小几乎是从一开始就固定了,后续调整有风险,可能会导致两个系统崩掉。

  2. 部署很麻烦,引导文件编辑很麻烦。

  3. 两个系统之间文件访问可能会带来大麻烦,有比较大的概率会把引导文件搞坏。

  4. ……

  5. 玩过了,我不喜欢。

新方案

于是我采用了全新的方式,Ventoy+VHDX虚拟磁盘。

VHD/VHDX常见问题解答 ——萝卜头IT论坛

Ventoy:新一代多系统启动U盘解决方案

优点有很多:

  1. 系统分区大小可以灵活设置,随时更改。

  2. 部署方便,不用修改引导文件。

  3. 由于这种方式有两层引导,两个系统之间的访问不会影响引导文件。

  4. U盘空闲的部分可以作为所有系统的公共空间,直接访问公共空间很便捷还没有风险。

  5. VHDX可以用差分,秒备份,秒还原。一个基础系统可以差分出多个用途的子系统,节省空间的同时体验多系统。

  6. ……

  7. 我想试试新的。

差分VHD 系统秒备份、秒还原教程 完胜GHOST ——萝卜头IT论坛

第二天上班就开始实施,先是制作Win10,一切顺利。

问题三

开始制作Win11,由于先前的经验,我直接拔掉网线,全程离线制作。部署过程还是顺利的,我把部署之后的Win11.VHDX放到Ventoy里面。Win11,启动!完蛋!问题出现,部署还没完成,好像提示计算机管理配置有问题(有点忘了)。

尝试解决

wtga

  1. 之前部署过多次的成功经历,让我并没有把这个问题当成难题,自认为是写入文件时出现了一些偏差,于是我重新制作,启动!——失败*2。

  2. 尝试两次之后,我意识到一定和部署时的设置有关系。VHDX两段引导的特性不同于之前,两次引导成功才后会进入系统安装流程,而报错出现在安装流程之后大概2分钟。这个阶段是设置用户账号的阶段。恰好有一个设置是“跳过OOBE阶段”,这个设置就是直接默认使用Administrator账号。我又一次重新部署,启动!——还是失败。

  3. 一般来讲,如果系统启动失败,会自动进入系统自带的恢复环境,而系统初次安装是否会调用恢复环境呢,需要试验。我取消勾选“禁用WinRE”,启动!——依旧是失败。

  4. 我并没有把希望寄托在第3点上,那只是一个小尝试。继续分析,从之前使用Win10.VHDX的时候观察到的,在两次引导成功后,VHDX文件并不会消失,VHDX系统和VHDX文件本体即使是在启动成功的之后也依旧保持着脐带般的联系,系统的读写依然是在对VHDX文件的本体进行操作。是了,问题点找到了,操作文件的需要索引地址,而windows中的绝对路径包含了盘符。在部署的时候有两个设置都和盘符有关,分别是“屏蔽本机盘符”和“无默认盘符”。

  5. 我最多只需要实验三次就能成功,三次之后果然成功了,需要同时取消“屏蔽本机盘符”和“无默认盘符”才能顺利安装系统。

回顾问题二

因为VHDX差分的特性,我可以不需要反复重装系统去找到导致Win11蓝屏的驱动。因为如果不找到解决办法,我的Win11系统就只敢用在我自己的电脑使用,作为Windows To Go系统,却不能“To Go”该是多么遗憾的一件事情。

我差分出好几份系统备用,我进入系统one by one的给每一个硬件打上驱动。可是!当所有驱动全部装上后,本该蓝屏的系统却正常得不能再正常了。用备用系统再一次试验后,确定了,和驱动没有半毛钱关系。我又怀疑是网络的锅,或是自动更新的锅。我完全搞不明白了,这根本就不会蓝屏。难道我真的遇到玄学问题了吗?这个Bug或许只会出现在传统方式部署的系统上,VHDX大法在兼容性上面依旧遥遥领先。

精力有限,这个问题就留在这里吧,Bug11在这几天几乎消耗掉了我对它的所有好感。已经部署好的Win11我应该也不会去用,就让它尘封在U盘里吧。在稳定实用这方面,依旧没有一个版本比得过LTSC,颇有一种先贤(Win7)已故,而后继无人的落寞。

Docker的另一条路

不用Win11,Docker还搞不搞?当然要搞。众所周知,哪有程序员用Windows搞开发?Linux不香吗?前面说到多系统的新方式(Ventoy+VHDX),其实Ventoy还可以用来启动Linux。

有三种方式:

  1. 直接启动Linux.iso镜像文件当作Live系统。这种方式属于临时使用,重启会重置Live系统中的所有文件和设置,每一次开机都是新的系统。

  2. 启动提前制作好的Linux.vhd.vtoy文件。Linux.vhd.vtoy就是一个实机系统,和直接安装的系统没有任何区别,实现Linux To Go。

  3. 在第1点的基础上,使用数据持久化。字面意思,弥补了不能保存数据和设置的缺陷。

探索Linux的不归路

Linux系统是一个庞大而繁多的家族,其多样性体现在不同的发行版、桌面环境和内核版本上。作为一个开源操作系统,Linux吸引了全球范围内的开发者和社区参与者,他们共同为Linux的不断发展和演进做出了巨大的贡献。 —— ChatGPT

从Debian、Ubuntu、Fedora到Arch Linux,每个发行版都有其独特的特点和面向特定用户群的设计理念。桌面环境方面,GNOME、KDE、XFCE等提供了各种不同的用户界面选择,满足了不同用户对于操作系统外观和体验的个性化需求。 —— ChatGPT

对于刚接触Linux的人来说,选择一个自己喜欢的或者适合自己的Linux系统并不是一件容易的事。为了省事,我只尝试了distrowatch排行榜上前10的操作系统,你不会以为只有10个吧?每种个系统都有不同的桌面环境,我尝试了4种。

好在有Live镜像,依然是花了很多时间去尝试不同的发行版,每一个发行版都像是一个独特的玩具,这是Window所不能具有的新鲜感。最终我选择了几款发行版,是的,Ventoy并不会介意我海王般的选择。

基础的Linux系统并没有桌面系统,一般用于服务器,我是在电脑上使用,自然是需要Linux Desktop版,桌面环境就像是一件衣服,衣服分为好几类,每一类又可以有不同的装饰。经过多次尝试,最终选定了GNOME,默认就是dock栏+状态栏。几乎完全不同于Windows,说真的,Windows真的玩腻了。GNOME省心,不用像KDE那样繁琐的设置,花里胡哨的玩不动了。也不像XFCE那样原始简陋,XFCE总会让我想起Windows,长得太像Win的私生子了(个人觉得)。

在此简单介绍一下我的各位Linux后妃:

  • Arch,A教教徒所信仰的Linux之神,这是一个完全听话的神。

  • Manjaro,A教异教徒最贴心的棉袄,美丽、可靠且优雅,我的梦中情人。

  • Mint,我愿称之为U系最得意大弟子,居distrowatch排行榜第二(第一的排名是刷的),是我的Linux白月光。

  • Ubuntu和Debian,作为U系和D系始祖,万物之起源,至今于网络世界中留有巨量的传说(教程)。

总结

这次的折腾经历长达10天+,对于公司我是心存愧疚的,毕竟白嫖工资多少说不过去。还有很多事情没有提到,下次再说了:hackchat项目、fiora项目、网页聊天室的发展历史、docusaurus项目、意外删除工作资料、CHIPFANCIER UME。为了解决docker问题,引出了一大堆事情,真的忙死我了。

乱七八糟列一下心得吧,不枉这时光了:

  1. 学会了列点,条理明了很重要。

  2. 接受不完美,不要为了不重要的的细节浪费时间和精力。

  3. Docker是一项伟大的发明,容器化带来的好处吃过的都说香。

  4. Win11是屎般的难吃(没吃过屎)。

  5. Linux好吃不腻。

  6. Ventoy功能性、兼容性、易用性在同类型软件中无敌。缺点暂时没想到。

  7. WTGA使用VHDX方式部署Win11时不要勾选“屏蔽本机盘符”和“无默认盘符”,可以部署完成后设置。

  8. VHDX必须要安装完成后再用Ventoy,Ventoy疑似不能引导Windows安装程序。

  9. 安装WTG时最好是拔出可移动磁盘并且脱机其他盘,否则会有莫名其妙的问题。

第7点教程参考:

Windows To Go屏蔽本机硬盘教程 ——萝卜头IT论坛

第8点解决方案参考:

使用Ventoy启动Windows To Go](https://bbs.luobotou.org/thread-47574-1-1.html ) ——萝卜头IT论坛

总算告一段落了,今年也快结束了。



本文链接:https://ifdess.github.io/posts/9vetgwtg/
版权归属:IFDESS' BLOG
许可协议:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。