一、构建 arch linux
作者:解琛
时间:2020 年 9 月 11 日
在 Mac OS X 上使用 virtualbox 建立虚拟环境,该环境上安装 arch linux,同时安装 ranger 作为资源管理器,使用 neovim 作为文档编译器。
1.1 安装 virtualbox
进入 virtualbox 的官方网站 下载最新的安装包,双击即可安装。
下载安装 VBoxGuestAdditions ,修复剪切板无法使用和全屏失败的问题。
1.2 导入 arch linux
进入 arch linux 官方网站,进入 清华镜像下载站 下载最新的 arch linux 镜像包。
在安全与隐私、通用里面会弹出是否允许 virtualbox 在系统上运行,这里点击允许。
在安全与隐私、隐私、辅助功能中不要允许 virtualbox 来控制电脑,否则鼠标点击虚拟机时有几率会崩溃。
然后使用 virtualbox 创建一个 64 位的 arch linux 虚拟机,创建好之后,一定要打开虚拟机的设置,将声音选项里面的启用声音选项取消勾选 不然虚拟机启动之后立刻会崩溃。
选择 Boot the Arch Linux (x86_64) live medium
。经过各种系统检查后,Arch Linux 会启动到 root 用户的命令行界面。
1.3 磁盘分区
第一步就是进行硬盘分区。单根分区是最简单的,就在它上面创建 boot 分区、交换分区和根分区。
使用指令 lsblk
来查看系统空间的大小,我这里创建的空间是 60G。
在挂载硬盘的时候 lsblk 显示出来的分区比 fdisk -l 准确。
进入图形化分区工具进行分区操作。
cfdisk /dev/sda
fdisk /dev/sda
新建如图所示的 3 个分区(分区选择主分区 primary),并将 /dev/sda1 设置成 boot 分区,记得最后需要写入,可以再次打开检查一下是不是真的按照我们的预期分配好了。
这里我的 boot 分区大小为 2G,swamp 分区大小为 8G,/
分区大小为 50G。
我们用 mkfs 命令在根分区上创建文件系统,用 mkswap 创建交换分区。我们用 ext4 文件系统格式化磁盘。
mkfs.ext4 /dev/sda1
mkfs.ext4 /dev/sda3
mkswap /dev/sda2
swapon /dev/sda2
创建 /mnt/boot 目录,并挂载启动分区。
mount /dev/sda3 /mnt
mkdir /mnt/boot
mount /dev/sda1 /mnt/boot
使用 df
指令查看挂载情况,如果没有挂载上必须重新挂载,以免后续操作失败。
1.4 安装软件包
配置软件源。
vim /etc/pacman.d/mirrorlist
搜索 tuna 将其粘贴到文件第一行(推荐选择清华源)。
连接上网络,开始安装最基本的软件包。基本的软件包包括了系统运行所必需的所有软件包。
其中必须安装的有 base linux linux-firmware,推荐也把 base-devel 安装上。
pacman -Syy
pacstrap /mnt base linux linux-firmware base-devel
比如有 GNU BASH shell、文件压缩工具、文件系统管理工具、C 语言库、压缩工具、Linux 内核及其模块,类库、系统工具、USB 设备工具、Vi 文本编辑器等等。
1.5 配置系统
生成一个 fstab 文件来规定磁盘分区、块设备,或者远程文件系统是如何挂载进文件系统中的。
genfstab -U /mnt >> /mnt/etc/fstab
进入 chroot 环境,这样可以为当前进程以及子进程切换当前根目录。
arch-chroot /mnt
一些需要与数据总线保持连接的 systemd 工具不能在 chroot 环境下使用。
1.6 设定时区
获取时区列表。
ls /usr/share/zoneinfo
用下面这条命令设定时区。
ln-sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
用 hwclock 命令设定硬件时钟。
hwclock --systohc
1.7 设置地区和字体
文件 /etc/locale.gen 在注释里包含了所有地区和系统语言设置。
安装 vim。
pacman -S vim
用 vim 打开它,然后去掉你希望选择语言前面的注释。 我选择了 en_GB.UTF-8、zh_CN.UTF-8。
现在用下面的命令在 /etc 文件夹里生成关于地区的配置文件。
pacman -S wqy-zenhei ttf-fireflysung ttf-dejavui ttf-liberation wqy-zenhei ttf-arphic-ukai ttf-arphic-uming
echo LC_ALL=zh_CN.UTF-8 >> ~/.bashrc
sudo locale-gen
locale
locale -a
1.8 网络相关
安装网络相关的包。
pacman -S iw wpa_supplicant dialog net-tools networkmanager dhcpcd
设置网络工具开机自启。
systemctl enable NetworkManager
systemctl enable dhcpcd
1.9 安装 bootloader 设置主机名和 root 密码
ArchLinux grub installation error airootfs
安装 bootloader。
pacman -S grub
grub-install /dev/sda
grub-mkconfig -o /boot/grub/grub.cfg
修改 /etc/hostname 文件的内容,即可设置系统主机名,我将名字设为了 jerome。
echo jerome > /etc/hostname
修改 /etc/hosts 文件的内容,配置 hosts。
echo 127.0.0.1 jerome.localdomain jerome > /etc/hosts
设置用户密码。
passwd
到这里,基本的终端系统都部署好了。
1.10 创建用户
将新建用户移入 wheel 组并指定 shell 为 bash (以后可修改),同时设置密码。
useradd -m -G wheel -s /bin/bash jerome
passwd
为新用户添加管理员权限(可以使用 sudo 命令)。
将文件 /etc/sudoers 中的 wheel ALL=(ALL) ALL 那一行前面的注释去掉。
vim /etc/sudoers
1.11 重启
exit
umount -R /mnt
reboot