[Linux]将ArchLinux安装到U盘
将ArchLinux安装到U盘
几个月前入门Arch的时候上网搜了不少安装教程,同时由于当时硬盘空间不太够于是就打算安装到U盘上,也因此踩了不少坑。
但128G的U盘都拿来装Arch的话未免也太浪费了一些,所以本篇教程也会演示如何保留一部分空间,使其继续保留U盘的功能。
写这篇博客也主要是因为,这两天重装的时候发现自己已经忘记了之前的步骤,所以又按着教程把之前坑都踩了一遍,现在总算是弄明白了一些关键的步骤。
所以为了之后不再犯相同的错误,还是决定写篇博客记录一下。
1.事先准备
关于安装环境的搭建,比如镜像下载和虚拟机配置等,在网络上有很多很详细的教程。在这里就不过多介绍了,直接进入正题。
在开始操作之前请先确保虚拟机能够连接网络,最简单的方法就是输入ping baidu.com
查看是否有响应。
警告:后续操作将会清空U盘数据,在安装之前请将重要数据进行外部备份。
2.建立GPT分区
2.1查看设备名
将U盘接入虚拟机之后,首先输入fdisk -l
查看相应的设备名。
可以根据容量找到相应设备,之后图中红框标注的部分/dev/sdb
就是之后要用到的名称,下文中的设备名都将用/dev/sdX
代称。
2.2删除原分区
-
接下来输入
gdisk /dev/sdX #X替换成自己设备名对应的字母
进入分区工具 -
输入
p
打印分区列表 -
输入
d
后再输入分区编号删除分区,重复操作直到将所有分区删除。 -
再输入一次
p
,确保输出的分区列表为空。
2.3创建ESP分区
- 输入
n
添加分区 - 前两项分别是分区编号和起始位置,直接回车跳过使用默认值
- 第三个是分区结束位置,输入
+512M
分配512M空间。 - 第四个是分区类型,输入
EF00
设置为EFI System partition
2.4创建Linux分区
- 前两个步骤和上面相同
- 第三步就输入你需要为Linux预留的空间,比如我这里给了40G就输入
+40G
。但是如果你打算把剩余空间都分配给Linux的话,也可以直接回车跳过。 - 分区类型输入
8304
,设为Linux x86-64 root
2.5创建通用空间分区
前面的步骤还是一样,分区起始位置和结束位置都回车跳过,然后分区类型输入0700
,设为Mincrosoft basic data
2.6保存分区表
最后别忘了输入w
保存退出
2.7格式化分区
创建完分区之后还要进行格式化,设备名后面跟着的数字就是分区号。
一般是选择ext4格式的分区,但根据Arch Wiki的描述,在使用U盘这类寿命较为有限的存储介质时,推荐使用无日志的ext4来减少读写量。
注:Windows 10会自动隐藏普通的ext4分区,但无日志的ext4则会被Windows当作损坏的分区。导致每次插入U盘都会弹出报错窗口,不过这并不影响U盘其他分区的正常使用。
另外,这种方法对Windows 7的兼容性存疑,我目前仅在一台Windows 7设备上测试过,就遇到了文件管理器不显示U盘的情况。
# 格式化ESP分区
mkfs.fat -F32 /dev/sdX1
# 格式化Linux分区(下面的二选一)
mkfs.ext4 /dev/sdX2 # 带日志功能
mkfs.ext4 -O "^has_journal" /dev/sdX2 # 不带日志的ext4
3.安装ArchLinux
3.1挂载U盘分区
# 注意顺序
mount /dev/sdX2 /mnt
mount /dev/sdX1 /mnt/boot/efi --mkdir
3.2设置镜像源
在下载安装之前还得先设定一下pacman的国内镜像源
vim /etc/pacman.d/mirrorlist
在mirrorlist文件的最上方添加镜像源地址,我这里用的是中科大的源
Server = https://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch
3.3更新GPG密钥
大部分教程只会在后面配置AUR的时候让你更新archlinuxcn的GPG密钥,但往往都忽略了pacman最初的密钥更新,我当初就是因为少了这一步导致后面一直都没法成功下载Linux内容,最后还是在Arch论坛里找到的解决方法。
pacman -Sy archlinux-keyring
3.4下载安装Arch Linux
输入以下命令将ArchLinux和其他基本软件安装到U盘上。
pacstrap /mnt base base-devel linux linux-firmware grub efibootmgr networkmanager vim vi
这几个安装的分别是:
- base、base-devel、linux、linux-firmware是Linux系统和一些基本组件
- grub和efibootmgr则是用于后续的系统启动引导
- networkmanager则是网络连接
- vim和vi是文本编辑器
可以看出来,这里只安装了系统所需的最基本的东西,这主要是因为我们后续要先测试系统能否正常启动。
毕竟如果花一大把时间把桌面环境什么的全都下载了一遍,最后发现启动不了的话就太难受了。
4.设置引导
4.1生成fstab
在上一步的内容都安装完成之后,就需要为新系统生成fstab
genfstab -U /mnt >> /mnt/etc/fstab
再用cat命令检查一下内容是否正确
cat /mnt/etc/fstab
4.2切换到新系统
现在需要输入命令切换到U盘中的系统进行后续操作
arch-chroot /mnt
4.3安装微码
pacman -S intel-ucode
pacman -S amd-ucode
4.4安装并配置GRUB
关于GRUB的详细内容可以在Arch Wiki查看
# 安装GRUB
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUB --removable # 结尾这个removable非常重要
# 生成GRUB配置
grub-mkconfig -o /boot/grub/grub.cfg
5.启动测试
我们先不急着做后续的配置,先来测试一下启动后能不能正常引导进入系统。
当然也别急着重启,在这之前还有些准备工作要做。
5.1设置root用户密码
输入passwd
,之后系统就会让你输入两次要设置的密码,unix类系统下密码类输入都是不显示的,直接输入然后回车就行。
5.2退出并重启
密码设置完成之后,输入exit
回到安装环境
然后输入以下命令取消U盘挂载
umount -R /mnt
再输入reboot
重启虚拟机
5.3测试虚拟机启动
在虚拟机的boot中选择U盘进行启动,之后若是能看到以下界面则表示成功。
之后输入root,然后输入密码,接着输入reboot重启即可。
注:
若是重启之后没法回到原来的镜像选择界面,则可以在启动时选择第三个选项,之后再选择Boot Manager,在里面找到虚拟机挂载的虚拟硬盘即可
5.4测试本机启动(Boot Fail)
虚拟机启动成功了之后,就可以接着试试能不能在自己的电脑上启动,同样是在Boot界面选择U盘,具体方法据机型而异。
若是出现Boot Fail提示,则可能是主板未关闭安全启动(Secure Boot)功能,需要进入到BIOS进行设置。
6.基本系统配置
在启动测试成功之后,我们就可以进行后续的配置了。
6.1重新从安装环境进入系统(可选)
其实现在U盘中的Arch已经可以正常使用了,你完全可以在和步骤5.3或步骤5.4一样直接进入U盘中的系统,进行后续配置。
但若是你还是想要回到原先安装环境再进入系统的话,你可以用下面的命令实现。
# 挂载U盘
mount /dev/sdX2 /mnt
mount /dev/sdX1 /mnt/boot/efi
# 切换到U盘中的系统
arch-chroot /mnt
之后若要退出系统,请再次参照步骤5.2的操作
这样“绕弯子”的好处就是安装环境本身已经具有网络连接功能,不过接下来我也会介绍如何连接网络,毕竟之后我们也要用到。
6.2网络连接
在步骤3.4的时候我们已经安装了networkmanager,接下来我们要打开它,并且将其设为开机启动
systemctl start NetworkManager
systemctl enable NetworkManager
之后可以输入nmtui
命令进入图形界面,进行网络连接配置
注:步骤6.1使用chroot方式进入的系统无法使用systemctl start命令
6.3设置时区
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
hwclock --systohc
6.4本地化
修改locale.gen
vim /etc/locale.gen
去掉en_US.UTF-8 UTF-8
和zh_CN.UTF-8 UTF-8
前面的#号注释
执行下面的命令生成locale信息
locale-gen
创建/etc/locale.conf文件,设置LANG变量
vim /etc/locale.conf
将/etc/locale.conf中的内容设为LANG=en_US.UTF-8
6.5Host设置
vim /etc/hostname
在里面输入你想要的主机名
6.6创建用户
# 创建用户
useradd -m -g wheel -G wheel NAME # NAME替换成你的用户名
# 修改密码
passwd NAME
接下来输入visudo
,删掉 %wheel ALL=(ALL) ALL 前面的#号注释
7.配置ArchLinuxCN
7.1添加ArchLinuxCN源
在 /etc/pacman.conf 文件末尾添加以下内容
[archlinuxcn]
Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch
7.2安装GPG密钥
pacman -Sy archlinuxcn-keyring
7.4安装yay
pacman -S yay
结语
至此Arch Linux最基本的使用环境就已经配置完成了,本文主要的内容还是介绍如何进行安装,而之后的内容,比如硬件驱动、桌面环境还有字体等等内容的配置还请参考网络上其他的资料。
参考资料
arch Linux安装至U盘(兼容UEFI和BIOS启动)-CSDN博客
Archlinux 安装教程超详细(2021.11.15) - 知乎
在可移动设备上安装 Arch Linux - Arch Linux 中文维基
Arch安装后的配置(超详细) - KainHuck - 博客园
本文发布于2023年3月15日
最后修改于2024年2月26日