ch1ny / kira-hexo

A ✨ Kirameki no Hexo theme. Visit https://kira.host/ to get a preview. Style based on nexmoe.
https://kira.host/hexo/
89 stars 4 forks source link

代码字体 #4

Closed huigang39 closed 1 year ago

huigang39 commented 2 years ago

请问为什么我的代码字体都这么奇怪?能否自定义? image

ch1ny commented 1 year ago

非常抱歉!前段时间在忙毕设的相关事项一直没看 github ,请问这个问题现在是否仍存在?我这边没有办法复现问题,代码块渲染是正常的。 观察您的构建产物发现是代码块外部没有包裹上 hljs 的 div 元素,请问是否方便提供文章的 markdown 源码帮助我复现问题呢? 自定义样式的功能后续版本会提供出来。

huigang39 commented 1 year ago

非常抱歉!前段时间在忙毕设的相关事项一直没看 github ,请问这个问题现在是否仍存在?我这边没有办法复现问题,代码块渲染是正常的。 观察您的构建产物发现是代码块外部没有包裹上 hljs 的 div 元素,请问是否方便提供文章的 markdown 源码帮助我复现问题呢? 自定义样式的功能后续版本会提供出来。

好的,感谢,抱歉之前忙其他的忘记回复了。下面是文章的 Markdown 内容。

title: 移动硬盘安装多系统 tags:

移动硬盘安装多系统

碎碎念

前几天在回家之后的集中隔离的时候,心血来潮下单了一块西数的固态硬盘,体型很 mini 的那款,到货后首先就给它装上了 Ventoy,制作了一个可启动硬盘,然后下载了 Arch Linux 和 Ubuntu 的最新镜像,在硬盘里完成了多系统的安装,同时还留下 400 多 G 空间存放其他文件,而这也就是 Ventoy 的优势。

安装 Ventoy

首先打开浏览器进入 Ventoy 官网下载软件,应该是一个 zip 压缩包,解压之后应该如下图所示(可能会少几个 log 文件,没有影响,那是运行过程中产生的日志文件):

点击 Ventoy2Disk.exe 即可打开主程序,可能会弹出一个 UAC 权限请求窗口(如果你是以计算机管理员账户身份登陆的 Windows 应该就不会弹出这个窗口),点击“是”即可,随后会弹出主程序界面:

这里可以在“设备”一栏中看到你的设备名,我这里就是西部数据的 1T SSD 硬盘了,基本上用做上面改动,直接点击安装就好了(如果你插了多个硬盘或者 U 盘的话,注意设备选择是否有误),这样的话 Ventoy 就会安装到硬盘中,之后经过一番配置(后面再讲),电脑开机之后会弹出系统镜像选择栏,类似下图:

当然,你需要先在硬盘放一些系统镜像(一般都是 ISO 后缀),然后重启系统之后就会出现对应的镜像选项,选中回车之后你就能进入对应镜像的系统了,但是需要注意的是,这个时候硬盘并没有 持久化安装 到你的电脑里,只是作为一个临时的可以操作的系统(类似 Windows PE),你做的本系统做的任何操作都会在重启之后恢复原样(注意不要抬杠,你对硬盘做一些什么分区之类的操作或者对其他连接到电脑的设备做一些操作当然是真真正正的操作到了,因为这是你是对“其他设备”的输出而区别于对“本系统”的操作,这里指的是你安装了这个临时系统里安装了什么软件,设置了什么东西,重启之后都会复原)。

如果你想留出部分空间来真正地安装系统, 需要去设置里进行配置。

点击箭头所指的选项,便能打开下图此界面:

勾选“在磁盘最后保留一段空间”,然后填入合适的大小,这个所谓的“最后一段空间”,就是未分区的空间,我们可以拿来自己分区然后装系统。

我这里是填入了 500G 的大小,也就是说我拿这 500G 去装系统了,你自己填的合适就行。

配置完成之后回到关闭该界面,回到主界面,点击安装即可,如果弹出什么弹窗让你输入 “YES” 之类的东西,你就照做就是了。

等待片刻之后,我们的 Ventoy 安装就到此结束了。

系统镜像和 BIOS 配置

要想安装系统,我们就必须要有系统镜像(System Image),一般系统镜像都以 ISO 作为后缀(当然也有很多其他的格式)。需要注意的是,我建议大家下载系统镜像务必去官方网站下载(或者清华镜像源等国内镜像源)。

下载完成后,将镜像文件复制到硬盘中,如下图:

在根目录或者放到文件夹里都可以。

之后我们就需要配置 BIOS 里的 Boot 启动顺序了,注意下面的操作就开始区分机型了。

我们先把电脑重启(注意你的硬盘不要拔),在未出现 Windows Logo 之前疯狂的按下 F2 (联想一般是 F2 按键),随后就会有“bi”的一声,就进入 BIOS 了。

