首页 > 系统相关 >[Linux]将ArchLinux安装到U盘并保留通用空间

[Linux]将ArchLinux安装到U盘并保留通用空间

时间:2023-03-15 18:55:57浏览次数:59  
标签:U盘 Arch 分区 ArchLinux Linux 安装 输入

将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格式化分区

创建完分区之后还要进行格式化,设备名后面跟着的数字就是分区号。

另外在使用U盘这类寿命较为有限的存储介质时,推荐使用无日志的ext4来减少读写量。

# 格式化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网络连接

如果你是使用步骤6.1的方法进入的系统,那么该步骤暂时不适用于你,请在之后直接进入Arch系统再时进行配置

步骤3.4的时候我们已经安装了networkmanager,接下来我们要打开它,并且将其设为开机启动

systemctl start NetworkManager
systemctl enable NetworkManager

之后可以输入nmtui命令进入图形界面,进行网络连接配置

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 中文维基

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

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


本文发布于2023年3月15日

最后修改于2023年3月15日

标签:U盘,Arch,分区,ArchLinux,Linux,安装,输入
From: https://www.cnblogs.com/ThousandPine/p/17219617.html

相关文章

  • Linux内网利用nfs将目录挂载到其它机器
    机器:24.47.155.14/24.47.155.15需求:将24.47.155.15的/data目录挂载到24.47.155.14的/data上1、安装nfs工具(两台)yuminstallnfs-utils2、开启nfs服务(两台)......
  • Linux开机自启动
    Linux系统开机自启动配置(多方案)方案一(以nginx为例):说明:直接使用Linux系统自带开机管理方式(systemctl)。1、在系统服务目录里创建nginx.service文件vi......
  • Linux 实现 Windows 的 Event 事件机制
    前言Linux中没有Windows系统中的 CreateEvent()、WaitEvent()、SetEvent()、ResetEvent() 等函数,本文将介绍如何使用 pevents 替代Linux缺失的函数。pevents......
  • 跨平台实现Event事件(Linux+win)
    1、第一种方法(win和linux通用)//头文件.h#ifndef_HIK_EVENT_H_  #define_HIK_EVENT_H_   #ifdef_MSC_VER #include<Windows.h> #definehik_event_handleH......
  • 修改linux shell 提示符
    远程登录虚拟机,linuxshell提示符为-bash-4.1$要把这个提示符改掉 1、新建~/.bash_profile文件-bash-4.1$vi~/.bash_profile-bash-4.1$cat ~/.bash_profilecat:......
  • 浅谈Linux下的shell--BASH
    shell的概念与作用我们已经学习并知道了操作系统实际上就是一款软件,一款用来管理计算机软硬件资源,为用户提供良好的执行环境的软件。假如该软件能被用户随意操作,就会有可能......
  • linux系统如何查看是否是线程死锁,多线程中如何使用gdb精确定位死锁问题
    在多线程开发过程中很多人应该都会遇到死锁问题,死锁问题也是面试过程中经常被问到的问题,这里介绍在c++中如何使用gdb+python脚本调试死锁问题,以及如何在程序运行过程中......
  • Linux开启root用户远程登录
    Linux开启root用户远程登录开启root账户,给root用户设置密码sudopasswdroot输入两遍密码修改配置文件打开SSH配置文件。vim/etc/ssh/sshd_config修改如下参......
  • linux自定义man搜索路径
    很多时候,在linux我们源码编译库代码时候会自定义安装路径,这使得man查询的时候无法找到库文档,默认的man搜索路径可以使用下面命令查看:$man-w/usr/local/share/man:/usr/......
  • Linux基础
    常用命令cd  :  切换文件夹  cd/home 绝对路径,以根目录开头  cd admin 相对路径,  cd..返回上一层目录  cd~回到自己家目录  cd-回看......