Arch Linux UEFI 安装教程

发布于 2019-03-18  278 次阅读


Arch LinuxLinux 中是算非常难安装的发行版之一了 (当然这里就不提 GentooLFS 了) . 今天刚好有空, 那么在配置我的训练环境的同时就写一下 Arch Linux 的安装教程吧.

首先, 准备一个 U 盘, 8G 以上就可以了, 因为 Arch Linux 的镜像十分小, 只有不到 600MB , 所以按理来说 4G 以上就够了.

Rufus 官网 下载 Rufus 刻录工具.

下载完成之后, 再到 Arch Linux 官网下载 Arch Linux 镜像.

在 Windows 下制作 Arch Linux 启动 U 盘

插入 U 盘.

打开 Rufus , 由于现在的电脑大部分都支持 UEFI 启动了, 所以直接调成下面这样就可以了.

Rufus

最后, 点击开始, 等进度条走完, 你的 Arch Linux 启动镜像就已经制作完成了.

在 Linux 下制作 Arch Linux 启动 U 盘

Linux 制作启动 U 盘就更简单了, 直接用 dd 命令写入即可.

# 将 path/to/archlinux.iso 替换为你的 Arch 安装镜像路径
# 将 /dev/sdx 替换为你的 u 盘, 一定不要在最后面加上 /, 比如 /dev/sdx/ , 这是不行的
dd bs=4M if=path/to/archlinux.iso of=/dev/sdx status=progress oflag=sync

等待一会, Arch Linux 镜像就做好了.

开始安装!

把做好 Arch Linux 镜像的 U 盘插入需要装的电脑.

进入 Bios , 把启动盘的启动顺序调成第一位, 具体方法就不再陈述了, 因为每个主板的 Bios 都不一样.

一行行字母刷过, 此时会显示一个终端的界面.

连接网络

Arch Linux 必须需要网络才能安装, 所有组件都需要到网络上下载

如果你是用有线连接上网, 那么:

dhcpcd // 自动dhcp配置
ping baidu.com -c 4 // ping百度看网络是否连通
// 注意! 配置dhcp需要一定时间, 输入dhcpcd后第一次ping可能ping不通, 过一会就好!

如果你是用 wifi 上网, 那么就使用:

wifi-menu
// 然后在弹出的界面中选择你的wifi并连接
ping baidu.com -c 4 // ping百度看网络是否连通

如果你使用静态 IP 上网, 那么请看: Arch 配置静态 ip

ping

同步系统时间

我们使用 timedatectl 命令来同步系统时间:

timedatectl set-ntp true
// 这条命令是开启ntp同步

GPT 安装

分区(GPT)

我这里使用的是 GPT 分区, Arch 官方文档上写的是用 gdisk 来给 GPT 分区, 但是现在 fdisk 工具也可以给 GPT 硬盘分区了, 所以这里用 fdisk 工具.

先查看电脑分区情况:

fdisk -l

注意!

因为 fdisk -l 显示的是所有存储设备, 所有有一个存储设备是你的 U 盘, 一般情况下都比较小, 所以记得不要把 U 盘格式化掉!!

由于我是格式化了所有硬盘安装, 所以我会从创建 GPT分区表 开始分区, 如果是已经分过区的硬盘, 千万不要重新创建 GPT分区表 ! 可能会丢失所有数据!

全新硬盘或者想全格式化硬盘的安装方法:

先进入你的硬盘:

