记一次在U盘上安装Manjaro

前情提要

由于在我的笔记本上WIndwos和别的系统水火不容(启动到Windows,GRUB的引导项就会被删除),于是我把2020-04-01装的Windows格掉,装了Arch。但Windows在某些时候又是刚需,我手头正好有个SanDisk CZ880。于是我在CZ880上部署了WTG,还挺流畅的,插在USB2.0的口上也能很好地运行。

前天,我试着在CZ880剩下的1GB的分区里安装Manjaro,可能是配置有问题,没启动起来,还顺便把Windows的引导一块弄没了(没错,是我格式化的),不慌,还有备用的MBR引导。昨天,我又试着在880的MBR引导扇区里安装wee63,操作有误,把MBR引导也弄挂了。既然挂了那我就想办法修复吧,但在微PE下,系统分区和EFI分区由于玄学原因只能同时挂载一个,试着修复MBR引导,又提示BCD配置有误,我干脆直接备份好数据之后格了盘。

正文

128GB的U盘我平时根本用不到,我又打起了在880上安装“随身”操作系统的打算,这次我选择了Manjaro。为什么不是Debian,Ubuntu,抑或是Arch呢?因为我感觉大版本更新很麻烦,Arch的滚动更新就很对我胃口。而Arch更新得实在是太勤了,快到了令人担心的地步,所以我选择了更新速度稍慢的Manjaro。

开始操作

我的“野心”很大,我想让Manjaro同时兼容UEFI启动和legecy启动。我不喜欢MBR分区表,因为“引导扇区”“扩展分区”等概念着实是令人头疼。但又没法往GPT分区表里写MBR的引导扇区数据,也就是说在legecy模式下无法启动。这时候我在Archwiki里看到了这样一段内容。

BIOS/GPT配置中,必须使用 BIOS 启动分区。GRUB将core.img嵌入到这个分区。

安装 GRUB 前,在一个没有文件系统的磁盘上,创建一个1兆字节(使用 fdisk 或 gdisk 和参数+1M)的分区,将分区类型设置为 GUID 21686148-6449-6E6F-744E-656564454649。

这个分区可以处于磁盘的前 2TB 空间中的任意位置,但需要在安装 GRUB 之前创建好。分区建立好后,按下面的命令安装启动管理器。

第一个分区之前的空间也可以用作 BIOS 启动分区,但是这会违反 GPT 对齐规范。因为这个分区不会经常访问,所以性能的影响很小,只不过有些分区工具会发出警告。可以在 fdisk 或 gdisk 中创建一个从 34 扇区开始,一直到 2047扇区的分区,然后按照上述方式设置类型。为了让其它分区对齐,可以最后再创建此分区。

照我的理解,是可以用一个1MB大小的分区代替MBR的引导扇区,来达到引导系统的目的。fdisk我还是不会操作,于是我使用了cfdisk来代替。

设备 起点 末尾 扇区 大小 类型
/dev/sda1 2048 616447 614400 300M Microsoft 基本数据
/dev/sda2 616448 618495 2048 1M BIOS 启动
/dev/sda3 618496 67727359 67108864 32G Linux 文件系统
/dev/sda4 67727360 6115967 8388608 4G Linux swap
/dev/sda5 76115968 250085342 173969375 83G Microsoft 基本数据

Markdown的表格真难排,以上是我目前的分区表。

分区

ls一下/dev,看看自己要分区的设备叫什么,在这里我要操作的设备(CZ880)的目录为/dev/sda,于是我输入命令sudo cfdisk /dev/sda,cfdisk的界面随即显示了出来。在创建分区的时候创建一个300MB左右的分区,将分区类型改为“EFI”;再创建一个1MB大小的分区,在“类型”里将分区类型改为“BIOS启动”即可。选择“写入”,输入“yes”,再选择“退出”,分区步骤就算结束了。

安装系统

略。

安装引导器(GRUB2)

接下来我先安装UEFI引导,我们需要执行这样一条命令。

sudo grub-install --target=x86_64-efi --removable --efi-directory=<你的EFI分区目录> --boot-directory=<你所安装完成的新系统的boot目录>

接着安装legecy引导,还是一条命令,不要担心架构的问题,照样能引导。

sudo grub-install --target=i386-pc /dev/<你所要安装到的块设备的名称,我安装的时候为sda1>

以上两条命令请根据自己的实际情况修改。

稳妥起见,chroot到安装目录的根目录,执行这样一条命令以生成GRUB配置文件。

grub-mkconfig -o /boot/grub/grub.cfg

这样操作完之后,应该就没有什么问题了,重启试试看吧。

我的使用情况

我先尝试使用legecy方式启动,除了GRUB加载时间较长,引导菜单操作起来怪怪的之外没有什么问题。我又试着通过UEFI方式引导,也成功地启动了,大成功。我尚未测试在另一台设备上引导这个系统,可能会有问题。

后记

写得比较乱,作参考用的。这里还是推荐遇到什么问题就翻翻Archwiki,大多数问题你都能得到解答(类似于systemd怎么用)。

posted @ 2020-05-09 21:34  徐艺扬  阅读(3671)  评论(0编辑  收藏  举报