[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日
[Linux]将ArchLinux安装到U盘的更多相关文章
- linux下的安装百度云网盘
linux下的百度网盘 (2014-10-20 18:01:14) 标签: linux 百度网盘 网盘 百度 forlinux 分类: 技术博文 百度网盘说实话,其实我挺喜欢的,好处什么的,就不说了, ...
- 把Arch Linux安装到U盘上的具体教程
Arch Linux简介 Arch Linux(或称Arch)是一种以轻量简洁为设计理念的Linux发行版.其开发团队秉承简洁.优雅.正确和代码最小化的设计宗旨.Arch Linux 项目受 CRUX ...
- 使用U盘进行Linux系统的安装
由于目前很多服务器已经本身不配光驱了,最近测试了下使用U盘进行Linux系统的安装,过程比较简单,需要注意的地方如下: 1.找一台linux主机,插入U盘,执行fdisk -l,识别到U盘. 2.将需 ...
- 将Linux(ubuntu)安装到U盘上,实现即插即用
说明: 本教程是说明如何将ubuntu系统安装到U盘上(也就是把U盘当做电脑的硬盘),可以实现U盘插到任何电脑上都能够在实体机上运行ubuntu系统,而且所有的运行配置都能被保存,相当于随身携带的一个 ...
- 学习鸟哥linux私房菜--安装centos5.6(u盘安装,中文乱码)
题头为"学习鸟哥Linux私房菜"的内容,均为博主在看鸟哥的Linux私房菜第三版的学习经历收获.以下正文: 鸟哥第一部分讲Linux规则与安装,看到第四章正式开始讲实际安装,于是 ...
- ArchLinux 安装笔记 --zz
为何安装 ArchLinux 为了更深层次的理解 Linux (其实只是闲的蛋疼 准备安装介质 U盘首选,没有之一.自己的本子是 MBR 的,UEFI 神马的我才不知道呢哼! 制作 U 盘启动: Li ...
- ArchLinux安装与配置小结
最近无意间发现一个基于ArchLinux的发行版--BlackArch,主题十分炫酷(中二).当然渗透类的Linux 发行版已经有BackTrack和Kali了,不过都是源于Debian的,使用者众多 ...
- Arch Linux实体机安装记录
下面将记录笔者在戴尔笔记本安装arch linux的过程,用于记录,以便下次使用. 本文的内容参考arch linux官方Wiki. 首先,使用Power ISO把镜像安装到U盘,使用U盘安装. 通过 ...
- 【桌面篇】Archlinux安装kde桌面
ArchLinux安装配置手册[桌面篇] 现在你的U盘可以拔掉了,重启后会发现和刚刚没什么区别,还是命令行的界面,别着急现在就带你安装桌面环境. 连接网络 首先检查一下网络是否连接成功 ping ww ...
- ArchLinux安装后所需要的环境和工具
ArchLinux安装后所需要的环境和工具 工具: Dolphin 文件管理器 ntfs-3G 移动硬盘挂载 octopi 实时检查更新 KDE Connect 手机电脑远程连接 DBeaver Co ...
随机推荐
- 微信小程序生态13-微信公众号自定义菜单配置
序 微信公众号分为订阅号和服务号两种,虽然二者很大的不同,但是这两种公众号的底部却是差不多的:都有菜单栏,而且这些底部菜单也都是自定义配置的. 如CSDN的官方公众号的底部就有精彩栏目.新程序员.CS ...
- CentOS7安装Chrome及驱动
目录 安装Chrome 更新Chrome 安装Chrome驱动程序 更新Chrome驱动程序 环境:CentOS Linux release 7.4.1708 (Core) 安装Chrome 下载安装 ...
- 产品分享:Qt数学函数公式学科工具,当前版本v1.0.0
若该文为原创文章,转载请注明原文出处本文章博客地址:https://hpzwl.blog.csdn.net/article/details/121194536红胖子(红模仿)的博文大全:开发技术集合 ...
- del,str,repr,call,bool,add,len等魔术方法以及与类相关的魔术属性---day23
1.__del__ # ### __del__魔术方法(析构方法) ''' 触发时机:当对象被内存回收的时候自动触发(1.页面执行完毕回收所有变量2.所有对象被del的时候) 功能:对象使用完毕后资源 ...
- ubuntu18.04下创建虚拟环境
准备 ubuntu18.04自带python3.6版本 安装pip3 apt install python3-pip 安装virtualenv和virtualenvwrapper pip3 insta ...
- webservice之jersey简单实用
前言 项目中更需要使用到webservice,具体的是使用jersey.那么首先需要了解jersey和webservice的关系,捋顺webservice框架的各种实现,通过查阅相关博客,我个人总结w ...
- 【Azure 应用服务】应用服务中发布Docker Container,如何添加卷(如Azure File Share)以便永久存储文件
问题描述 应用服务中发布Docker Container,如何添加卷(如Azure File Share)以便永久存储文件 问题解答 App Service可以通过门户配置Mount Storage, ...
- 解密Spring中的Bean实例化:推断构造方法(上)
在Spring中,一个bean需要通过实例化来获取一个对象,而实例化的过程涉及到构造方法的调用.本文将主要探讨简单的构造推断和实例化过程,让我们首先深入了解实例化的步骤. 实例化源码 protecte ...
- elementPlus配合vue-router搭建后台系统菜单模块
设置menuType来区分菜单类型 /** * @params menuType * -1 一般为首页 / -> /home 只显示第一个子项 * -2 为无子菜单的菜单项 /config -& ...
- npm-links - 查看项目依赖包 - vscode 插件
npm-links 依赖包相关快捷链接