实战最精简的 linux -- arch linux 安装

2020-08-02 17:10:31   最后更新: 2020-08-02 23:15:13   访问数量:273




安装操作系统已经越来越成为一件非常简单的事情了,几乎可以做到仅依靠鼠标一路点击,傻瓜式安装了,也许这让你不禁会去想,到底操作系统安装过程中做了哪些事情,亦或是你想要安装一个真正干净的系统,一切组件要什么不要什么都自己说了算,那么,arch linux 可能会是你一个不错的选择

正是因为 arch 的高度定制与简洁,加上他的滚动升级机制以及庞大的社区 AUR,让他成为了越来越火热的 linux 发行版,本文,我们就来通过安装 arch 讲解一下 linux 的一些基本的命令行配置方法

 

Arch 虽然依靠纯命令行安装较为复杂,但同样能够让你学习到很多 linux 配置、系统引导和配置等的基础知识,是非常不错的体验

本文主要参照官方文档进行安装,与很多技术文档不同,arch 的官方文档包含有系统方方面面的内容,甚至成为了很多其他 linux 发行版用户解决问题的一个有效手段,因此,遇到问题到 arch 官方文档上翻翻,你总是会有意外的收获的

系统安装请参考:

https://wiki.archlinux.org/index.php/Installation_guide

 

当然了,本文会一步步详细讲解,直到系统完全引导起来,希望我的这篇文章能够让你最容易的上手 arch 的安装

 

你可以在官网下载 arch linux 的 iso 镜像,官网提供了位于各国的很多下载源,你可以选择中国的,但很不幸,很多连接打开都是 404,不过几十个源总有一个是能用的,挨个试试就可以:

https://www.archlinux.org/download/

 

  • 重要提示:下载完成一定要记得计算一下 md5,验证看是不是下载了完整正确的官方安装包,否则后面各种报错摸不到头脑的时候你会一筹莫展

 

制作启动盘

有了系统的启动 iso,下一步就是制作启动盘

 

linux

在 linux 或 mac 下,你可以执行下面的命令制作启动盘:

sudo dd if=archlinux-2020.07.01-x86_64.iso of=/dev/sdb

 

这里 /dev/sdb 就是你的 U 盘,你需要根据实际 U 盘的挂载位置变更这个参数

 

windows

在 windows 下,你可以通过 UtalISO “写入硬盘镜像”来创建启动盘

 

设置 U 盘启动

接下来,你需要从 U 盘启动系统,从而开始 archLinux 的安装

首先你需要先将 U 盘插入计算机,然后在开机的瞬间按 F2、F12 或 delete 键进入 BIOS 的设置页面,具体的快捷键一般会以小字显示在界面上,不同的计算机按键会有不同,可以通过仔细观察得知

进入 BIOS 设置页面以后,打开 boot 标签,调整启动优先顺序,让 U 盘位于菜单首个位置,然后按 F10 确认修改并重启

在有些计算机中,拥有一键打开 boot menu 手动选择启动项的快捷配制方法,那将会更容易

重启后,你就会看到 archlinux 的安装界面了:

 

 

安装命令行

不用说,点击最上面的“Arch Linux install medium”就可以开始安装系统了

一系列的信息闪过之后,你会看到如下提示:

Arch Linux 5.7.6-arch1-1 (tty1)

archiso login: root (automatic login)

root@archis ~ # _

 

此时已经进入到安装界面了,在这个命令行中,我们就可以开始安装 archlinux 了

在 home 目录下存在一个 install.txt 文件,里面也记录了安装 archlinux 的过程,可以作为参考

 

也许你和我一样,发现显示器上显示的字体太小了,你可以通过 setfont 命令更换另一个字体来解决,在 arch 启动盘中,字体都位于 /usr/share/kbd/consolefonts 目录下,并且大多字体后面会跟着一个数字,表示字体的字号,你可以自由选择,例如:

setfont /usr/share/kbd/consolefonts/iso01.16.gz

 

