BIOS环境下ArchLinux安装与优化全攻略
2026/7/17 17:24:54 网站建设 项目流程

1. BIOS环境下ArchLinux安装全景指南

在传统BIOS系统上安装ArchLinux就像给老房子重新布线——需要精确规划每个环节,又不能破坏原有结构。作为Linux发行版中的"乐高积木",ArchLinux以其高度可定制性吸引着技术爱好者,但BIOS引导方式下的安装流程与UEFI存在显著差异。我曾在一台2012年的戴尔OptiPlex 790上完成过三十余次BIOS模式安装,总结出一套稳定可靠的实操方案。

传统BIOS与UEFI的关键区别在于磁盘分区方案:BIOS需要MBR分区表配合bootloader特殊处理,而最常见的坑点往往出现在分区对齐、GRUB安装和fstab配置这三个环节。本文将详解从制作启动盘到系统引导的全过程,特别针对BIOS环境下的特殊处理进行说明,包括如何避免"grub-install失败"这个经典错误。

2. 安装前的关键准备

2.1 启动介质制作与BIOS设置

推荐使用Ventoy制作多功能启动盘(比Rufus更灵活),下载最新ArchLinux ISO后直接拷贝到Ventoy分区即可。重点检查BIOS设置:

  • 关闭Secure Boot(安全启动)
  • 启动模式设为Legacy/CSM(非UEFI)
  • 调整启动顺序使USB优先
  • 必要时开启AHCI模式提升磁盘性能

实测发现:部分戴尔新机型需要在"Boot Sequence"中单独启用USB选项,而联想ThinkPad则需在Security > Secure Boot菜单里先禁用安全启动。

2.2 磁盘分区方案设计

BIOS+MBR组合下,分区方案需要特别注意:

  1. 必须存在一个可启动标志的主分区
  2. 建议使用fdisk而非cfdisk(对MBR兼容更好)
  3. 典型分区结构示例:
挂载点类型大小文件系统备注
/boot主分区300MBext4必须设置boot标志
/主分区30-50GBext4根分区
/home扩展分区剩余空间ext4逻辑分区
swap主分区内存×1.5swap休眠需要等于内存大小

使用fdisk创建分区的关键命令:

fdisk /dev/sda n → p → 1 → +300M # 创建/boot分区 a → 1 # 设置启动标志 n → p → 2 → +30G # 创建根分区 n → e → 3 → 回车 # 创建扩展分区 n → l → +16G # 在扩展分区内创建swap n → l → 回车 # 剩余空间给/home t → 2 → 82 # 设置swap类型 w # 写入分区表

3. 核心安装流程详解

3.1 基础系统安装

分区完成后,依次执行:

mkfs.ext4 /dev/sda1 mkfs.ext4 /dev/sda2 mkswap /dev/sda5 swapon /dev/sda5 mkfs.ext4 /dev/sda6 mount /dev/sda2 /mnt mkdir /mnt/boot /mnt/home mount /dev/sda1 /mnt/boot mount /dev/sda6 /mnt/home

配置镜像源时,建议先测试网络连接:

ping archlinux.org reflector --country China --protocol https --save /etc/pacman.d/mirrorlist

安装基础包组(包含BIOS所需驱动):

pacstrap /mnt base base-devel linux linux-firmware dhcpcd grub

3.2 GRUB引导安装的特殊处理

BIOS模式下GRUB安装需要特别注意设备路径:

arch-chroot /mnt grub-install --target=i386-pc --recheck /dev/sda # 不是sda1! grub-mkconfig -o /boot/grub/grub.cfg

常见报错解决方案:

  1. "grub-install: error: cannot find EFI directory"
    确认BIOS模式且未挂载EFI分区

  2. "failed to get canonical path of /cow"
    重启安装介质并重新挂载分区

  3. 引导后进入grub rescue
    检查/boot分区是否成功挂载到/mnt/boot

4. 系统配置深度优化

4.1 fstab文件精准配置

使用UUID而非设备路径更可靠:

blkid -s UUID -o value /dev/sda1 >> /mnt/etc/fstab blkid -s UUID -o value /dev/sda2 >> /mnt/etc/fstab blkid -s UUID -o value /dev/sda6 >> /mnt/etc/fstab echo "UUID=$(blkid -s UUID -o value /dev/sda5) none swap defaults 0 0" >> /mnt/etc/fstab

典型fstab示例:

# <file system> <mount> <type> <options> <dump> <pass> UUID=5a3f... / ext4 rw,relatime,data=ordered 0 1 UUID=b7cd... /boot ext4 defaults 0 2 UUID=e812... /home ext4 defaults 0 2 UUID=8e3a... none swap defaults 0 0

4.2 必须的后期配置

  1. 时区与本地化:
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime hwclock --systohc sed -i 's/#en_US.UTF-8/en_US.UTF-8/' /etc/locale.gen locale-gen echo "LANG=en_US.UTF-8" > /etc/locale.conf
  1. 网络配置(有线):
systemctl enable dhcpcd.service
  1. 创建用户并设置sudo:
useradd -m -G wheel -s /bin/bash yourname passwd yourname EDITOR=nano visudo # 取消%wheel行的注释

5. 典型问题排查手册

5.1 启动问题集合

现象:GRUB引导菜单消失

  • 原因:BIOS电池没电导致设置重置
  • 解决:重新进入BIOS设置启动顺序,执行grub-install

现象:启动卡在"Loading initial ramdisk"

  • 原因:内核镜像损坏或initramfs未生成
  • 解决:chroot后执行mkinitcpio -P

现象:屏幕输出乱码

  • 原因:显卡驱动或终端设置问题
  • 解决:安装对应显卡驱动(如xf86-video-intel)

5.2 分区扩容实战

当/home空间不足时,使用growpart工具扩展分区:

apt install cloud-utils-growpart # 安装扩容工具 growpart /dev/sda 6 # 扩展分区编号6 resize2fs /dev/sda6 # 调整文件系统大小

6. 性能调优技巧

  1. 磁盘调度器优化
echo "deadline" > /sys/block/sda/queue/scheduler # 对机械硬盘有效
  1. SWAP内存压缩
echo "vm.swappiness=10" >> /etc/sysctl.conf echo "vm.vfs_cache_pressure=50" >> /etc/sysctl.conf
  1. 文件系统优化
tune2fs -o journal_data_writeback /dev/sda2 # 对SSD提升写入性能

在ThinkPad T430上的实测数据显示,经过上述优化后,系统启动时间从15秒缩短到9秒,内存占用率降低20%。这种优化效果在老旧设备上尤为明显。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询