写在开头
大概一两年前用过Arch,但是那时候对linux还不是很熟悉,完全是因为arch是最难安装的linux发行版
而尝试了它,但后期因为各种问题,让我换回了Windows(真香)。最近由于在学习编程,所以又用回了linux。(不要说WSL,不香)。本文为我安装Archlinux的记录。
先放个成果图:
当然,阅读本文之前,确保你已经满足了以下条件:
- 听说过Archlinux(本文不再赘述)
- 简略了解过linux的各个发行版(本文不再赘述)
- 略懂linux指令(本文不再详细解释)
- 不轻言放弃的态度(我们称之为
determination
)
安装前的准备
1、 前往archlinux.org下载iso镜像。
2、使用相应的写入工具,写入到U盘(windows用rufus,linux使用dd命令,mac也可以使用dd命令)。
3、给archlinux一个硬盘空间(有图形界面>=40G,不使用则可以>=20G)。
实机安装
由于不同的机器使用的启动方式不同,会导致接下来的安装步骤稍有不同。一般的启动方式有BIOS/MBR分区表(多为旧的笔记本/主板)和UEFI/GPT分区表。目前更多的应是后者。
当然,BIOS和MBR分区表不是固定搭配,在受支持的BIOS上也可以使用GPT(同理,UEFI也可以使用MBR)。
- 若使用BIOS启动,则会看到有Arch logo的启动界面
- 若使用UEFI启动,则会看到UEFI启动选项(无logo)。
启动时,选择第一项启动即可。
设置键盘布局
因为目前我们用到的笔记本键盘大多都是美式布局,所以我在这里没有配置。如果你的键盘布局很奇葩,则需要手动配置一下。参考Arch Wiki#%E9%94%AE%E7%9B%98%E5%B8%83%E5%B1%80](https://wiki.archlinux.org/index.php/Installation_guide_(简体中文)#键盘布局))
联网
因为Arch安装时需要从互联网下载软件包,所以我们必须要在此步骤进行联网。
如果你的电脑使用的是wifi(例如笔记本),那么可以使用wifi-menu
来搜索并连接到网络。
若你的电脑是使用有线网络(插网线),那么应该会自动配置。
联网后,测试一下是否已连接到网络:
ping www.baidu.com #受限于国内网络环境,Baidu是个不错的测试选择
按下Ctrl+C
终止。当然,如果你看到了time out
字样,证明连接失败了。
如果失败,请检查你的wifi模块是否在linux支持的无线硬件
中。Web
如果不支持,建议使用有线或更换为支持的USB无线网卡。
更新系统时间
使用 timedatectl(1) 确保系统时间是准确的:
timedatectl set-ntp true # 更新系统时间
timedatectl status # 检查服务状态
给磁盘进行分区
如果你的电脑只有一块硬盘,那么你的硬盘标识应该是/dev/sda
,当然,为了确保没有问题,还是需要手动检查。
lsblk # 列出磁盘分区
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT # 为输出
sda 8:0 0 119.2G 0 disk
├─sda1 8:1 0 200M 0 part
├─sda2 8:2 0 4G 0 part
└─sda3 8:3 0 115G 0 part
按照上面的例子,/dev/sda
是此硬盘,其中的/dev/sda1
、/dev/sda2
和/dev/sda3
是不同的分区。注意,为分配的空间不会被列出,此操作的主要目的是确定需要安装的磁盘标识。其中,以rom
、loop
、airoot
结尾的需要被忽略。
确定好需要安装的目标磁盘后,我们需要进行分区操作。
若是使用UEFI启动,分区一般需要三个:EFI系统分区
(若Windows已经创建,则可忽略)、根目录
以及交换空间
若是BIOS启动,则仅需要根目录
以及交换空间
。
BIOS和MBR
挂载点 | 分区 | 分区类型 | 建议大小 |
---|---|---|---|
/mnt | / | Linux (ext4或xfs) | 其余所有空间 |
[SWAP] (无需挂载) | Linux swap | 大于512MB |
UEFI和GPT
挂载点 | 分区 | 分区类型 | 建议大小 |
---|---|---|---|
/mnt/boot或/mnt/efi | /boot或/efi | EFI | 200M~500M |
[SWAP] (无需挂载) | Linux swap | 大于512M | |
/mnt | / | Linux (ext4或xfs) | 其余所有空间 |
使用fdisk分区
首先先确保你为Archlinux分配了空闲空间(在扩展分区中的空闲空间不可使用)。
fdisk /dev/sda # 此处为你要安装的磁盘,按照自己的情况输入。
输入n
创建新分区。我们首先要创建EFI分区:
Command (m for help): n
Command action
e extended
p primary partition (1-4) #选择分区类型(扩展分区or主分区)。这里作为主分区,选择p
Partition number (1-4): #默认即可
First cylinder (1-130, default 1): #默认即可
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-130, default 130): +500M #分区大小
创建交换空间:
Command (m for help): n
Command action
e extended
p primary partition (1-4) #选择p
Partition number (1-4): #默认即可
First cylinder (1-130, default 1): #默认即可
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-130, default 130): +4G #分区大小
创建根目录分区:
Command (m for help): n
Command action
e extended
p primary partition (1-4) #选择p
Partition number (1-4): #默认即可
First cylinder (1-130, default 1): #默认即可
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-130, default 130): #保持默认,将所有空间分配给'/'分区。
最后,使用w
保存我们的操作。
再次输入lsblk
检查是否分区成功。在这里,我默认/dev/sda1
是我的根目录分区,/dev/sda2
是交换空间,/dev/sda3
是EFI分区。
格式化分区
分区建立后,需要使用适当的文件系统进行格式化。
mkfs.ext4 /dev/sda1 # 将根目录分区格式化成ext4文件系统
# 当然,你也可以格式化成xfs文件系统
#mkfs.xfs -f /dev/sda1
mkfs.vfat /dev/sda3 # 格式化EFI分区
mkswap /dev/sda2 # 格式化交换空间
挂载分区
mount /dev/sda1 /mnt # 将/dev/sda1 挂载到 /mnt
mkdir /mnt/boot # 新建一个/mnt/boot目录,也可以 mkdir /mnt/efi
mount /dev/sda3 /mnt/boot # 将/dev/sda3 挂载到 /mnt/boot ,若上一步是efi,这里需要将boot改为efi(BIOS/MBR用户无需挂载该分区)
swapon /dev/sda2 # 启用swap
选择镜像
文件 /etc/pacman.d/mirrorlist
定义了软件包会从哪个 镜像源 下载。
受限于国内的网络环境,我们要修改默认的镜像源,提升安装过程中的下载速度。
nano /etc/pacman.d/mirrorlist # 使用nano编辑镜像源列表
在这里,我推荐用清华源。在列表的开头,加入该镜像源。
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch
当然,为了确保一定使用该源,我们可以禁用列表中所有默认的镜像源:使用Ctrl+\
搜索S
,将其替换成#
(在添加清华源之前)。
最后,按下Ctrl+O
保存,Ctrl+X
退出编辑。
安装基本包
使用pacstrap
安装基本软件包。
pacstrap /mnt base linux linux-firmware # 安装基本包,包括部分驱动程序。
配置系统
fstab(摘抄自Archlinux Wiki#Fstab](https://wiki.archlinux.org/index.php/Installation_guide_(简体中文)#Fstab))
用以下命令生成 fstab 文件 (用 -U
或 -L
选项设置UUID 或卷标):
genfstab -U /mnt >> /mnt/etc/fstab
强烈建议 在执行完以上命令后,后检查一下生成的 /mnt/etc/fstab
文件是否正确。
chroot
使用chroot进入新安装的系统。
arch-chroot /mnt
时区
设置为对应地区的时区。
timedatectl list-timezones # 列出可用的区域
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime # 设置时区为 Aisa/Shanghai
hwclock --systohc --utc # 设置时间标准
本地化
编辑/etc/locale.gen
,指定需要的本地化类型,只需移除对应行前面的#
。
en_US.UTF-8 UTF-8
zh_CN.UTF-8 UTF-8
zh_TW.UTF-8 UTF-8
然后执行locale-gen
生成locale。
locale-gen
接下来,我们需要将系统locale设置为en_US.UTF-8。若在此处设置中文locale,会导致tty乱码。
echo LANG=en_US.UTF-8 > /etc/locale.conf
网络
- 设置一个主机名
创建一个hostname文件,并写入你的主机名:
nano /etc/hostname
myhostname # 设置你的主机名称
添加对应的信息到hosts:
nano /etc/hosts
在最下方添加
127.0.1.1 myhostname.localdomain myhostname # 修改为你的主机名
如果系统有一个永久的 IP 地址,请使用这个永久的 IP 地址而不是 127.0.1.1
。
- 安装相应网络管理程序
如果使用的是wifi,则需要安装相应的软件包管理。
pacman -S iw dialog wpa_supplicant
设置用户密码
- 设置root密码(使用
passwd
) - 创建普通用户
useradd -m -G wheel username # username修改为相应的用户名
- 设置用户密码(
passwd username
)
安装引导程序(Grub)
你需要安装 Linux 引导程序以在安装后启动系统。
安装必要的软件包:
pacman -S grub efibootmgr os-prober
# 如果不是多操作系统的用户,请不要安装os-prober
# 如果是BIOS引导,则不需要安装efibootmgr
接下来,需要执行grub-install
,把Grub安装到EFI分区。
grub-install
# 如果之前的步骤创建的是efi,则需要手动指定安装路径
# grub-install --efi-directory=/efi
grub-mkconfig -o /boot/grub/grub.cfg #如果之前的步骤创建的是efi,则修要将boot修改为efi
结束安装
- 输入
exit
退出chroot环境 - 执行
reboot
重启系统
下一篇文章,将会讲述安装后的基本配置。
6 comments
快递单号、空包代发、快递单号出售www.dydanhw.com
最后修改:2020 年 04 月 15 日
::mafumafu:appear::
说好的“下一篇”呢,我也想学美化啊!
感觉Debian, Ubuntu, Deepin, ElementaryOS都更省心一些,Arch拿来玩就可以啦~
不过Arch的包管理器真的非常好用,如果找不到的话就用AUR(如果实在没有,也可以尝试自己手动打一下包),还有就是,Arch官网会实时更新已知问题,所以不用太担心会滚挂~
是的嗷~
牛逼!欢呼!尖叫! ::mafumafu:shy::