这两天突然心血来潮,想折腾一下黑苹果,于是就把原来的Debian删了。然而,不幸的是,经过各种折腾始终没有找到合适的EFI,虽然最后通过恢复版进了系统,但usb网络不生效,遂放弃。

但是,又不想回Debian,索性就装个Arch玩玩。

一、准备工作

1、下载镜像和制作安装启动盘

0x1、下载Arch安装镜像

去Arch的官网下载或者国内的镜像站下载。

官网的话,我更推荐你直接使用bt下载,可以拉满你的带宽。镜像站可以用北外的,你可以点击这里直达北京外国语大学开源镜像站的Arch镜像仓库。

现在最新的镜像应该是archlinux-2022.07.01-x86_64.iso这个,如果你有其它架构的需求,我更建议你使用Debian。

然后等待下载完成

0x2、制作安装盘

这里我们使用rufus来制作,如果你想要使用多系统引导,那可以尝试ventoy

rufus官网: https://rufus.ie/zh/
ventoy官网: https://www.ventoy.net/cn/

这里我们使用rufus来写盘:

rufus_zh_CN

设备一栏里选择你的U盘
引导类型选择一栏里选择你下载的ISO镜像
分区类型选择GPT

剩下的默认,然后点击开始,此过程会直接清空U盘里的数据,请提前做好备份。等待完成后,启动U盘就可以使用了。

0x4、在硬盘上为Arch分配安装所需的空间

这里你可以使用第三方的diskgenius,或者Windows自带的磁盘管理应用,使用调整大小或者压缩卷功能来分配,如果你打算深入使用的话,我的建议是不小于100G

0x3、电脑BIOS设置

因为Arch不支持安全启动,所以请关掉BIOS里的这个功能

二、开始安装

1、启动到Arch安装环境

具体怎么修改启动项,看你的电脑,这部分略。
当你看到控制台时,就说明启动成功了。

2、进行安装前的简单准备

因为arch的安装极度依赖网络,除了必须要联网外,一个准确的时间也是是非常必要的。

0x1 检查网络和设置时间

默认情况下,使用有线网络会比较简单,如果你的笔记本无有线接口,可以考虑使用手机的usb网络共享
绝大多数情况下,安装镜像自带的DHCP服务会自动帮你联网,你可以使用

ip addr

来检查网络情况

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: wlo1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether c0:e4:34:21:40:61 brd ff:ff:ff:ff:ff:ff
    altname wlp4s0
    inet 192.168.5.109/24 brd 192.168.5.255 scope global dynamic noprefixroute wlo1
       valid_lft 5497sec preferred_lft 5497sec
    inet6 fe80::36a2:d1e8:726a:e314/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
       

然后

ping baidu.com

来检查网络连通性。

然后设置一下时间:

timedatectl set-ntp true

3、对硬盘进行分区

这一步是最重要的一步,我们使用fdisk 命令来操作:

首先查看一下硬盘的分区情况:

fdisk -l
Disk /dev/sda:298.09 GiB,320072933376 字节,625142448 个扇区
磁盘型号:WDBUZG5000ABK-0B
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 4096 字节
I/O 大小(最小/最佳):4096 字节 / 4096 字节
磁盘标签类型:gpt
磁盘标识符:22744885-1488-4E87-99BE-45DD1D9A881E

设备           起点      末尾      扇区   大小 类型
/dev/sda1        40    614439    614400   300M EFI 系统
/dev/sda2    616448  17393663  16777216     8G Linux 文件系统
/dev/sda3  17393664  48850943  31457280    15G Linux 文件系统
/dev/sda4  48850944 625141759 576290816 274.8G Linux 文件系统


Disk /dev/nvme0n1:476.94 GiB,512110190592 字节,1000215216 个扇区
磁盘型号:INTEL SSDPEKNW512G8                     
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:gpt
磁盘标识符:C6C57CA3-11DC-4352-9821-85292E7099F2

设备                起点       末尾      扇区   大小 类型
/dev/nvme0n1p1      2048     206847    204800   100M EFI 系统
/dev/nvme0n1p2    206848     239615     32768    16M Microsoft 保留
/dev/nvme0n1p3    239616  226264871 226025256 107.8G Microsoft 基本数据
/dev/nvme0n1p4 226265088  227434495   1169408   571M Windows 恢复环境
/dev/nvme0n1p5 227436544  883475331 656038788 312.8G Microsoft 基本数据
/dev/nvme0n1p6 883476480 1000214527 116738048  55.7G Linux 文件系统

解释一下上面的东西:
因为我有两块硬盘,一个是SATA机械,一个是NVME固态硬盘,所以这里会显示两个设备。