如果你不是在虚拟机中安装系统,那么接下来你需要连接网络,最简单的,直接连接网线即可实现网络的连接

但如果你要连接 wifi,那也很容易

 

查看 wifi 设备

首先你需要通过 ip link 指令查看 wifi 设备:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: wlan0: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 08:00:27:6c:ac:48 brd ff:ff:ff:ff:ff:ff

 

 

开启 wifi 设备

可以看到,我的机器上,无线网卡设备是 wlan0,接下来执行下面的命令开启设备:

ip link set wlan0 up

 

通过 ip link 命令就可以看到设备已经被启用了:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 08:00:27:6c:ac:48 brd ff:ff:ff:ff:ff:ff

 

 

扫描 wifi

通过 iwlist wlan0 scan 命令就可以查看当前支持的 wifi 信息,可以通过 grep 'ESSID' 过滤出信息中的 wifi 名称

 

生成连接 wifi 的本地配置

通过执行 wpa_passphrase <wifi_essid> <password> 生成用于连接对应 wifi 的本地配置,可以通过 > 重定向到文件中

 

连接到指定 wifi

执行 wpa_supplicant -c <conf_file> -i <device_name> 连接到指定的网络,其中 confi_file 就是刚刚 wpa_passphrase 命令生成的文件,而 device_name 则是上面 ip link 指令中查看到的设备名称

 

动态分配 ip 地址

由于你的设备没有局域网的 ip 地址,所以是没有办法实现网络包的转发的,此时你需要向路由器申请一个动态 ip,只要执行 dhcpcd 命令即可

dhcpcd 命令执行成功后,设备就可以正常联网了,可以通过 curl、telnet 或是 ping 来查看是否已经正常连接到网络

 

既然已经连上网了,那么我们首先连接到远程 NTP 服务器来自动同步时间

 

查看时间日期状态

首先,执行下面的命令可以查看时间日期状态:

timedatectl status

 

通常显示的日期时间是完全错误的,不要急,接下来我们就会更正系统时间并让他自动与 NTP 服务器保持同步

 

设置时区

执行下面命令设置时区:

timedatectl set-timezone "Asia/Shanghai"

 

开启自动同步

timedatectl set-ntp true

 

接下来,你再次查看日期时间,应该就已经被更新为准确的时间了

 

我们终于要开始安装我们的系统了,如果你有过系统安装的经验,那么你就会知道,安装系统的第一步也是最重要的一步就是磁盘分区

如果你不是全盘覆盖全新安装 archlinux,而是要安装与现有系统共存的双系统的话,那你一定要小心谨慎的操作,以免意外的格式化造成数据丢失,但你也不必过度紧张,只有在最终分区方案确定后,系统才会对需要执行格式化的分区进行格式化操作,在此之前即使你操作失误,错误的删除了留有重要数据的分区,这也并不会生效,但无论如何,注意重要数据的随时备份总是好的

 

查看磁盘设备

执行 fdisk -l 可以查看当前存在的磁盘设备:

Disk /dev/sda: 128 GiB, 137438953472 bytes, 268435456 sectors

Disk model: VBOX HARDDISK

Units: sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/loop0: 529.67 MiB, 555380736 bytes, 1084728 sectors

Units: sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

 

接下来我们的目标就是在 /dev/sda 磁盘上全新安装 arch linux

 

磁盘操作

执行 fdisk /dev/sda 就进入到 fdisk 工具,在这里你就可以对 /dev/sda 做任何你想做的磁盘操作了

可以按 m 查看帮助:

 

 

打印分区信息

按下 p 就可以查看磁盘中的分区信息:

 

 

创建分区表

按下 g 或 o 可以创建新的分区表(GPT/MBR):

 

 

g 表示创建 GPT 分区表,它用于 UEFI 引导启动,而 o 则表示通过传统 BIOS 启动的 MBR 分区表,究竟选择哪个,需要依赖于你的硬件支持那种启动方式,基本上近年的设备都支持 UEFI,如果你拿不准,那就选择创建 MBR 分区表,通常对于支持 UEFI 的设备,在 BIOS 配置页面,你可以设置是否通过 UEFI 来启动,但务必注意的一点是,如果你要安装双系统,也就是说如果此时你的电脑中已经安装有一个系统,那你必须要和这个系统的启动方式保持一致,无论你的硬件如何支持

 

