将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删除原分区

  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

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

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

多重引导 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日

[Linux]将ArchLinux安装到U盘的更多相关文章

  1. linux下的安装百度云网盘

    linux下的百度网盘 (2014-10-20 18:01:14) 标签: linux 百度网盘 网盘 百度 forlinux 分类: 技术博文 百度网盘说实话,其实我挺喜欢的,好处什么的,就不说了, ...

  2. 把Arch Linux安装到U盘上的具体教程

    Arch Linux简介 Arch Linux(或称Arch)是一种以轻量简洁为设计理念的Linux发行版.其开发团队秉承简洁.优雅.正确和代码最小化的设计宗旨.Arch Linux 项目受 CRUX ...

  3. 使用U盘进行Linux系统的安装

    由于目前很多服务器已经本身不配光驱了,最近测试了下使用U盘进行Linux系统的安装,过程比较简单,需要注意的地方如下: 1.找一台linux主机,插入U盘,执行fdisk -l,识别到U盘. 2.将需 ...

  4. 将Linux(ubuntu)安装到U盘上,实现即插即用

    说明: 本教程是说明如何将ubuntu系统安装到U盘上(也就是把U盘当做电脑的硬盘),可以实现U盘插到任何电脑上都能够在实体机上运行ubuntu系统,而且所有的运行配置都能被保存,相当于随身携带的一个 ...

  5. 学习鸟哥linux私房菜--安装centos5.6(u盘安装,中文乱码)

    题头为"学习鸟哥Linux私房菜"的内容,均为博主在看鸟哥的Linux私房菜第三版的学习经历收获.以下正文: 鸟哥第一部分讲Linux规则与安装,看到第四章正式开始讲实际安装,于是 ...

  6. ArchLinux 安装笔记 --zz

    为何安装 ArchLinux 为了更深层次的理解 Linux (其实只是闲的蛋疼 准备安装介质 U盘首选,没有之一.自己的本子是 MBR 的,UEFI 神马的我才不知道呢哼! 制作 U 盘启动: Li ...

  7. ArchLinux安装与配置小结

    最近无意间发现一个基于ArchLinux的发行版--BlackArch,主题十分炫酷(中二).当然渗透类的Linux 发行版已经有BackTrack和Kali了,不过都是源于Debian的,使用者众多 ...

  8. Arch Linux实体机安装记录

    下面将记录笔者在戴尔笔记本安装arch linux的过程,用于记录,以便下次使用. 本文的内容参考arch linux官方Wiki. 首先,使用Power ISO把镜像安装到U盘,使用U盘安装. 通过 ...

  9. 【桌面篇】Archlinux安装kde桌面

    ArchLinux安装配置手册[桌面篇] 现在你的U盘可以拔掉了,重启后会发现和刚刚没什么区别,还是命令行的界面,别着急现在就带你安装桌面环境. 连接网络 首先检查一下网络是否连接成功 ping ww ...

  10. ArchLinux安装后所需要的环境和工具

    ArchLinux安装后所需要的环境和工具 工具: Dolphin 文件管理器 ntfs-3G 移动硬盘挂载 octopi 实时检查更新 KDE Connect 手机电脑远程连接 DBeaver Co ...

随机推荐

  1. 微信小程序生态13-微信公众号自定义菜单配置

    序 微信公众号分为订阅号和服务号两种,虽然二者很大的不同,但是这两种公众号的底部却是差不多的:都有菜单栏,而且这些底部菜单也都是自定义配置的. 如CSDN的官方公众号的底部就有精彩栏目.新程序员.CS ...

  2. CentOS7安装Chrome及驱动

    目录 安装Chrome 更新Chrome 安装Chrome驱动程序 更新Chrome驱动程序 环境:CentOS Linux release 7.4.1708 (Core) 安装Chrome 下载安装 ...

  3. 产品分享:Qt数学函数公式学科工具,当前版本v1.0.0

    ​若该文为原创文章,转载请注明原文出处本文章博客地址:https://hpzwl.blog.csdn.net/article/details/121194536红胖子(红模仿)的博文大全:开发技术集合 ...

  4. del,str,repr,call,bool,add,len等魔术方法以及与类相关的魔术属性---day23

    1.__del__ # ### __del__魔术方法(析构方法) ''' 触发时机:当对象被内存回收的时候自动触发(1.页面执行完毕回收所有变量2.所有对象被del的时候) 功能:对象使用完毕后资源 ...

  5. ubuntu18.04下创建虚拟环境

    准备 ubuntu18.04自带python3.6版本 安装pip3 apt install python3-pip 安装virtualenv和virtualenvwrapper pip3 insta ...

  6. webservice之jersey简单实用

    前言 项目中更需要使用到webservice,具体的是使用jersey.那么首先需要了解jersey和webservice的关系,捋顺webservice框架的各种实现,通过查阅相关博客,我个人总结w ...

  7. 【Azure 应用服务】应用服务中发布Docker Container,如何添加卷(如Azure File Share)以便永久存储文件

    问题描述 应用服务中发布Docker Container,如何添加卷(如Azure File Share)以便永久存储文件 问题解答 App Service可以通过门户配置Mount Storage, ...

  8. 解密Spring中的Bean实例化:推断构造方法(上)

    在Spring中,一个bean需要通过实例化来获取一个对象,而实例化的过程涉及到构造方法的调用.本文将主要探讨简单的构造推断和实例化过程,让我们首先深入了解实例化的步骤. 实例化源码 protecte ...

  9. elementPlus配合vue-router搭建后台系统菜单模块

    设置menuType来区分菜单类型 /** * @params menuType * -1 一般为首页 / -> /home 只显示第一个子项 * -2 为无子菜单的菜单项 /config -& ...

  10. npm-links - 查看项目依赖包 - vscode 插件

    npm-links 依赖包相关快捷链接