UEFI 下安装 archlinux

2017/03/05

UEFI下安装archlinux

1 确认启动模式

如果主板支持uefi,arch启动镜像会使用uefi启动,为了确认,显示efivar目录

# ls /sys/firmware/efi/efivars

如果目录不存在,则系统为bios模式启动

2 连接因特网并且更新系统时间

# ping www.baidu.com
# timedatectl set-ntp true

3 分区

使用parted进行分区,键入help查看帮助。 新建分区表

(parted) mklabel
New disk label type? gpt

启动分区

(parted) mkpart ESP fat32 1MiB 513MiB
(parted) set 1 boot on

根目录

(parted) mkpart primary ext4 513MiB 20.5GiB

home目录

(parted) mkpart primary ext4 20.5GiB 100%

parted默认是开启了区块对齐的,可以提高硬盘的读写速度。 如果分区大小不能对齐,parted会显示一下信息。

(parted) mkpart primary fat16 0 32M
Warning: The resulting partition is not properly aligned for best performance.
Ignore/Cancel?

如果分区单位是MiB或者GiB, 默认就是对齐的。

4 格式化

# mkfs.fat -F 32 /dev/sda1
# mkfs.ext4 /dev/sda2

5 挂载

# mount /dev/sda2 /mnt
# mkdir -p /mnt/boot/efi
# mkdir -p /mnt/home

# mount /dev/sda1 /mnt/boot/efi
# mount /dev/sda3 /mnt/home

6 安装基本包

在安装包之前,最好是先设置一下源。 选择所有中国的源

# sed -i '/Score/{/China/!{n;s/^/#/}}' /etc/pacman.d/mirrorlist

base-devel 是常用工具

# pacstrap /mnt base base-devel

7 生成fstab

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

8 进入新系统

# arch-chroot /mnt

9 设置当地时间

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

10 设置locale

需要的语言取消注释

# vim /etc/locale.gen
# locale-gen
# echo "LANG=en_US.UTF-8" >> /etc/locale.conf

11 设置主机名

/etc/hostname
myhostname
/etc/hosts
127.0.0.1   localhost.localdomain   localhost
::1     localhost.localdomain   localhost
127.0.1.1   myhostname.localdomain  myhostname

12 网络设置

13 Initramfs

# mkinitcpio -p linux

14 grub

# pacman -S grub efibootmgr
# grub-install --target=x86_64-efi --efi-directory=esp_mount --bootloader-id=grub

15 安装ucode

# pacman -S intel-ucode

16 生成grub.cfg

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

17 至此已经安装完毕了,可以退出livecd

18 配置系统

18.1 添加新用户

# useradd -m -G wheel -s /bin/bash archie

18.2 修改sudo

# visudo

允许wheel组使用sudo

18.3 显示驱动

# pacman -S mesa vulkan-intel libva-intel-driver

18.4 桌面环境

# pacman -S gnome

18.5 软件

18.6 安装fcitx

# pacman -S fcitx fcitx-gtk3 fcitx-gtk2 fcitx-qt5 fcitx-configtool

由于在wayland下fcitx 无法读取 ~/.xprofile 中的环境变量, 所以为了fcitx正常工作,在 /etc/environment 中添加

export GTK_IM_MODULE=fcitx                                                      
export QT_IM_MODULE=fcitx                                                       
export XMODIFIERS=@im=fcitx

18.7 配置键盘映射

因为gnome 从3.22开始已经使用wayland了,所以xmodmap不起作用, 又因为设置里还不能设置具体键位映射,只能在udev中配置,将sancodes直接映射为keycodes。 Map scancodes to keycodes

查看keycode,如果不知道是那个event 进入by-id 查看软链接。

# evtest /dev/input/event0

MSCSCAN就是该按键的scancodes。

创建配置文件 使用lsusb,查看键盘vendor id和product id 格式:

KEYBOARD_KEY_<scancode>=<keycode>

keycode可以在

/usr/include/linux/input-event-codes.h (see the KEY_<KEYCODE> variables)

示例配置

/etc/udev/hwdb.d/10-my-modifiers.hwdb
evdev:input:b*v05AFp8277* # was tested on Kensington Slim Type USB (with old ABI)
 KEYBOARD_KEY_70039=leftalt  # bind capslock to leftalt
 KEYBOARD_KEY_700e2=leftctrl # bind leftalt to leftctrl

更新并重载Hardware Database index

# systemd-hwdb update
# udevadm trigger

18.8 设置按键延时和重复速度

使用dconf editor 编辑 这里是按键按下到开始连击的延时,以毫秒计。

/org/gnome/desktop/peripherals/keyboard/delay

这里是按键重复的间隔,以毫秒计。

/org/gnome/desktop/peripherals/keyboard/repeat-interval

18.9 安装aur hleper

选择的是pacaur,依赖于cower

首先需要导入key

$ gpg --recv-keys --keyserver hkp://pgp.mit.edu 1EB2638FF56C0C53

安装

$ git clone https://aur.archlinux.org/cower.git 
$ cd cower && makepkg -sri
$ git clone https://aur.archlinux.org/pacaur.git
$ cd pacaur && makepkg -sri