跳到主要内容

安装 ArchLinux & Windows 双系统

· 阅读需 7 分钟
Skyone
科技爱好者

Windows 10 用了也有好几年了,最近用的有点腻了,这次折腾一下 ArchLinux。搞个双系统,也顺便检验一下自己的 Linux 水平。

都说 ArchLinux 安装有点难度,需要手动安装所有系统组件,但是我觉得还好,只要按照 Wiki 上的步骤一步一步来,就不会出什么问题。之前一直拿 ArchLinux 的 LiveCD 模式在虚拟机里面折腾,这次直接在实体机上安装 ArchLinux 并包含桌面环境。

首先第一步,去 ArchLinux 官网下载安装镜像。国内可以使用 清华大学开源软件镜像站下载,速度还是很快的。我离科大近的,就用科大的镜像站下载了。

制作启动盘也不用多说,我用的是 Win32DiskImager,直接写入 U 盘就行了。然后进入电脑 BIOS,调整启动顺序,从 U 盘启动。

在开始安装前,我先列举几个链接,方便查阅:

下面正式开始。

创建分区

至少需要 boot/ 分区. 推荐分区如下:

挂载位置大小文件系统
/剩余空间随意,这里使用 btrfs
/boot512MBfat32
交换区2GB以上swap

使用 fdisk 创建分区, 由于安装时没法复制,我就拿之前在虚拟机里装的做例子。实际上设备名称可能不是 /dev/sda,可以使用 lsblk 查看。

信息

我这里使用的是 UEFI 引导,如果你使用的是 BIOS 引导,需要创建一个 BIOS boot 分区。详情看这里:Partition the disks

fdisk /dev/sda

使用 g 创建空的 GPT 分区(适用于 UEFI 引导)

使用 p 打印当前分区

使用 n 创建新分区

使用 m 获取帮助

本例分区如下:

Disk /dev/sda: 30 GiB, 32212254720 bytes, 62914560 sectors
Disk model: VMware Virtual S
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: EA3D6492-C011-A449-BCB9-4122D1B01ADE

Device Start End Sectors Size Type
/dev/sda1 2048 1001471 999424 488M Linux filesystem
/dev/sda2 1001472 58720219 57718748 27.5G Linux filesystem
/dev/sda3 58720220 62912511 4192292 2G Linux filesystem

创建完分区后,使用 w 保存并退出。

格式化分区

这里我计划让根分区使用 btrfs 文件系统,引导分区使用 fat32 文件系统,交换分区使用 swap 文件系统。

下面是各种分区的格式化方法,其实都差不多。

  • fat32 引导区
mkfs.fat -F 32 /dev/sda1
  • btrfs 根分区
mkfs.btrfs /dev/sda2
  • 交换区
mkswap /dev/sda3

挂载分区

接下来将分区挂载到 /mnt 目录下。注意顺序,先挂载根分区,再挂载引导分区。

  • / 分区挂载到 LiveCD 的 /mnt
mount /dev/sda2 /mnt
  • /boot 分区挂载到 LiveCD 的 /mnt/boot
mkdir /mnt/boot
mount /dev/sda1 /mnt/boot
  • 启用交换区
swapon /dev/sda3
备注

这里一定要启用交换区,否则后面生成 fstab 时不包含交换区,到时候还得自己编辑。

安装基本系统

从这里开始基本天高任鸟飞了,想装什么装什么,ArchLinux主打一个自由,所以你可以自由的选择你想要的东西。

推荐先安装: base linux linux-firmware base-devel dhcpcd vim ,别的可以等近真正的系统再安装。

pacstrap /mnt base linux linux-firmware base-devel dhcpcd vim
  • base linux linux-firmware

    Linux 所需的最基本的包

  • base-devel

    最基本的编译工具, 例如 gcc

  • dhcpcd

    dhcp 的客户端, 用于局域网 IP 协商, 没这玩意你连网都上不了, 近真正的系统就装不了了

  • vim

    文件编辑器

基本的配置

接下来使用 arch-chroot 进入被安装的系统,配置一下最基本的东西。

arch-chroot /mnt

设置时区

设置时区为中国上海, 同步时间

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

配置语言

编辑 /etc/locale.gen, 把 en_US.UTF-8 UTF-8 取消注释

vim /etc/locale.gen

这里可别选中文,Linux TTY 根本不能显示中文。

生成配置文件

locale-gen

编辑 /etc/locale.conf, 内容如下

LANG=en_US.UTF-8

设置主机名

修改 /etc/hostname 为你想要的主机名

修改 root 密码

passwd

安装GRUB引导

我当然知道还有其他的引导,但都想定制引导了,也就不用看我这文章了。

确保你已经使用 arch-chroot 进入了被安装的系统

安装 GRUB 及相关的包

安装 GRUB , efibootmgr, 以及对应你 CPU 的 intel-ucodeamd-ucode

pacman -S grub efibootmgr intel-ucode os-prober

生成配置文件

这里要注意一点, 新版本的 GRUB 默认禁用了 os-prober, 也就是说不会自动检测其他系统, 需要手动启用,编辑 /etc/default/grub, 将 GRUB_DISABLE_OS_PROBER 设置为 false, 然后运行命令生成配置文件。

mkdir /boot/grub
grub-mkconfig -o /boot/grub/grub.cfg
信息

注意一下,这里还是检测不到 Windows 的,需要手动安装 ntfs-3g,然后再次运行 grub-mkconfig。记住是需要先 arch-chroot 进入系统,然后再安装 ntfs-3g,而不是在 LiveCD 环境下安装。

安装 GRUB

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

再次强调,这里是 UEFI 引导,如果你使用的是 BIOS 引导,需要使用 --target=i386-pc 安装。

最后的配置

首先使用 exit 命令退出 arch-chroot, 回到 LiveCD 环境

生成文件系统挂载配置

使用 genfstab 生成 fstab 并追加到 /mnt/etc/fstab

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

重启以进入新系统

reboot

到这里这篇文章就结束了,下一篇文章总结一下安装 GNOME 的过程。