特别注意: 不同的主板进入 BIOS 的方法并不相同,你需要在谷歌/百度上面搜索一下具体是哪个按键。

很遗憾我没办法给 BIOS 界面截图,实际上也没必要截图,因为不同的机型 BIOS 差异也挺大的。在 BIOS 中我们只需要把硬盘的启动顺序放到最上面(即最高优先级),保存重启即可。

Tips: 不会修改 BIOS 设置的同学请自行上网检索,或者询问官方客服。

分区

完成上面的步骤之后,我们就进入了 Ventoy 的界面,选择我们想要安装的系统镜像,按下回车键进入,稍等片刻之后便进入了常规的安装界面,至于如何安装系统我就不具体介绍了,网上都有,我这里只贴出安装系统过程中最关键也是最难以理解的“分区”部分。

Tips: Arch Linux 安装使用教程,推荐这个教程,非常详细,还有原理介绍,安装一个系统也能学到很多计算机知识。

首先我们需要理解什么是分区,实际上我们都给硬盘分过区,不信?你看看你的 Windows 有几个盘符?C 盘?D 盘?实际上,大部分的笔记本电脑都只有一个固态硬盘(有的也会一个固态 + 一个大容量机械),那么把一个硬盘分成两个盘的操作就是分区了,因为在物理意义上,这两个所谓的“盘”都是在一个物理盘上面的。

上图最左侧的就是物理盘,我们可以看到“磁盘 0”被分成了三个分区,其中的 C 盘被用作基本数据分区以及其他作用,此外还有 EFI 系统分区和恢复分区。

Tips: 留意这里的 EFI 系统分区,后面还要用到。

那么我们把目光放到下面的“磁盘 1”,这也就是我的西数硬盘了,可以看到里面有六个分区,其中经过 Ventoy 的操作之后,应当会出现 D 盘(用作基本数据分区)和 VTOYEFI(引导分区),此外还有 500G 的空白区域,没错,这里的空白区域就是我们前面设置的“保留空间”。

接下来我们就开始对这 500G 的空白区域进行分区了,这里具体如何分区其实无所谓,你可以用 Linux 下的命令行分区,也可以使用 Windows 下的软件就先分好,然后再去装系统。 如果是用 Windows 软件的话,我这里推荐傲梅分区助手,具体怎么分我就不说了,可以自己上网搜教程。如果用命令行的话,我这里简单介绍一下。

首先我们在 Ventoy 中进入某一个 Linux 镜像,例如 Arch Linux 或者 Ubuntu,打开终端。

lsblk    # 显示当前分区情况

我们就可以看到有两块硬盘,一块是电脑内置的,一块就是移动硬盘。可能会是 nvmexn1 之类的,也可能是 sda 之类的,这是因为硬盘协议不同造成了,没什么大影响,照着显示出来的名字操作就行了,千万不要都和我写的命令一模一样,要按实际情况判断

例如上图的 sda,下面有 sda1、sda2、sda3,这说明了 sda 这个物理硬盘划分了三个分区。

Tips: 如果你不知道你的硬盘叫什么名字,你可以看看容量(SIZE)能否对的上,对的上的就是你的移动硬盘。

Tips: 注意此处并不会显出出未分配的磁盘空间!只有在使用 cfdisk 执行分区操作后才会显示出来。

cfdisk /dev/sda    # 可能会是 nvmexn1 或者 sdb,那么就换成对应的名字

这样我们就可以对磁盘进行编辑了,进入 cfdisk 分区工具之后,你会看到如图所示的界面。通过方向键  和  可以在要操作磁盘分区或空余空间中移动;通过方向键  和  在对当前高亮的磁盘分区或空余空间要执行的操作中移动。

要想安装 Linux 系统,一般最少需要两个分区(我这里把引导分区放在了电脑内置硬盘里,所以不需要额外划分 boot 分区,当然你也给移动硬盘单独划分一个 EFI 分区,具体可以参考上面 Arch Linux 那个教程网站)。

Swap 分区

首先我们创建 Swap 分区,顾名思义,这个分区是交换分区,这是一块特殊的硬盘空间,即当实际内存不够用的时候,操作系统会从内存中取出一部分暂时不用的数据,放在交换分区中,从而为当前运行的程序腾出足够的内存空间。

  1. 选中 Free space -> 再选中操作 [New] -> 然后按下回车 Enter 以新建 Swap 分区(类似 Windows 的交换文件);
  2. 按下回车后会提示输入分区大小,Swap 分区建议为 电脑内存大小的 60%(我的电脑 16G 内存,Swap 分区设置未 8G),或者和内存大小相等 -> 然后按下回车 Enter
  3. 默认新建的类型是 Linux filesystem,我们需要将类型更改为 Linux swap。选中操作 [Type] -> 然后按下回车 Enter -> 通过方向键  和  选中 Linux swap -> 最后按下回车 Enter