/dev/sda表示的是我的机械硬盘。
/dev/nvme0n1则表示是我的固态硬盘

再看后面跟的序号:

/dev/sda1表示的是我机械硬盘上的第一分区,往后类推。
/dev/nvme0n1p2 表示的是我固态硬盘上的第二个分区,往后类推。

现在我们要对这些磁盘进行操作:
假定你要选择sda的这个硬盘

fisk  /dev/sda

执行后,它会出现这样的提示,只不过是英语的。

欢迎使用 fdisk (util-linux 2.38)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

该磁盘目前正在使用 - 不建议您重新分区。
推荐您卸载此磁盘上所有的文件系统,并关闭(swapoff)上面的交换分区。


命令(输入 m 获取帮助):

假定你已经在这块儿磁盘上预留空间了:
输入n

一路按回车键,然后它会自动在你预留的空间上建立新分区。

然后格式化掉你新建的这个分区,比如,我这里是固态硬盘上的第六个分区,那就是:

mkfs.ext4 /dev/nvme0n1p6

ext4可以替换成你想要的文件系统,比如btrfs

如果你不打算手动分区的话,准备把文件放在一起,那到这里就可以挂载了。

把你创建的这个分区挂载到/mnt

mount /dev/nvme0n1p6 /mnt

然后挂载EFI分区,一会儿安装BootLoader和启动系统要用到。
先在/mnt里创建一个目录

mkdir -p /mnt/efi

然后挂载你硬盘上本来就有的efi分区到刚才建立的目录

mount /dev/nvme0n1p1 /mnt/efi

4、下载安装新系统所需要的必备组件

0x1、下载安装组件

使用如下命令:

pacstrap /mnt base linux linux-firmware base-devel dhcpcd nano sof-firmware sudo

等待下载完成:

0x2、生成新系统的分区表
genfstab -U /mnt >> /mnt/etc/fstab

生成完成后建议再手动检查一遍,然后这时候就可以进入新系统了。

5、进入新系统并做必要的配置。

0x1、切换到新系统
arch-chroot /mnt
0x2、设置时区和区域语言

我们在东八区,所以使用如下设置

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

把时间写入硬件:

hwclock --systohc

更改地区:
需在这两个文件设置:locale.genlocale.conf

nano /etc/locale.gen

取消en_US.UTF-8 UTF-8zh_CN.UTF-8 UTF-8前面的#注释

执行locale-gen使设置生效:

locale-gen

编辑/etc/locale.conf
在里面加入

LANG=en_US.UTF-8

这个用来指定显示的语言,先在建议暂时使用英语,否则后面的tty会乱码。

0x3、配置网络

创建/etc/hostname

nano /etc/hostname

在里面起一个你想要的名字比如:Arch

0x4、设置root密码
passwd

然后输入你的密码,两次确认即可。

6、安装bootloader

grub是一个开源的功能完善的BootLoader,我们需要它来引导新系统开机。

在安装前,我们需要先安装一下微码:

Arch的wiki里关于微码的说明
处理器制造商会发布对处理器微码的稳定性和安全性更新。这些更新提供了对系统稳定性至关重要的错误修复。如果没有这些更新,则可能会遇到不明原因的崩溃或难以跟踪的意外停机。

使用 AMD 或 Intel CPU 的用户都应该安装微码更新以确保系统稳定性。

微码更新通常随主板固件一起提供,并在固件初始化时被应用。但是 OEM 可能不会及时发布固件更新,并且旧系统根本不会获得新的固件更新,所以 Linux 内核提供了启动时应用微码更新的功能.

pacman -S intel-ucode
或者
pacman -S amd-ucode

这取决于你的cpu

现在安装grub,首先你需要安装这三个软件包:

pacman -S grub efibootmgr os-prober 

然后把启动器安装到efi分区:

grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=GRUB

接着生成grub的配置文件:

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

因为grub的安全政策,你需要修改一下配置文件/etc/default/grub
找到这一行,并取消注释。

GRUB_DISABLE_OS_PROBER=false

这样os-prober才能找到Windows的引导并添加。

改完以后再重建一下配置:

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

然后输入exit退出到安装环境,然后reboot并拔掉U盘,然后重启进入系统。

三、新系统的配置

如果有线没网,可以使用dhcpcd获取一下IP地址。
然后就是创建一个用户
这时候因为没有桌面环境,我们需要安装一个图形界面。xfce,gnome,kde看你喜好了。
网上教程很多,这部分属于个性化定制,自己摸索吧。

Q.E.D.