分类 通用知识 下的文章

视频点此
第一期第二期

一、为什么需要

举个形象的例子:你的Linux装在一个50G的硬盘中。就是说,能用的空间就只有50G。现在,加入了一个100G的硬盘。

要知道:Linux中任何分区都需要映射到某一个文件夹上面才能使用。这个映射过程叫做“挂载”,而这个显示分区内容的文件夹就是“挂载点”。一旦文件夹变成了挂载点,这个文件夹下的内容便不能被显示出来了。而Linux的很多文件放置的位置都是统一的,你不能更改。所以这100G你要怎么加入到系统中使用?

仔细想想,挺不好搞的吧?

新建一个文件夹当作挂载点:你只能存储你自己的东西到这上面,大多数内容还是在50G的硬盘中;

挂载到内容多的文件夹下:不但需要先将所有东西移动过去,还需要调整fstab文件。而且容量是事先定死的,如果其他文件夹占用也高了,还需要经历无损调整分区—新建分区—移动数据—设置挂载点这样繁琐的步骤。不好。

这时候,lvm的作用便显现出来了。

二、优势

lvm把任何你想的分区整合成一个大的虚拟硬盘,使你可以在这上面进行分区操作。而任何事后加入的硬盘,都可以在不关机的情况下进行整合操作。

就像Windows的跨区卷,可以将不同硬盘的空闲空间整合成一个分区使用,容量等于空闲空间之和。但lvm更灵活的地方,在于它整合之后,出现的是一个新的“硬盘”,用户可以在这个“硬盘上面”再分区。

三、方法

总是有人认为Linux需要用命令,一般人用不懂。我也不知道这种印象是怎么来的,大概是因为网上能找到的教程都是命令形式?那我就用图形化的来展示一下。参见这里

在新的笔记本上头安装好Arch后,最近几次突然出现了个奇怪的问题:

系统检查完成后,sddm总是起不来。但系统是已经启动成功的,因为我可以切换到tty界面进行操作。但尝试在tty界面输入sddm,却给我返回错误:

Failed to read display number from pipe

但是,通过systemctl restart sddm重启一次服务,却又可以正常启动了,直到下一次重新启动需要再进行一次这个步骤。

真是头一次遇到这种问题……

后来在Archlinuxcn的群组里搜索了一番,看到了一个解释,说是熵不够。可以通过命令

cat /proc/sys/kernel/random/entropy_avail

来查看熵值。想要sddm启动需要差不多2000的样子。

我照做了。然后得到了刚启动时候的熵值:20

虽然到了也没明白为什么sddm启动要检查熵,但是这很明显差得太多了,那问题应该就是这里了。

有没有什么办法能提高熵的值呢?还真有。

pacman -S rng-tools
systemctl enable rngd

重启。

真好,刚启动就2700多了呢。

但是,对sddm启动的解决卵用也没有…

后来又看到一个,大概意思就是:

kabylake架构的CPU,要把驱动加入内核

来试一下:

  1. 安装intel驱动:pacman -S xf86-video-intel
  2. 编辑/etc/mkinitcpio.conf,在MODULES=的括号内增加intel_agp i915
  3. 重新生成initramfs。以防万一,先不做覆盖:mkinitcpio -c /etc/mkinitcpio.conf -g /boot/linux-i915.img
  4. 重新启动。在grub处按 e 编辑启动项,将 initramfs-linux.img 位置更改为 linux-i915.img,按F10启动

啊…终于成功了。虽然熵才30多,但sddm也终于能一次起来了。

既然启动成功了,就可以把这个自定义的名称更改成initramfs-linux.img并覆盖原先的镜像了。不过为了安全,把原先镜像做个备份大概也是有必要的。

不过,虽然解决这个问题了,但我到底也没闹清楚为什么这种架构的CPU要启用KMS,更不明白为啥提高熵也能解决一部分sddm卡住的问题…

不过还行,从解决到现在,驱动啥的都滚了几个版本了,找时间去掉这俩模块再试一下

视频点此

大概是从去年,Linux阵营的改善仿佛充了会员一般……越来越多的公司开始贴近Linux。比如说微软的Linux子系统、WPS重启了Linux版本的维护、Steam开始Steam Play项目,使得非Linux阵营可以运行Windows专属游戏、百度网盘的Linux版、NVIDIA开始在Linux的驱动中加入双显卡支持……

到现在,连QQ for Linux都诈尸了

现在,在电脑版的QQ下载页的其他产品中,赫然放着 QQ for Linux 的下载入口

点进去,提供了几乎各个主流分支的安装包,直接下载安装即可。

但是,请永远记住:

Arch的源永远不会让你失望。如果没有,那么请使用AUR

至于体验如何,可以看我的视频。我在这里只想展示一下linux中国对于这次复活的一段评价


在 10 月 24 日这个程序员节上发布了 Linux QQ 2.0 版本让人觉得有点无厘头,甚至让人觉得可能仅仅是一个快闪活动,频繁的断线都让人担心是不是到了 25 日,可能 Linux QQ 就又不能用了。在 1024 程序员节的释出,使得 Linux QQ 可以以一个怀旧的形态重新出现在人们的眼前。但是,同样的,在这个节日的释出,也让人觉得这件事似乎并没有相信中的那么重视,对于 Linux QQ 的前景蒙上了一层阴影。

而且,腾讯并非一个慈善组织,对于腾讯这样的一个企业,是否会长期为一个很难产生现金流,而且小众的操作系统提供长期维护还尚未可知,更是让人无法相信 Linux QQ 的未来。

近两年来,自主研发的操作系统不断的刷屏,我们也一次次为自主研发的操作系统而欢呼。但是,高潮之后,还能剩下来的是什么?

