BIOS方式安装ArchLinux系统

1,422 阅读7分钟

BIOS方式安装ArchLinux系统

之前参照ArchLinux基础安装 使用UEFI的方式安装过一次,但因为当时分配的存储空间太小,导致桌面软件安装不上,所以就准备删了重来一次

这一次就通过BIOS的方式安装ArchLinux。

BIOS方式安装ArchLinux和UEFI安装ArchLinux没有太大的不同,只有系统引导的方式不同,因为系统引导的方式不同,所以在分区格式化上也会有略微的区别。

因此大部分的步骤和ArchLinux基础安装这篇文章其实是雷同的

那么接下来就来看看怎么通过BIOS的方式安装ArchLinux

下载镜像

这次安装使用虚拟机的方式,首先在ArchLinux官网上下载最新版本的镜像文件

image.png

上面两个一个是磁力链接,一个是迅雷链接,下面的是互联网连接,可以根据自己的环境来选择。

设置网络

运行起来镜像之后,先设置一下网络,如果是直连的网络这一步不需要做什么,只要确保分配到了IP地址,并且可以ping通www.gnu.org就可以。

image.png

如果你需要通过 Wi-Fi 来连接网络,可以使用 iwctl 命令来设置网络连接

iwctl                           #执行iwctl命令,进入交互式命令行
device list                     #列出设备名,比如无线网卡看到叫 wlan0
station wlan0 scan              #扫描网络
station wlan0 get-networks      #列出网络 比如想连接YOUR-WIRELESS-NAME这个无线
station wlan0 connect YOUR-WIRELESS-NAME #进行连接 输入密码即可
exit                            #成功后exit退出

设置成功后,再通过 ip a 和 ping 命令来验证确实已经可以正常使用网络了。

ArchLinux镜像中默认是有sshd服务的,可以通过命令查看,设置一下 root 用户密码后就可以使用,通过sshd,从其它机器上拷贝命令,或者是离线安装包都会很方便,这里就不多做赘述。

systemctl status sshd
passwd root

更新系统时钟

更新系统时钟对日志记录、文件时间戳和网络通信等方面都很重要,特别是之后需要通过pacman来安装软件包时会校验系统时间,以确保安装过程顺利进行并保证系统安全。

timedatectl set-ntp true    #将系统时间与网络时间进行同步
timedatectl status          #检查服务状态

分区

这里会和ArchLinux基础安装文章中的分区章节有所不同,要把EFI分区更改为BOOT分区,并且分区文件系统类型设置为BIOS boot,除EFI以外的分区可以随意,这里我们就不单独分出home分区了,主要是我没有多少的存储空间,条件充裕的情况下还是推荐单独分出home分区。

  • BOOT分区: /boot 800MB
  • 根目录: / 剩余全部

通过cfdisk来分区,先分出一个BOOT分区,大小为500M,之后剩余部分分出根分区,BOOT分区的文件系统类型为 BIOS boot,根分区的文件系统类型为 Linux Filesystem。

cfdisk /dev/sda #来执行分区操作,分配各个分区大小,类型
fdisk -l #分区结束后, 复查磁盘情况

image.png

image.png

image.png

image.png

默认文件系统类型就是 Linux Filesystem 所以根分区的操作就不截图了。

image.png

之后就是分区格式化,ArchLinux基础安装文章中 EFI 分区通过 mkfs.vfat 分区来格式化,是和 EFI 标准相关的,BOOT 分区就直接通过根分区一样的mkfs.ext4来格式化就可以了

mkfs.ext4  /dev/sda1
mkfs.ext4  /dev/sda2

image.png

最后挂载分区,先挂载根分区,在根分区内部再挂载 BOOT 分区

mount /dev/sda2  /mnt     # 挂载根分区
mkdir /mnt/boot           # 创建 boot 目录
mount /dev/sda1 /mnt/boot # 挂载 boot 分区

安装系统

可以根据ArchLinux基础安装镜像源部分来完成镜像源的选择

使用pacman来安装软件时,会优先选择/etc/pacman.d/mirrorlist这个文件中靠前的镜像源,所以我们如果没有一些科学上网的手段的话,就直接将国内一些机构的镜像源地址复制到最上面就可以了,这里以中科大和清华的镜像源为例。

################################################################################
################# Arch Linux mirrorlist generated by Reflector #################
################################################################################

# With:       reflector @/etc/xdg/reflector/reflector.conf
# When:       2024-05-12 08:11:07 UTC
# From:       https://archlinux.org/mirrors/status/json/
# Retrieved:  2024-05-12 08:08:45 UTC
# Last Check: 2024-05-12 08:02:43 UTC

# 清华源和中科大源
Server = https://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch

Server = https://mirror.lty.me/archlinux/$repo/os/$arch
Server = https://mirror.dkm.cz/archlinux/$repo/os/$arch
Server = https://mirror.theo546.fr/archlinux/$repo/os/$arch
Server = https://mirror.f4st.host/archlinux/$repo/os/$arch
Server = https://mirror.moson.org/arch/$repo/os/$arch
Server = https://archlinux.thaller.ws/$repo/os/$arch
Server = https://mirror.telepoint.bg/archlinux/$repo/os/$arch
Server = https://archmirror.it/repos/$repo/os/$arch
Server = https://md.mirrors.hacktegic.com/archlinux/$repo/os/$arch
Server = https://mirror.sunred.org/archlinux/$repo/os/$arch
Server = https://mirror.23m.com/archlinux/$repo/os/$arch
Server = https://mirror.ufscar.br/archlinux/$repo/os/$arch
Server = https://archlinux.uk.mirror.allworldit.com/archlinux/$repo/os/$arch
Server = https://archlinux.za.mirror.allworldit.com/archlinux/$repo/os/$arch
Server = https://arch.phinau.de/$repo/os/$arch
Server = https://mirror.dogado.de/archlinux/$repo/os/$arch
Server = https://at.arch.mirror.kescher.at/$repo/os/$arch
Server = https://asia.mirror.pkgbuild.com/$repo/os/$arch
Server = https://geo.mirror.pkgbuild.com/$repo/os/$arch
Server = https://arch.sakamoto.pl/$repo/os/$arch

安装系统中必要的包

pacstrap /mnt base base-devel linux linux-headers linux-firmware
  • base:这是 Arch Linux 中的基本系统包。它包含了用于搭建基本系统环境所需的核心组件,比如核心工具、shell、文件系统、网络工具等。安装了 base 包后,你将获得一个最小但可用的 Arch Linux 系统。
  • base-devel:这是用于开发环境的基本包。它包含了构建和编译软件所需的工具和库,比如编译器、构建工具、调试器、版本控制系统等。如果你需要在 Arch Linux 上进行软件开发或者编译软件,安装 base-devel 包是必要的。
  • linux:这是 Linux 内核包。它包含了 Linux 内核本身以及相关的模块和驱动程序。安装了 linux 包后,你将拥有一个可以启动的基本 Linux 系统。
  • linux-headers:这是 Linux 内核头文件包。它包含了用于编译内核模块和其他系统软件的头文件。如果你需要编译一些依赖于内核的软件或者驱动程序,安装 linux-headers 包是必要的。
  • linux-firmware:这是 Linux 内核固件包。它包含了一些硬件设备的固件文件,这些文件通常用于支持一些硬件设备的正常工作,比如无线网卡、蓝牙设备等。安装 linux-firmware 包可以确保你的硬件设备能够在 Arch Linux 中正常工作。

还可以装一些不必要的功能性软件

pacstrap /mnt dhcpcd iwd vim bash-completion
  • dhcpcd:这是一个用于管理网络连接的守护进程。dhcpcd 可以用于获取 DHCP 分配的 IP 地址、配置网络接口、DNS 解析等。在 Arch Linux 中,dhcpcd 是默认的网络管理器之一。
  • iwd:这是一个轻量级的 Wi-Fi 守护进程,用于管理无线网络连接。iwd 支持 Wi-Fi 的新特性,如 WPA3 和扩展的安全性协议。在 Arch Linux 中,iwd 是另一个可选的网络管理器。
  • vim:这是一个文本编辑器,是 vi 文本编辑器的改进和扩展版本。vim 具有强大的编辑功能和扩展性,是许多 Linux 用户和开发人员首选的编辑器之一。
  • bash-completion:这是一个 Bash shell 的自动完成工具。它提供了在 Bash shell 中输入命令时自动完成的功能,可以显著提高命令行操作的效率和便利性。

接下来可以参照ArchLinux基础安装来完成生成 fstab 文件、change root、时区设置、设置 Locale 进行本地化、设置主机名、为 root 用户设置密码、安装微码。

这些步骤没有什么不一样的

安装引导程序的步骤上,BIOS 和 UEFI 会有一些不同,首先我们安装 grub 但不安装 efibootmgr

pacman -S grub

编辑 /etc/default/grub 文件,确保 GRUB_TIMEOUT 和 GRUB_DEFAULT 的值符合你的需求。默认是如下的配置

GRUB_TIMEOUT=5
GRUB_DEFAULT=0

如果你需要自定义系统启动时引导菜单项,可以通过编辑/etc/grub.d/40_custom文件来实现

#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
menuentry "Arch Linux" {
    set root=(hd0,1)
    linux /boot/vmlinuz-linux root=/dev/sda2 ro
    initrd /boot/initramfs-linux.img
}

之后运行如下命令安装 GRUB 引导程序

grub-install --target=i386-pc --boot-directory=/boot /dev/sda1

运行以下命令生成 GRUB 配置文件

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

到这里安装步骤就算是完成了,现在可以重启验证了

exit                # 退回安装环境#
umount -R  /mnt     # 卸载新分区
reboot              # 重启