Tips: 步骤二中的容量大小单位可以自行输入,如 GBMB 等等。

Linux filesystem 分区

和 Swap 分区操作一致,你可以分配多一点空间到这个分区,因为这个是主要存储数据和系统的地方,因为 New 一个分区之后默认的 Type 就是 Linux filesystem,所以就不需要特意修改 Type 了。

至此,一个 Linux 系统的基本分区就结束了。

如果你想要多装几个 Linux 系统,那么你可以多重复几次,比如你要装两个 Linux,那么你可以重复上面的步骤再设置一次。比如我装了一个 Arch Linux 和一个 Ubuntu,我分了总共 500G 空间,给 Arch Linux 和 Ubuntu 各分了 250G,其中 Swap 分区均为 8G,Linux filesystem 分区均为 242G,这样一来就完美了。

安装系统

这里只介绍 Ubuntu 的自定义安装,关于 Arch Linux 的安装教程在上面给的那个网站就写的很好了,我就不多赘述了。

Ubuntu 安装向导前面都是正常的该怎么配置就怎么配置,非常简单,主要是到了安装类型这一页,可能会出现“与 Windows 共存”、“清除整个磁盘并安装 Ubuntu”和“其他选项”这几个选项,这里我们需要点击其他选项来自定义分区方案,然后我们就要选择上面分好的区,选择对应的挂载点即可,因为我们只有两个分区,而 Swap 是不用挂载的,所以我们给 Linux filesystem 分区挂载 / 根目录就行了,最后我们把下面的选择框 boot 挂载到电脑内置硬盘的 EFI 分区即可。

这样一来,已经基本完成了系统的安装啦!

rEFInd 美化引导

由于一般的 Linux 系统自带的都是 GRUB 引导,开机都是黑乎乎的,十分的难看,所以这里我们选择 rEFInd 作为我们的开机引导程序。

首先我们先安装 rEFInd:

  1. 如果是 Arch Linux,sudo pacman -S refind,安装即可,然后输入 refind-install 即可,这样就完成了,非常的简单吧?
  2. 如果是 Ubuntu,sudo apt install refind,安装即可,同样的输入 refind-install 就行了。

但是我们开机后会发现这个引导界面多了很多多余的引导项,这个时候我们使用键盘上的箭头选择移动到对应的引导项,然后按下 delete 键,会弹出是否隐藏,选择 yes 即可隐藏,这样把多余的引导项全部隐藏就行了。

回车进入系统之后我们还会发现,GRUB 引导居然还在,也就是说 rEFInd 只是把 GRUB 覆盖了一层,rEFInd 进去之后还要过一边原本的 GRUB 引导,但是不要慌,办法总比困难多。

这里以 Ubuntu 为例:

  1. 我们先进入 Ubuntu 系统,以管理员权限打开 /etc/default/grub 文件编辑一下:sudo vim /etc/default/grub(注意提前安装 vim 编辑器),然后我们把 GRUB_TIMEOUT=5 这里改为 GRUB_TIMEOUT=0,然后新增一条 GRUB_RECORDFAIL_TIMEOUT=0
  2. 打开 /etc/grub.d/30_os-prober 编辑,sudo vim /etc/grub.d/30_os-prober,找到 set timeout=10,改为 set timeout=0,完整的代码我放在后面;
# 第二步的详细代码
if ["${timeout}" = 0]; then
    set timeout=10    # 我们把这里的 10 改为 0 即可
fi

解释: 第一步就是把 GRUB 界面的等待时候改为 0 秒,这样就能直接跳过 GRUB 的选择等待界面了,但是如果我们就改这一个地方会发现根本没用,开机之后还是会进入 GRUB,我们分析 /boot/grub/grub.cfg 文件后得知,里面有一段代码,意思就是说如果等待时间等于 0 那么会把它重新设置为 10,那这样我们就找到了问题所在,但是我们并不能直接修改这个配置文件,因为它是由其他文件自动生成了,就算我们改好了,后面再以再更新一次,就又都回来了。 所以我们定位到 /etc/grub.d/30_os-prober 这个文件,找到里面的代码进行就该即可。以上都操作完成之后其实基本应该就没有问题了,但是我这边还会出现 GRUB 启动异常,然后需要继续等待 30 秒这个问题,所以在 /etc/default/grub 这个文件里添加异常启动的等待时间为 0 秒这个参数即可跳过。

OK,教程到了这里,就基本结束了,接下来就是配置 & 美化时间了~~~

End.

huigang39 commented 1 year ago

非常抱歉!前段时间在忙毕设的相关事项一直没看 github ,请问这个问题现在是否仍存在?我这边没有办法复现问题,代码块渲染是正常的。 观察您的构建产物发现是代码块外部没有包裹上 hljs 的 div 元素,请问是否方便提供文章的 markdown 源码帮助我复现问题呢? 自定义样式的功能后续版本会提供出来。

这是渲染之后的一个代码块。

image