本文是基于虚拟机进行安装的,和真机安装差不多,均是参考wiki 进行操作,但在实际操作中做了一些简化,如在安装过程中有任何问题,请以 wiki 为准, 本文开始于 2019.07.02,发表于 2019.10.14
安装环境,本机是 MacOS,虚拟机软件是 VirtualBox。
1. archlinux 官网下载对应的 ISO 文件
2. VirtualBox 创建虚拟机, 先不要启动
- 内存设置 4G
- 网络连接设置为:网络地址转换(NAT)
3. 启动虚拟机
- 点击 VirtualBox 的启动按钮,启动虚拟机,如图下图
- 点击回车,最终出现如下图界面
4. 键盘布局,默认即可
默认键盘布局是 us
(美式键盘映射), 要是列出所有的键盘布局,可以使用:
1 | ls /usr/share/kbd/keymaps/**/*.map.gz |
5. 验证启动模式
如果以在 UEFI 主板上启用 UEFI 模式,archiso
将会使用 systemd-boot
来 启动 Arch Linux。可以列出 efivars 目录以验证启动模式:
1 | ls /sys/firmware/efi/efivars |
如果目录不存在,系统可能以 BIOS 或 CSM 模式启动,详见您的主板手册。关于 UEFI 说明请自行查阅资料。
我的默认不支持 UEFI,以下操作均是以非 UEFI 的方式操作
6. 配置网络
- 查看系统是否启用了网络接口,命令如下:
1 | ip link |
配置网络连接
具体详见网络配置 // todo
测试网络连接情况
1 | ping www.baidu.com |
7. 更新系统时间
使用如下命令更新系统时间:
1 | timedatectl set-ntp true |
可以使用 timedatectl status
查看服务状态。
8. 建立硬盘分区
磁盘若被系统识别到,就会被分配一个设备块,如 /dev/sda
, 可以使用 lsblk
或者 fdisk
查看
1 | fdisk -l |
列表中以 loop
,rom
或者 airoot
结束的可忽略
使用 fdisk
创建分区
1 | fdisk /dev/sda |
然后根据提示进行分区即可。我的分区如下:
序号 | 分区 | 大小 |
---|---|---|
1 | / |
20G |
2 | /boot |
200M |
3 | /home |
剩下所有 |
没有 swap 分区,因为 swap 分区和 swap 文件的效果是一样的,故使用 swapfile 代替 swap 分区
使用如下命令查看分区情况
1 | fdisk -l /dev/sda |
9. 格式化分区
分区建立好之后,都要使用适当的文件系统进行格式化,本文使用 ext4
文件系统。
1 | mkfs.ext4 /dev/sdaX |
如果创建了交换分区,使用 mkswap
将其初始化
1 | mkswap /dev/sdaX |
10. 挂载分区
首先在 /mnt
目录下创建 boot
和 home
目录。
将根分区挂载到 /mnt
下,例如:
1 | mount /dev/sda1 /mnt |
其他分区挂载到响应的目录下。
1 | cd /mnt |
11. 选择镜像
文件 /etc/pacman.d/mirrorlist
定义了软件包会从哪个镜像源下载,在 LiveCD 启动的系统上,所有的镜像都被启用,在列表中越前的镜像在下载软件包时有越高的优先权。这个文件接下来还会被 pacstrap
拷贝到新系统里,所以请确保设置正确。
我的镜像文件内容如下:
1 | ## China |
12. 安装基本系统
使用 pacstrap 脚本,安装 base, base-devel 组,若想安装其他的也可以添加到后面,并用空格隔开。也可以在 Chroot
之后,使用 pacman
安装。
1 | pacstrap /mnt base base-devel vim git net-tools curl wget zsh openssh sudo neofetch iw |
13. 生成 fatab
使用以下命令生成 fatab
文件,强烈建议,执行完命令之后,检查一下 /mnt/etc/fstab
文件
1 | genfstab -U /mnt >> /mnt/etc/fstab |
14. Chroot 到新安装的系统
Chroot root 到新安装的系统
1 | arch-chroot /mnt |
15. 设置时区
设置为上海时区
1 | ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime |
运行 hwclock
以生成 /etc/adjtime
1 | hwclock --systohc |
16. 本地化
在 locale.gen
与 locale.conf
设置本地化,locale.gen
是一个仅包含注释文档的文本文件,只需要移出对应前面的 #
即可,注意,选择 UTF-8
的项。
1 | vim /etc/locale.gen |
接着运行 locale-gen
以生成 locale 信息
1 | locale-gen |
创建 locale.conf
并编辑 LANG
这一变量,如:
1 | vim /etc/locale.conf |
注意,此时不要设置成中文,以防 TTY 乱码
17. 配置网络
创建 hostname
文件。
1 | vim /etc/hostname |
编辑 /etc/hosts
文件,添加如下信息
1 | vim /etc/hosts |
18. 设置 root 密码
1 | passwd |
19. 安装引导程序
你需要安装 Linux 引导程序以在安装后启动系统,你可以使用的的引导程序在 启动加载器 中,请选择一个并且安装并配置它,比如 GRUB。
安装 grub
1 | pacman -S grub |
注意,其中 /dev/sda
是要安装 GRUB
的磁盘,而不是分区 /dev/sda1
安装完成之后,GRUB 在每次启动的时候载入配置文件 /boot/grub/grub.cfg
可以使用工具生成该配置文件。
1 | grub-mkconfig -o /boot/grub/grub.cfg |
自动生成脚本默认将在生成的配置文件中为所有已安装的 Arch Linux 内核添加一个条目。
注意
- 每当修改
/etc/default/grub
或者/etc/grub.d/
中的文件之后,都需要再次生成/boot/grub/grub.cfg
。 - 默认的文件路径是
/boot/grub/grub.cfg
,而非/boot/grub/i386-pc/grub.cfg
。
20. 重启
输入 exit
或按 Ctrl+D
退出 chroot
环境。
可选用 umount -R /mnt
手动卸载被挂载的分区
最后,通过执行 reboot
重启系统,systemd
将自动卸载仍然挂载的任何分区。不要忘记移除安装介质,然后使用 root 帐户登录到新系统。
21. 交换文件的创建与删除
- 创建交换文件
1 | fallocate -l 512M /swapfile # root 用户,文件单位是 M/G |
- 删除交换文件
1 | swapoff -a # 停用 swapfile |