创建分区

要安装 linux,有两个分区是必须的:

  1. 根目录 /
  2. swap 分区 -- 虚拟内存分区

 

如果你上面选择了通过 UEFI 启动的 GPT 分区表,你还必须创建一个 efi 分区,可以为 /mnt/boot 或 /mnt/efi,官方推荐的大小为 260MB 到 512MB

关于 swap 分区的建议设置,可以参看:

虚拟内存的设置建议与设置方法

 

同时,需要知道的一点是,磁盘操作的基本单位是“扇区”,也就是 sector,每 512 字节为 1 个扇区

下面我们就来创建上述必须的三个分区:

 

 

这里我仅创建了上述必须的三个分区

如果你考虑重装系统后数据的安全性或者多磁盘的分工,推荐额外创建 /home 分区,也可以为软件安装目录的 /user 与 /opt 路径单独创建分区

如果实在服务器上安装,需要大量磁盘用于存放日志的 /var 分区也可以考虑独立到一块专用磁盘上,不过最好不要将 Arch Linux 用作服务器系统,因为他的滚动升级机制可能会让你很酸爽

 

确认并写入

 

 

格式化分区为指定格式

经过分区操作,磁盘并没有被指定格式,仍是无法使用的

在 linux 系统中,限定 efi 分区必须为 fat 格式,主分区则采用 ext4 格式

所以接下来我们需要使用 mkfs 命令格式化上面创建的这两个分区为对应的格式:

mkfs.fat -F32 /dev/sda1

mkfs.ext4 /dev/sda2

 

指定并开启 swap

执行下面的命令指定并开启 swap:

mkswap /dev/sda3

swapon /dev/sda3

 

挂载磁盘到分区

接下来,我们只有将物理的磁盘挂载到他们对应的分区上才能被我们的系统所使用:

mount /dev/sda2 /mnt

mkdir /mnt/boot && mount /dev/sda1 /mnt/boot

 

既然磁盘有了,我们接下来就要向磁盘写入数据了,也就是写入我们要安装的操作系统 Arch Linux

我们使用 Arch Linux 的包管理软件 Pacman 直接进行滚动更新即可实现最新的 Arch Linux 下载并安装了

 

配置 pacman 更改软件源

pacman 的配置文件位于 /etc/pacman.conf 中,首先你可以搜索 Color 并取消注释,从而让软件安装过程中打印的信息可以高亮显示

软件源的文件在 /etc/pacman.conf 的 [core]、[extra]、[community] 标签中配置

如果你使用的是最新的 archLinux 提供的安装包,那么无需再对软件源配置做任何修改,如果你使用的是较早的版本,那你需要进入软件源配置,并在其中搜索中国区的软件园服务器,并将他们提前到起始部位,如今,live 系统会自动执行 reflector 命令帮你选择下载速度最高的软件源,你可以通过观察软件源配置的情况来决定是否需要修改

也可以到网上找到国内稳定的软件源,推荐阿里云:

Server = http://mirrors.aliyun.com/archlinux/$repo/os/$arch

 

安装基础组件

执行 pacstrap 指令就可以安装已打包好的软件了:

pacstrap /mnt base linux linux-firmware

 

这个指令安装了内核的基础依赖、linux 内核,以及硬件驱动,如果你是在虚拟机中安装,那你可以省去 linux-firmware

 

关于报错

如果报错类似 error: pam: signature from "Evanglelos Foutras <evangelos@foutrelis.com>" is invalid,说明下载的包的签名没有校验通过

如果你可以保证信赖你的软件源,你可以通过在 /etc/pacman.conf 的 [options] 标签下加入配置:

SigLevel = Never

 

忽略签名校验即可

 

接下来,我们就需要执行下面的命令让系统知道磁盘的索引:

genfstab -U /mnt >> /mnt/etc/fstab

 

刚刚你已经通过 pacstrap 完成了系统的安装,你是不是已经迫不及待的要进入到新安装的系统中了呢?

执行 chroot 指令即可:

arch-chroot /mnt

 

此时你就已经进入到系统了,然而,你马上会发现,安装好的 arch 系统里什么都没有,这其实正是 arch linux 一个吸引人的地方,他足够的简洁

执行下面的指令安装 neovim,当然,你喜欢 nano、emacs 或是其他编辑器都是可以的:

pacman -S neovim

 

首先你需要设置时区:

ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

 

同步系统时间

hwclock --systohc

 

生成本地化配置

首先,编辑 /etc/locale.gen 文件,解除你所在的区域那行前面的注释,这里我解除注释了下面两行:

en_US.UTF-8 UTF-8

zh_CN.UTF-8 UTF-8

 

执行下面命令生成本地化配置:

locale-gen

 

配置系统语言

接下来,要在 /etc/locale.conf 文件中配置系统语言,你可以配置中文或英文:

LANG=en_US.UTF-8

 

但最好配置为英文,因为中文经常会出现乱码,解决这些编码问题和配置问题会耗费你太多精力

 

localhost 配置

接下来你需要创建 /etc/hostname 文件,写入你给计算机起的名字

然后,需要添加 /etc/hosts 文件,配置你的 localhost:

127.0.0.1 localhost

::1 localhost

127.0.1.1 myhostname.localdomain myhostname

 

如果你的路由器为你的计算机分配了固定永久的 IP 地址,那你就要用这个永久的 IP 地址替换上面配置中的 127.0.1.1

 

网络连接设置

你要是想要下次进入系统仍然能够连接网络的话,那么你必须在此时安装网络管理工具:

pacman -S net-tool wireless_tools wpa_supplicant dhpcd

 

你可以参考上文设置网络连接,也可以下次启动后再说

 

这些指令就属于 linux 基本操作了:

pacman -S sudo

useradd techlog

passwd techlog

mkdir /home/techlog

chowon techlog:techlog -R /home/techlog

 

编辑 /etc/sudoers

Defaults env_reset, timestamp_timeout=600 Defaults mail_badpass Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin" # User privilege specification root ALL=(ALL:ALL) ALL # Members of the admin group may gain root privileges %admin ALL=(ALL) ALL # Allow members of group sudo to execute any command %sudo ALL=(ALL:ALL) ALL techlog ALL=(ALL) ALL

 

 

安装 grub 工具

下一次启动就要从硬盘上直接引导起来你的 arch linux 了,因此我们需要安装一个系统引导,这里我们安装配置最为常用的 grub:

pacman -S grub efibootmgr intel-ucode os-prober

 

如果你使用的是 amd 的 CPU,那么你就将上面 intel-ucode 替换为 amd-ucode,如果你不需要使用双系统或多系统,计算机中只保留一个 arch 系统,那么你就没有必要安装 os-prober 了

 

创建 grub 配置

生成默认配置:

mkdir /boot/grub && grub-mkconfig > /boot/grub/grub.cfg

 

安装 grub

grub-install --target=x86_64-efi --efi-directory=/boot

 

如果你的机器不是 x86_64 架构,或不是使用 UEFI 启动,那么就需要改变上面命令中的参数,具体可以参考:

https://wiki.archlinux.org/index.php/GRUB

 

生成配置

grub-mkconfig > /boot/grub/grub.cfg

 

到这里,你就已经完成了最简洁的 linux 操作系统 arch-linux 的安装,重启之后,你就进入到系统命令行的登录界面,此后你就可以进行任何你想要在 linux 中进行的操作了

 

欢迎关注微信公众号,以技术为主,涉及历史、人文等多领域的学习与感悟,每周三到七篇推文,只有全部原创,只有干货没有鸡汤

 

 

linux 使用及配置相关

 






技术帖      操作系统      linux      arch      grub     


京ICP备15018585号