我一直强调,操作系统卖的不是系统本身,而是卖因其产生的生态,由生态倒逼用户为系统本身付费。就如同我尝试很多次从 iPhone 转回 Andorid ,从 macOS 转回 Windows,但是,也正如我自己每次失败后的总结一样,我没有办法完全抛弃掉 iPhone 、macOS,因为其所带来的生态是我无法迁移到 Android 上的,被操作系统所挟裹,不得不去面对的现实是:最终,我还是回到了 iPhone 所构建的生态。

对于 Linux 也是一样的,Linux 的服务端的用户诉求是明确的、简单直接的、绝大多数场景都可以被覆盖掉的。而桌面端的产品可能会有数万种不同类型的需求,这使得产品经理在进行设计时预见不了需求的问题,也就很正常的问题。

我们回过头去看,Linux 想要占领桌面市场还需要什么呢?需要的不仅仅是一个 Linux QQ,我们需要给更多人提供 Linux 上的微信、办公套件等等一系列软件。没有这些软件,我们就很难让用户迈过入门的第一关:我如何登录 QQ /微信和我的同事、家人沟通。如果他发现,我用了 Linux ,但是我却没有办法使用 QQ /微信进行沟通,那么我用 Linux 还有什么意义呢?

对于 Linux 来说,除了去适配这些我们所熟悉的软件以外,更是需要有厂商能够面向 Linux 开发出独占的杀手级用户,这样,才能够更好的去推动一个操作系统的发展。

如果 Linux QQ 仍然继续更新,那对于 Linux 来说,是一大利好消息,一些做的好的、做的不好的应用,都可能会重新考虑创建自己的 Linux 版本。而过去,可能没有这样的机会。


我个人还是比较认同这种观点的。不只是腾讯QQ,算上之前发布的百度网盘,我也觉得是为了顺应国家政策而不得不开发出的产品。所以说,很多国内Linux用户一看到QQ for Linux复活了,就好像多大的喜事一般欢呼雀跃,奔走相告,甚至乐观的认为腾讯良心发现……

谈不上,甚至对提出这种观点的人有一股愚昧的印象。目光真的就只能看这么近吗?如果说,腾讯在之后发布了更多的迭代版本,功能上不求跟上Windows,能跟上OSX,再说它“良心发现”也还算过得去(虽然我不认为发布Linux版本软件能跟所谓“良心”挂上钩)。现在仅仅发布了一版便如此兴奋,正所谓“希望越大,失望越大”。

所以,请保持平常心。就仿佛Windows又新出了一个软件一样的心态来看待QQ for Linux的复活吧…

视频点此

之前的内容中,我提到了Arch中高级的英特尔、英伟达切换方案。如果你还记得,就应该知道,当时我说了一句“Hybrid项目不用管,用前两个就够了”。

Hybrid,翻译成“混合”。但是林纳斯曾说过一句名言:

So, NVIDIA, fxxk you!

不禁让我感到疑惑:这个Hybrid真的有用吗?

为了寻找这个答案,我翻阅了这个显卡切换项目的git。其中一则issue引起了我的兴趣

issue

其中提到的链接第二段是这么说的:

The NVIDIA 435.17 driver has a new PRIME render offload implementation supported for Vulkan and OpenGL (with GLX). This PRIME offloading is about using one GPU for display but having the actual rendering be done on a secondary GPU, as is common with many of today's high-end notebooks that have Intel integrated graphics paired with a discrete NVIDIA GPU.

NVIDIA的Linux驱动终于开始支持双显卡了。虽然依旧闭源,但至虽然开始针对Linux的驱动进行改进,但这其实也说明不了太大的问题,直到又看到了这个新闻

NVIDIA,也开始涉足开源领域了。

为什么说也?

IBM收购RedHat、Steam开始专门提供Linux支持、微软加入Linux基金会、腾讯宣布开源……这些都算得上是英伟达的前人。尚不必说一直推崇开源的英特尔、有自知之明主动开源的AMD了。

所以,开源到底好在哪儿了?

首先,要明白一个问题:开源是什么意思?

字面理解,就是开放源代码。但是,这不代表你可以任意使用,更不意味着开源就是免费。它有很多方式可以实现盈利:双重许可、有偿技术支持、软硬件一体化…开源不是做慈善,更不是反开源的一个理由。

然后,就可以来说说开源的优势了。

我记得我在之前关于N卡A卡的内容里就说过一个优势:让更多人参与到程序的优化中。付出同样的成本,得到更多更全面的维护,“白嫖”谁不爱?

这是对于作者的,那对于用户,开源的优势在哪儿?

可以直接看到源码。一款闭源软件,你既不知道其构成,又只能从部分渠道得知它的安全性。而开源让你真正的“眼见为实”。就像前一阵子Deepin被传代码内植入了监视代码,直接被中国监视。虽然是谣言,官方也解释过CNZZ代码段的作用,但多少的可以说明开源这种看得到的安全。

完全定制。能得到源代码,这便使完全修剪成为了可能。

北京地铁为例。房山线老车的车内屏幕使用XP系统(也可能是CE),因为现在车均崩溃,你可以很方便的看到界面细节。这也是XP时代的一个典型代表:在那个时候,很多设备选择了XP或者CE作为嵌入式系统。但伴随着设备多样化,Linux逐渐受到重视,就像9号线站台屏。因为Linux本身占用就不高,加上Linux的开源性,可以做到完全的修剪,进一步减少占用、节约硬件成本。

但是,这种随意性使得它有个对应的问题:“百家争鸣”。

Windows只有Windows,而Linux有各种各样的Linux。这就使得原作者对项目控制能力有了限制。

所以说,就像微软从“Linux是毒瘤”到现在“我们是一家开源公司”的转变,开源随着科技发展正逐渐的被重视起来,设备的多样性也在催化着开源的完善、壮大。