详写 UEFI & BIOS 安装 Arch Linux

2023-05-16

Arch Linux官方安装向导:https://wiki.archlinux.org/index.php/Installation_guide

文章目录

    • 1. 准备
    • 2. VirtualBox 打开 EFI
    • 3. 安装
      • 验证启动方式
      • 连接互联网
        • 连接 wifi
      • 更新系统时钟
      • 磁盘分区
        • BIOS 磁盘分区
        • UEFI 磁盘分区
      • 磁盘格式化
        • BIOS 磁盘格式化
        • UEFI 磁盘格式化
      • 挂载
        • BIOS 挂载
        • UEFI 挂载
      • 修改镜像列表
      • 安装系统
      • 配置系统
      • 进入系统
      • 修改时区
      • 同步系统时间
      • 本地化设置
      • 网络配置
      • 给 root 用户添加密码
      • 安装 grub 引导
        • BIOS 安装 grub 引导程序
        • UEFI 安装 grub 引导程序
      • 安装 dhcpcd 和 iwd
      • 退出系统
      • 取消挂载
      • 重启电脑
    • 4. 重启进入系统后的设置
      • 联网设置
      • 更新系统
      • 安装软件包
      • 添加普通用户
      • 给新用户设置密码
      • 修改 /etc/sudoers 文件
      • 退出root用户
      • 使用新用户登录
    • 5. pacman 常用命令
    • 6. Arch Linnux 美化 (st + dwm)

1. 准备


官方镜像下载地址:https://archlinux.org/download/

在物理机上安装需要U盘启动盘。

在虚拟机上安装需要iso镜像。

2. VirtualBox 打开 EFI


如果使用VirtualBox虚拟机,勾选Enable EFI以在VirtualBox中打开EFI
在这里插入图片描述

3. 安装


验证启动方式


ls /sys/firmware/efi/efivars

如果命令没有报错,则使用的是UEFI

如果目录不存在则可能使用的是BIOS

连接互联网


安装Arch Linux必须连通网络。

可以插入网线或使用wifi

如果使用虚拟机,则不需要进行这一步操作。

连接 wifi


使用iwd连接wifi

# 进入iwd交互界面
iwctl

# 查看设备名
device list

# 扫描网络
station <设备名> scan

# 查看网络名称
station <设备名> get-networks

# 连接网络
station <设备名> connect <网络名称>

更新系统时钟


timedatectl set-ntp true

磁盘分区


可以使用fdisk命令进行磁盘分区,也可以使用cfdisk命令进行磁盘分区。

cfdisk命令有交互界面。

cfdisk

输入命令进入cfdisk界面。

在这里插入图片描述
BIOS选择dosUEFI选择gpt

在这里插入图片描述
New创建一个新分区,并输入分区大小。

在这里插入图片描述
Type选择分区类型。

在这里插入图片描述
boot分区选择EFI Systemswap分区选择Linux swap系统分区选择Linux filesystem

在这里插入图片描述
分区完成,Write写入磁盘。

在这里插入图片描述

BIOS 磁盘分区


BIOS只需要分2个区swap分区系统分区

分区大小:

swap分区:自定义。

系统分区:剩余大小。

分区类型:

挂载点分区类型
swapLinux swap(交换分区)
/mntLinux(系统分区)

在这里插入图片描述

UEFI 磁盘分区


UEFI需要创建3个分区boot分区(启动分区)swap分区系统分区

分区大小:

boot分区:" 512M-1G "之间。

swap分区:自定义。

系统分区:剩余大小。

分区类型:

挂载点分区类型
/mnt/bootEFI系统分区
swapLinux swap(交换分区)
/mntLinux

在这里插入图片描述

磁盘格式化


分区的设备名可能不一样。

使用fdisk -l命令查看分区设备名。

fdisk -l

在这里插入图片描述

BIOS 磁盘格式化


格式化系统分区

mkfs.ext4 /dev/sda2

格式化swap分区

mkswap /dev/sda1

激活swap分区

swapon /dev/sda1

UEFI 磁盘格式化


格式化boot分区

mkfs.fat -F32 /dev/sda1

格式化系统分区

mkfs.ext4 /dev/sda3

格式化swap分区

mkswap /dev/sda2

激活swap分区

swapon /dev/sda2

挂载


BIOS只需要挂载系统分区

UEFI需要挂载boot分区(启动分区)系统分区

