我最初的正式问题是“如何在 GPT/UEFI 系统上安装 Arch Linux”
这是通过 arch linux 社区提供的文档来解决的,文档位于此处:
https://wiki.archlinux.org/index.php/Installation_guide
我尝试按照文档操作,但无法使该过程正常工作。更准确地说,我在设置挂载点和安装基本系统时遇到了问题。Arch Linux 的文档采用高度模块化、非线性的方式,因此在遵循指南时,您必须经常从一个部分跳转到另一个部分。我一定是迷失了方向,因为我无法从他们的指南中找出事物的顺序。我最终拼凑了自己的流程(在 Arch Linux 论坛中得到了一些帮助:https://bbs.archlinux.org/viewtopic.php?id=196339) 我想将它发布到这里希望它能够帮助到其他人。
自从我在 Arch Linux 论坛上发布了我的发现后,我注意到我的帖子已经有超过 1,000 次浏览量,所以我希望它能帮助一些人。我认为把它发布在这里以增加它的可用性也是不错的。
这是我所拥有的所有内容,从开始到结束,都集中在一个地方。
请注意这是针对华硕 M5A97 R2.0 的,不同的系统可能以不同的方式实现 UEFI。
答案1
你知道 Arch Wiki 有一个新手指南对于不熟悉 Arch 安装过程的用户来说哪个更容易遵循?
安装非常简单,所以我不会在这里完整记录,我只会重点介绍与 UEFI 相关的部分:
首先,您需要使用 GPT 分区表。我更喜欢使用
gdisk
(的 GPT 等效版本fdisk
)而不是 parted,因此您需要创建一个 EFI 系统分区。它有一个最小尺寸对于 4K 扇区驱动器,其大小为 260MB;对于传统的 512B 扇区驱动器,其大小为 100MB。您可以谨慎行事,始终使用 260MB 或更多。在 中创建分区时gdisk
,将类型设置为ef00
。一旦创建分区,就在它上面放置 FAT32 文件系统—
mkfs.fat -F32 /dev/sdX1
。根据需要创建和格式化其他分区,然后根据 wiki 安装它们 - 不要创建分区
/boot
,我们可以为此使用 EFI 系统分区。将该 EFI 分区挂载到
/mnt/boot
-mount /dev/sdX1 /mnt/boot
。按照安装指南操作,但不要安装引导加载程序——没有必要,因为 Linux 内核可以直接作为 UEFI 应用程序启动,它甚至维基百科中有记录,所以我们只需要安装
efibootmgr
(一个用于管理 UEFI 启动项的包)并运行以下命令即可在 UEFI NVRAM 中声明我们的 Arch 系统:efibootmgr -d /dev/sdX -p 1 -c -L "Arch Linux" -l /vmlinuz-linux -u "root=/dev/<root partition, UUIDs or LABELs can be used> initrd=/initramfs-linux.img"
退出 chroot 并欣赏魔法。
答案2
首先,命令:
parted /dev/sda
mklabel gpt
mkpart ESP fat32 1MiB 513MiB
set 1 boot on
mkpart primary ext4 513MiB 100%
quit
mkfs.vfat -F32 /dev/sda1
mkfs.ext4 /dev/sda2
mount /dev/sda2 /mnt
mkdir -p /mnt/boot
mount /dev/sda1 /mnt/boot
pacstrap -i /mnt base base-devel
genfstab -U -p /mnt >> /mnt/etc/fstab
check fstab with 'nano /mnt/etc/fstab'
arch-chroot /mnt /bin/bash
locale-gen
echo LANG=en_US.UTF-8 > /etc/locale.conf
export LANG=en_US.UTF-8
hwclock --systohc --utc
echo SomeHostname > /etc/hostname
echo SomeHostname > /etc/hosts
systemctl enable [email protected]
passwd
pacman -S grub os-prober efibootmgr
mkdir -p /boot/efi
mount -t vfat /dev/sda1 /boot/efi
modprobe dm-mod
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader- id=arch_grub --recheck --debug
mkdir -p /boot/grub/locale
cp /usr/share/locale/en\@quot/LC_MESSAGES/grub.mo /boot/grub/locale/en.mo
grub-mkconfig -o /boot/grub/grub.cfg
pacman -S wget zip unzip
cd ~
wget http://dl.dropbox.com/u/17629062/Shell2.zip
unzip Shell2.zip
cp ~/Shell2/UefiShellX64.efi /boot/efi/shellx64.efi
reboot
F2 to get into ASUS's pre-boot GUI
Shell> bcfg boot add 3 fs1:\EFI\Arch_Grub\grubx64.efi "Arch_Grub"
Shell> bcfg boot dump -v
reboot
pacman -Syyu
在此过程中要注意的关键事项是创建 ESP 分区(这是 UEFI 标准所要求的)和一些其他分区来保存其余数据。