[Linux]将ArchLinux安装到U盘

将ArchLinux安装到U盘

几个月前入门Arch的时候上网搜了不少安装教程,同时由于当时硬盘空间不太够于是就打算安装到U盘上,也因此踩了不少坑。

但128G的U盘都拿来装Arch的话未免也太浪费了一些,所以本篇教程也会演示如何保留一部分空间,使其继续保留U盘的功能。

写这篇博客也主要是因为,这两天重装的时候发现自己已经忘记了之前的步骤,所以又按着教程把之前坑都踩了一遍,现在总算是弄明白了一些关键的步骤。

所以为了之后不再犯相同的错误,还是决定写篇博客记录一下。

1.事先准备

关于安装环境的搭建,比如镜像下载和虚拟机配置等,在网络上有很多很详细的教程。在这里就不过多介绍了,直接进入正题。

在开始操作之前请先确保虚拟机能够连接网络,最简单的方法就是输入ping baidu.com查看是否有响应。

警告:后续操作将会清空U盘数据,在安装之前请将重要数据进行外部备份。


2.建立GPT分区

2.1查看设备名

将U盘接入虚拟机之后,首先输入fdisk -l查看相应的设备名。

img

可以根据容量找到相应设备,之后图中红框标注的部分/dev/sdb就是之后要用到的名称,下文中的设备名都将用/dev/sdX代称。

2.2删除原分区

  1. 接下来输入gdisk /dev/sdX #X替换成自己设备名对应的字母 进入分区工具

  2. 输入p打印分区列表

  3. 输入d后再输入分区编号删除分区,重复操作直到将所有分区删除。

  4. 再输入一次p,确保输出的分区列表为空。

2.3创建ESP分区

  1. 输入n添加分区
  2. 前两项分别是分区编号和起始位置,直接回车跳过使用默认值
  3. 第三个是分区结束位置,输入+512M分配512M空间。
  4. 第四个是分区类型,输入EF00设置为EFI System partition

2.4创建Linux分区

  1. 前两个步骤和上面相同
  2. 第三步就输入你需要为Linux预留的空间,比如我这里给了40G就输入+40G。但是如果你打算把剩余空间都分配给Linux的话,也可以直接回车跳过。
  3. 分区类型输入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

img

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盘进行启动,之后若是能看到以下界面则表示成功。

img

之后输入root,然后输入密码,接着输入reboot重启即可。

注:
若是重启之后没法回到原来的镜像选择界面,则可以在启动时选择第三个选项,之后再选择Boot Manager,在里面找到虚拟机挂载的虚拟硬盘即可

img

img

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-8zh_CN.UTF-8 UTF-8前面的#号注释

执行下面的命令生成locale信息

locale-gen

创建/etc/locale.conf文件,设置LANG变量

vim /etc/locale.conf

将/etc/locale.conf中的内容设为LANG=en_US.UTF-8

img

6.5Host设置

vim /etc/hostname 
在里面输入你想要的主机名

6.6创建用户

# 创建用户
useradd -m -g wheel -G wheel NAME # NAME替换成你的用户名 
# 修改密码
passwd NAME

接下来输入visudo,删掉 %wheel ALL=(ALL) ALL 前面的#号注释

img


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博客

多重引导 USB 驱动器 - ArchWiki

安装指南 - Arch Linux 中文维基

GRUB - Arch Linux 中文维基

Archlinux 安装教程超详细(2021.11.15) - 知乎

可能是全B站最全的ArchLinux安装教程 - 哔哩哔哩

在可移动设备上安装 Arch Linux - Arch Linux 中文维基

archlinuxcn | 北京外国语大学开源软件镜像站

Arch Linux更换中科大源-CSDN博客

Arch安装后的配置(超详细) - KainHuck - 博客园


本文发布于2023年3月15日

最后修改于2024年2月26日

posted @ 2023-03-15 18:48  千松  阅读(2407)  评论(0编辑  收藏  举报