BIOS 挂载


系统分区/dev/sda2挂载到/mnt目录

mount /dev/sda2 /mnt

UEFI 挂载


系统分区/dev/sda3挂载到/mnt目录

mount /dev/sda3 /mnt

创建boot分区挂载点

mkdir /mnt/boot

boot分区/dev/sda1挂载到/mnt/boot目录

mount /dev/sda1 /mnt/boot

修改镜像列表


中国的源放到最前面。

vim /etc/pacman.d/mirrorlist

在这里插入图片描述

安装系统


pacstrap /mnt base linux linux-firmware

等待系统安装完成。

配置系统


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

进入系统


arch-chroot /mnt

界面发生变化说明已经进入系统。

修改时区


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

同步系统时间


hwclock --systohc

本地化设置


进入系统后没有编辑器,下载需要的编辑器。

pacman -S neovim

修改/etc/locale.gen文件,去掉en_US.UTF-8 UTF-8的注释。

nvim /etc/locale.gen

再执行locale-gen

locale-gen

创建/etc/locale.conf文件,并在/etc/locale.conf文件中添加LANG=en_US.UTF-8

nvim /etc/locale.conf

# 添加以下内容
LANG=en_US.UTF-8

网络配置


创建/etc/hostname文件,在文件中添加自己的主机名

nvim /etc/hostname

# 添加自己的主机名
arch-test

添加hosts,在/etc/hosts中添加以下内容:

127.0.0.1     localhost

::1           localhost

127.0.1.1     主机名.localdomain 主机名

给 root 用户添加密码


passwd

连续输入两次密码即可。

输入密码时不会有字符显示。

安装 grub 引导


BIOS 安装 grub 引导程序


BIOS只需要安装grub

安装grub软件包。

pacman -S grub

grub安装。

grub-install --target=i386-pc /dev/sda

生成grub的配置文件。

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

UEFI 安装 grub 引导程序


UEFI需要额外安装efibootmgr

pacman -S grub efibootmgr

grub安装。

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

生成grub的配置文件。

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

根据cpu选择安装intel-ucodeamd-ucode

pacman -S intel-ucode

或

pacman -S amd-ucode

双系统需要额外安装os-prober

pacman -S os-prober

安装 dhcpcd 和 iwd


dhcpcd用于新系统动态分配ip地址

iwd用于新系统连接wifi

pacman -S dhcpcd iwd

退出系统


exit

取消挂载


umount -R /mnt

重启电脑


reboot

4. 重启进入系统后的设置


联网设置


启动dhcpcd

systemctl start dhcpcd

systemctl enable dhcpcd

启动iwd

systemctl start iwd

systemctl enable iwd

网络设置好后,可以ping一下看网络是否连通。

ping baidu.com

更新系统


pacman -Syyu

安装软件包


pacman -S base-devel

添加普通用户


useradd -mG wheel <用户名>

给新用户设置密码


passwd <用户名>

修改 /etc/sudoers 文件


nvim /etc/sudoers

/etc/sudoers文件中放开以下代码的注释可以使用sudo命令。

# 放开此行的注释
%wheel ALL=(ALL) ALL

退出root用户


exit

使用新用户登录


arch-user

5. pacman 常用命令


文章地址:pacman 常用命令

6. Arch Linnux 美化 (st + dwm)


文章地址:Arch Linux 美化 (st + dwm)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