fdisk /dev/***
// *** 为你的硬盘, 如果是nvme接口的硬盘可能会显示为/dev/nvme****
创建引导分区(此时已经在 fdisk 模式下)
g
// 按g并且回车创建一个全新的GPT分区表.

n
// 按n开始创建引导分区.

// 第一个提示你分区号码, 直接回车就可以了, 第二个提示是扇区起始位置, 直接回车就可以了.
+256M
// 这个是让你输入创建的分区的大小, 由于是引导分区, 256MB足够.
// 如果弹出一个让你选择Y和N的提示, 直接输入Y然后回车就可以了.

t
// 输入t来改变创建的分区类型, 按L查看所有分区类型, 按q退出查看分区类型, 由于这里是efi引导分区, 所以直接输入1就可以了.

p
// 按p查看分区情况, 此时的改动并没有写入硬盘.

w
// 按w把改动写入硬盘.
创建根分区(此时依旧在 fdisk 模式下)
n
// 创建根分区

+****
// 自行输入创建分区的大小

p
// 查看分区情况

w
// 写入硬盘
格式化分区
mkfs.fat -F32 /dev/***
// *** 为你的引导分区
mkfs.ext4 /dev/$$$
// $$$ 为你的根分区

查看目前分区状况

fdisk -l

挂载分区(GPT)

先创建挂载的文件夹, 然后开始挂载

mount /dev/$$$ /mnt
// 挂载根分区. $$$ 为你的根分区

mkdir /mnt/boot
// 创建挂载文件夹
mount /dev/*** /mnt/boot
// 挂载引导分区. *** 为你的引导分区
选择安装镜像源

先学习一下 vim , 要不然你可能都不知道怎么改镜像源, 下面是一个大佬写的简明 vim 教程:

简明 vim 练级攻略

vim /etc/pacman.d/mirrorlist
// 按/开始搜索, 输入China, 然后按dd可以剪切当前行, 然后按gg回到文件头部, 然后按大写P可以粘贴. 小写p也可以粘贴, 不过有一定差别, 可以自己试试, 按u可以撤回, 按i进入编辑模式, 按esc进入默认模式.
// 你也可以自己输入

源

安装基本组件

接下来就需要联网下载了, 这也是为什么 Arch Linux 镜像这么小的原因, 因为大部分东西都是直接从网络上下载的.

pacstrap /mnt base base-devel
# 这里推荐安装一个 net-tools, 安装这个可以用老版本的 Linux 网络基本工具, 比如 netstat
配置 fstab

fstab 是 Linux 中自动挂载分区的文件

genfstab -L /mnt >> /mnt/etc/fstab
改变操纵权

其实就是 chroot , 他的意思就是改变操纵权, 自此之后我们所有的操作都是在新装的系统之上运行, 因为刚才已经装好了 Linux 的基本组件, 所以已经可以 chroot

arch-chroot /mnt

chroot 的用处太多了, 众所周知, Arch Linux 由于包比较新, 所以是有滚动更新滚挂的可能的. 但是现在由于有了 testing 仓库, 所以滚挂的可能性是比较低的, 当我们系统滚挂的时候, 可以用 U 盘 chroot 进去然后修复.

设置时区

之前我写过 Debian 系发行版的更改时区的方法, 那里也写了其他 Linux 发行版更改时区的方法, 这里再写一次

ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
hwclock --systohc
安装必备软件包

Arch Linux 使用 pacman 来管理包, 这个包管理工具处理依赖非常干净, 很少会有装上你不需要的依赖的情况.

pacman -S vim dialog wpa_supplicant ntfs-3g networkmanager bash-completion
设置语言

首先, 添加语言支持

vim /etc/locale.gen
// 在这个文件中找到
  en_US.UTF-8 UTF-8
  zh_CN.UTF-8 UTF-8
  zh_HK.UTF-8 UTF-8
  zh_TW.UTF-8 UTF-8
  这4个, 去掉他们前面的#号, 然后保存退出

locale-gen
// 应用刚才的更改

然后, 创建语言设置文件:

vim /etc/locale.conf
// 如果这个文件使用这条命令没有会自动创建

LANG=en_US.UTF-8
// 在这个文件中输入这行内容, 为什么不用中文呢? 因为中文在控制台模式里可能会乱码.
设置主机名
vim /etc/hostname
// 创建主机名设置文件

$$$
// $$$ 将$$$替换为你想设定的主机名
// 保存退出

编辑 hosts 文件

vim /etc/hosts
127.0.0.1   localhost.localdomain   localhost
::1         localhost.localdomain   localhost
127.0.1.1   $$$.localdomain          $$$
// 将 $$$ 替换为你上面设置的主机名
设置 root 密码
passwd
// 输入两次密码, 两次密码要相同, 第二次输入密码的作用是确认你的密码没有输错
创建新用户

因为 root 用户几乎拥有至高无上的权限, 所以不建议使用 root 用户作为日常使用

创建新用户:

useradd -m -G wheel -s /bin/bash $$$
// 将 $$$ 替换为你想创建的用户名

给新用户设置 sudo 使用权限

visudo
// 进入 sudo 使用权限设置文件
// 在这里面找到 # %wheel ALL=(ALL) ALL
// 去掉那个 # 号
配置 yay

yay 是一个可以下载 Arch Linux中 AUR 中的软件包的工具. 还可以一键查找软件包.

vim /etc/pacman.conf
// 编辑 pacman 配置文件

在文件最后添加:

[archlinuxcn]
SigLevel = Optional TrustedOnly
Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch

这里使用中科大的源, 因为比较快.

安装 yay

pacman -S yay fakeroot
这是 CPU 的微代码, 可以提升 Intel 或者 AMD CPU 的性能
# Intel 用户装这个
pacman -S intel-ucode
# AMD 用户装这个
pacman -S amd-ucode
安装 Bootloader

先安装 grubefibootmgr

pacman -S grub efibootmgr os-prober

然后部署 grub

mkinitcpio -p linux
// 先初始化
grub-install  --target=x86_64-efi --efi-directory=/boot --bootloader-id=$$$
// 把 $$$ 替换为你想要命名的启动项名称

最后生成 grub 的配置文件

grub-mkconfig -o /boot/grub/grub.cfg

如果出现 warning failed to connect to lvmetad,falling back to device scanning. 错误, 解决方法:

vim /etc/lvm/lvm.conf
// 编辑此文件, 并且找到 use_lvmetad = 1, 将1改为0, 保存之后重新生成就可以了.
安装完成
exit
// 退出 chroot
umount -R /mnt
// 卸载/mnt
reboot
// 重启

我来自中国, 热爱开源, 小米, 谷歌