详写 UEFI & BIOS 安装 Arch Linux 的相关文章

  • 使用 find - 删除除任何一个之外的所有文件/目录(在 Linux 中)

    如果我们想删除我们使用的所有文件和目录 rm rf 但是 如果我希望一次性删除除一个特定文件之外的所有文件和目录怎么办 有什么命令可以做到这一点吗 rm rf 可以轻松地一次性删除 甚至可以删除我最喜欢的文件 目录 提前致谢 find ht
  • 在 Linux 上更快地分叉大型进程?

    在现代 Linux 上达到与 Linux 相同效果的最快 最好的方法是什么 fork execve combo 从一个大的过程 我的问题是进程分叉大约 500MByte 大 并且一个简单的基准测试只能从进程中实现约 50 个分叉 秒 比较最
  • awk 子串单个字符

    这是columns txt aaa bbb 3 ccc ddd 2 eee fff 1 3 3 g 3 hhh i jjj 3 kkk ll 3 mm nn oo 3 我可以找到第二列以 b 开头的行 awk if substr 2 1 1
  • 是否可以在Linux上将C转换为asm而不链接libc?

    测试平台为Linux 32位 但也欢迎 Windows 32 位上的某些解决方案 这是一个c代码片段 int a 0 printf d n a 如果我使用 gcc 生成汇编代码 gcc S test c 然后我会得到 movl 0 28 e
  • Android:ANT 构建失败,并显示 google-play-services-lib:“解析为没有项目的 project.properties 文件的路径”

    我正在尝试使用 ANT 构建我的应用程序 但在包含 google play services lib 库项目后 我惨遭失败 Step 1 我在 project properties 文件中设置了对库项目的引用 android library
  • 强制卸载 NFS 安装目录 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的答案
  • Linux 中的无缓冲 I/O

    我正在写入大量的数据 这些数据数周内都不会再次读取 由于我的程序运行 机器上的可用内存量 显示为 空闲 或 顶部 很快下降 我的内存量应用程序使用量不会增加 其他进程使用的内存量也不会增加 这让我相信内存正在被文件系统缓存消耗 因为我不打算
  • 如何检测并找出程序是否陷入死锁?

    这是一道面试题 如何检测并确定程序是否陷入死锁 是否有一些工具可用于在 Linux Unix 系统上执行此操作 我的想法 如果程序没有任何进展并且其状态为运行 则为死锁 但是 其他原因也可能导致此问题 开源工具有valgrind halgr
  • 使用 grep 查找包含所有搜索字符串的行

    我有一个文件 其中包含很多与此类似的行 id 2796 some model Profile message type MODEL SAVE fields account 14 address null modification times
  • 如何禁用 GNOME 桌面屏幕锁定? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 如何阻止 GNOME 桌面在几分钟空闲时间后锁定屏幕 我已经尝试过官方手册了在红帽 https access redhat com doc
  • nginx 上的多个网站和可用网站

    通过 nginx 的基本安装 您的sites available文件夹只有一个文件 default 怎么样sites available文件夹的工作原理以及如何使用它来托管多个 单独的 网站 只是为了添加另一种方法 您可以为您托管的每个虚拟
  • 为什么 Linux perf 使用事件 l1d.replacement 来处理 x86 上的“L1 dcache misses”?

    在英特尔 x86 上 Linux用途 https stackoverflow com a 52172985 149138事件l1d replacements来实施其L1 dcache load misses event 该事件定义如下 计数
  • 为什么内核需要虚拟寻址?

    在Linux中 每个进程都有其虚拟地址空间 例如 32位系统为4GB 其中3GB为进程保留 1GB为内核保留 这种虚拟寻址机制有助于隔离每个进程的地址空间 对于流程来说这是可以理解的 因为有很多流程 但既然我们只有 1 个内核 那么为什么我
  • 大多数 Linux 系统头文件与 C++ 兼容吗?

    大多数 Linux 系统头文件 API C 兼容吗 今天我试图做这样的事情 include
  • sendfile64 只复制约2GB

    我需要使用 sendfile64 复制大约 16GB 的文件 到目前为止我所取得的成就是 include
  • Android 时钟滴答数 [赫兹]

    关于 proc pid stat 中应用程序的总 CPU 使用率 https stackoverflow com questions 16726779 total cpu usage of an application from proc
  • arm64和armhf有什么区别?

    Raspberry Pi Type 3 具有 64 位 CPU 但其架构不是arm64 but armhf 有什么区别arm64 and armhf armhf代表 arm hard float 是给定的名称Debian 端口 https
  • 两种情况或 if 哪个更快? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我必须制作一个 非常 轻的脚本 它将接受用户的选项并调用脚本中的函数来执行一些任务 现在我可以使用 IF 和 CASE 选项 但我想知道两
  • CentOS:无法安装 Chromium 浏览器

    我正在尝试在 centOS 6 i 中安装 chromium 以 root 用户身份运行以下命令 cd etc yum repos d wget http repos fedorapeople org repos spot chromium
  • NPTL 和 POSIX 线程有什么区别?

    NPTL 和 POSIX 线程之间的基本区别是什么 这两者是如何演变的 POSIX 线程 pthread 不是一个实现 它是几个函数的 API 规范 纸上的标准 英文 其名称以pthread 以及定义在

随机推荐