新博客: https://yehuohan.github.io/ 或者 http://yehuohan.oschina.io/
写在开头
纯命令安装Arch,如果具备以下条件,安装过程会相对顺利:
- 对linux的基本命令比较熟悉;
- 有安装其他linux发行版的经验;
- 了解引导的基本知识;
- 在虚拟机安装一遍Arch,并记下自己的步骤。
ArchWiki参考教程
注意:以下ArchWiki的教程,有些是中文,可以自己选择(左侧栏里选)语言。中文是根据英文翻译过来,一般会注明最后更新时间,看英文还是中文,自己把握。
Install guide
Arch安装全过程,不过具体某一项时,需要查看相应的教程。Network configuration
有线网配置教程。Wireless network configuration
无线网配置教程。General recommendations
安装完Arch后,对Arch的配置(如安装桌面环境等)教程。Xorg
Xorg相关教程
Arch启动盘
最简单的方法,就是直接刻录到U盘中,然后用U盘启动就行。
这里我只记下自己的方法:
安装环境
UEFI启动,硬盘使用MBR分区(没写错,就是MBR,不是GPT)。多系统:
已经安装了Windows,且有一个ESP分区了,所在Arch也就直接使用ESP即可。启动方法:
我使用refind引导。将Arch.iso解到任一硬盘分区的根目录(移动硬盘也可以),然后,在refind中添加Arch的引导即可。我使用的refind配置。
安装Arch
这里的“安装Arch”,是指按照此部分教程安装完后,会得到一个只有控制台的Arch Linux系统。同时,此部分开始的的教程,均是基于已经正确进入Arch安装环境的前提下。
键盘布局
控制台键盘默认布局为us(一般不用担心键盘布局),使用下列命令更改(二位字母编码表):
loadkeys <layou>
# 更改布局
查看硬盘、内存基本信息
- 查看硬盘分区
df -h
# 显示磁盘相关信息
blkid
# 查看块设备(包括交换分区)的信息
lsblk
# 列出所有可用块设备信息,包括硬盘,闪存盘,CD-Rom等
lsblk -f
# 列出块设备的文件系统信息
fdisk -l
# 列出设备的分区表情况
# 以上命令,均可查看硬盘情况
free -h
# 查看内存使用情况
- 查看是否以UEFI启动
ls /sys/firmware/efi/efivars
# 如果提示efivars不存在,则不是UEFI启动。
网络连接
这里先提供几种网络接入方法:
如是公司或家里的有线网:
那就很简单了,直接插上网线就行;如果是Wifi:
按照无线网配置即可;如果是校园网(需要登录校园网帐号的那种):
- 使用另一台电脑开wifi热点;
- 使用手机的USB网络共享功能,即相当于将手机当成“网线”,然后手机连接并登录校圆网(推荐这种方法)。
查看网卡信息
- 查看网络连接设置
ip link
# 一般有线网设备以 "e" (ethernet,以太)开头,无线网设备以 "wl" (wireless)开头
# 如果没有显示无线设备,看下是不是关了(如:有些电脑可以使用Fn+F5打开或关闭无线网)
# 或者在Windows系统连接一下无线网(多系统的话),再重启进入Arch安装环境
lspci
# 查看所有PCI设备,包括了网卡设备
lsusb
# 查看所有USB设备,如果是外接USB网卡,就可以此命令查看
- 启用网卡设备
不管是有线还是无线,都需要启用网卡后,才能接开始配置。
ip link set <dev-name> up
# 启动网卡设备,dev-name为有线或无线网卡设备名称
# 启动后,用 ip link 查看时,会有 "UP" 的标记
ip link set <dev-name> down
# 停用网卡设备,dev-name为有线或无线网卡设备名称,重启即先down再up
有线网配置
有线网配置只需要获取的IP就行;如果是静态IP,则参考有线网配置教程。
dhcpcd <dev-name>
# 为dev-name自动获取IP地址,dev-name为有线网卡设备名称
# dhcp是动态主机配置协义,负责管理和分配IP地址等
kill <pid>
# 结束进程,pid为进程的PID
# 使用dhcpcd后,会返加一个pid,需要重新获取IP地址,则先结速dhcpcd即可
ping -c 3 www.google.com
# 检测网络是否正常
无线网配置
无线网配置相对复杂一点,情况太多,这里只说下我的配置过程,具体情况参照有线网配置教程。
iw dev
# 查看无线设备
iw dev <dev-name> link
# 查看无线网 dev-name 的加接状态
iw dev <dev-name> scan
# 扫描wifi热点
wpa_passphrase <your_SSID> <your_KEY> > /ws.conf
# 生成连接配置,并保存在ws.conf,SSID和KEY为热点名称和密码
wpa_supplicant -B -i wlp13s1 -c /ws.conf
# 使用连接配置来连接无线网
dhcpcd <dev-name>
# 为dev-name自动获取IP地址,dev-name为无线网卡设备名称
# 使用kill可结束dhcpcd
ping -c 3 www.google.com
# 检测网络是否正常
时间与时区
timedatectl
# 查询和更改系统时钟设置
timedatectl status
# 查看当前Time状态
timedatectl set-ntp true
# 远程NTP服务器时间同步
硬盘分区
先确定好分区情况,我的分区设置如下:
/dev/sda1 : ESP分区,fat32格式,refind引导所在分区
/dev/sdb1 : / 分区,ext4格式
/dev/sdb2 : swap分区,如果是多Linux系统,则swap分区共用
分区
先查看硬盘相关信息,使后使用相应软件分区。- cfdisk
硬盘分区工具,支持GPT和MBR,可以直接创建EFI分区,推荐此工具,拥有简单的UI,相对比较直观,分区不易出错。
- cfdisk
cfdisk /dev/sdb
# 对sdb硬盘进行分区操作
- fidsk, cfdisk, sfdisk, parted : 均支持GPT和MBR
gdisk, cgdisk, sgdisk : 只支持GPT
格式化分区
mkfs.ext4 /dev/sdb1
# mkfs即make file system,创建文件系统,将sdb1格式化成ext4,这里sdb1作为'/'目录
mkswap /dev/sdb2
# 格式化Swap分区
swapon /dev/sdb2
# 激活Swap分区
mkfs.fat -F32 /dev/sda1
# 格式化成Fat32,作为ESP分区;mkfs.vfat与mkfs.fat等价
# 如果是多系统,已经有ESP分区,则不需要格式化,直接使用即可
- 挂载分区
mount /dev/sdb1 /mnt
mkdir /mnt/boot
mkdir /mnt/boot/efi
mount /dev/sda1 /mnt/boot/efi
# 将sdb1挂载到/mnt,这时,/mnt就相当于新系统的根目录,ESP分区也挂载到新系统的boot/efi目录下
# 如果还其分区,也挂载到相应位置即可
开始安装系统
此部分需要联网下载,大概200~300Mb的样子。
vim /etc/pacman.d/mirrorlist
# 更改镜像源,将其中China的放在文件开头,其它的可以删了(有一个HongKong的可以留着)
pacstrap -i /mnt base base-devel
# 安装ArchLinux基本系统
生成分区表
genfstab -U -p /mnt >> /mnt/etc/fstab
# 生成fstab文件,保存系统分区表
到了这,系统已经基本安装完了,接下来就要配置系统,至少现在Arch还不知道如何启动。
配置Arch
现在开始配置安装完的Arch Linux。
切换root用户
arch-chroot /mnt /bin/bash
# 转到新系统的root用户,使用bash,即此后的命令都是对以/mnt作为根目录的系统操作
alias vim=vi
# 新系统中暂时没有vim,添加一个吧
alias ll='ls -l'
# 查看目录,控制台下方便点
设置时区
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# 设置时区,Shanghai即为东八时区(北京时间)
hwlock --systohc --utc
# 设置成UTC时间标准,即本地时间 = Bios时间 + 时区数(北京为+0800)
hwlock --systohc --localtime
# 设置使用本地时间标准,即本地时间 = Bios时间
本地化
vim /etc/locale.gen
# 设置本地化类型为UTF-8编码,添加:
zh_CN.UTF-8 UTF-8
en_US.UTF-8 UTF-8
locale-gen
# 生成locale信息
echo LANG=en_US.UTF-8 > /etc/locale.conf
# 添加本地化文件locale.conf,用英文,使用zh_CN会导致tty中文乱码
主机名
echo myhostname > /etc/hostname
# 设置主机名称,myhostname会出现在终端的提示符中
vim /etc/hosts
# 添加对应的信息,如下:
# /etc/hostname: static lookup table for host names
#<ip-address> <hostname.domain.org> <hostname>
127.0.0.1 localhost.localdomain myhostname
::1 localhost.localdomain myhostname
网络配置
用前面的方法即可。
不过有趣的是,新安装的Arch系统里没有iw等无线网式具,需要先安装
pacman -S iw wpa_supplicant dialog
# 安装式具
但是,安装软件就需要先联网,所以,如果只联网。。。好像循环了。。。应该可以从Arch安装环境中拷吧(我没试过)
好了,我反正用手机USB共享的网络,既然有网了,当然得学会pacman的的基本用法:
pacman -S <packge-name> # 安装软件
pacman -U <gz-file> # 安装本地包,其扩展名为 pkg.tar.gz
pacman -Syu # 同步Msys2源,并更新
pacman -Sy # 仅同步源
pacman -Su # 更新系统
pacman -Sy <packge-name> # 同步源后再安装软件
pacman -R <packge-name> # 该命令将只删除包,不包含该包的依赖。
pacman -Rs <packge-name> # 在删除包的同时,也将删除其依赖。
pacman -Rd <packge-name> # 在删除包时不检查依赖。
pacman -Ss <keywords> # 这将搜索含关键字的包。
pacman -Qi <packge-name> # 查看有关包的信息。
Root密码
passwd root
# 设置root密码
Initramfs
mkinitcpio -p linux
# 初始化Initramfs(init ram fs)
安装引导程序
- 使用grub
pacman -S grub efibootmgr
# 安装引导程序grub和创建efi启动项程序efibootmgr
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=grubname
# 安装efi程序到/boot/efi/grub,grubname为存放grub.efi文件的目录名称
grub-mkconfig -o /boot/grub/grub.cfg
# 生成引导配置文件grub.cfg
efibootmgr
# 显示efi启动项
- 使用refind
refind也可以使用pacman安装,不过最好到官方网站下载最新版,并按照官方教程复制所需要的文件到指定目录。然后用efibootmgr添加启动项。
efibootmgr -c -l /boot/efi/refind/refind_x64.efi -L 'refind boot manager'
# 创建refind启动(需要自己添加refind文件)
- 生成引导初始化文件
若是不小心将vmlinuz等文件给删了,可以使用下列命令重新生成:
pacman -S linux
mkinitcpio -p linux
创建用户
pacman -S zsh
# 安装zsh,新用户使用zsh
cp /etc/sudoers /etc/sudoers_bak
vim /etc/sudoers
# 修改sudoers文件,启用wheel组(去掉'#%wheel ALL=(ALL) ALL'前的#即可)
useradd -m -G wheel -s /bin/zsh username
# 创建用户,同时创建与username同名的用户组,所属的附加组为wheel组,使用zsh
useradd -m -g usergroup -G wheel -s /bin/zsh username
# 创建用户,属于usergroup组(需要先创建用户组),所属的附加组为wheel组,使用zsh
passwd username
# 设定密码
重启
exit
# 退出chroot
cd /
umount -R /mnt
reboot
Arch系统的安装就结束了,接下来就是个性化的配置了。
基本软件安装
shell和vim
sudo pacman -S vim git
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
yaourt
sudo vim /etc/pacman.conf
添加:
[archlinuxcn]
#The Chinese Arch Linux communities packages.
SigLevel = Optional TrustAll
Server = http://repo.archlinuxcn.org/$arch
sudo pacman -Syu yaourt
# 安装yaourt,yaourt命令类似于pacman
安装桌面环镜
从头到尾安装桌面环境,包括:
- 显卡驱动(Display Driver)
- 显示服务(Display Server)
- 显示管理器(Display Manager)
- 桌面环境(Desktop Environment)
- 窗口管理器(Window Manager)
显卡驱动
lspci -v | grep VGA
# 查看显示型号
sudo pacman -S <显卡驱动>
# 根据自己的显卡,查找相应的显卡驱,开源驱动(也有闭源的,推荐使用开源的)如下:
# 通用 : xf86-video-vesa
# AMD : xf86-video-amdgpu
# ATI : xf86-video-ait
# Intel : xf86-video-intel
# Nvidia : xf86-video-nouveau
# VMWare : xf86-video-vmware
显示服务
X窗口管理系统(X11)是一种显示协议提供的GUI环境的基本框架,如屏幕绘制、鼠标键盘交互等;而Xorg是X11的开源实现。
- 安装Xorg-server
sudo pacman -S xorg-server
# 安装xorg服务
sudo pacman -S xorg-server-utils
# 鼠标加速
sudo pacman -S xf86-input-synaptics
# 触摸板
现在安装好了X11,启动X11可以使用登录管理器(也即 显示管理器),也可以使用xorg-init(即 通过startx命令启动X11)。
推荐用登录管理器,xorg-init也可以同时安装。
- 安装xorg-init
sudo pacman -S xorg-xinit xorg-twm xorg-xclock xterm
# 安装xorg-init和twm窗器管理器
cp /etc/X11/xinit/xintrc ~/.xinitrc
# 桌面环境配置文件
startx
# 测试xorg
显示管理器
显示管理器即是登录管理器,登录时的界面,常用的显示管理器有sddm,LightDM等,这里安装sddm。
sudo pacman -S sddm
# 安装sddm
sddm --example-config > /etc/sddm.conf
# (使用root用户)创建sddm配置文件,初始创建的为默认配置
# sddm默认使用tty1开启形会话,可以配置成tty7,但tty1还是没法进行命令交互
# 不过tty2~tty6还是可以作为文本控制台用
sudo systemctl enable sddm.service
# 开机启动sddm
ls -l /etc/systemd/system/display-manager.service
# 查看当前使用的是那个登录管理器
桌面环境
桌面环境最好安装通用的,常用的如KDE, xfce等,安装示例:
sudo vim /etc/locale.conf
# 修改: LANG=zh_CN.UTF-8
# 修改本地化为中文
sudo pacman -S xfce4 xfce4-goodies
# 安装xfce桌面,goodies为一些基本工具软件,同时默认安装xfwm4窗口管理器
exec xfwm4 & exec startxfce4
# 修改xinitrc,通过startx启动X11
# 如果使用显示管理器,如sddm,则可以选择要使用的桌面环境
窗口管理器
窗口管理器负责绘制窗口的边框和背景等,处理窗口的移动、最大/小化等行为。桌面环境是窗口管理器的超集,使用窗口管理器和其化一此常用软件组成一个完整的桌面工作环境。
所以说,只安装窗口管理器,而不安装桌面环境也是可以的。
窗口管理器可以用桌面环境默认自带的,也可以自己选择,如平铺式有i3, awesome等。
安装i3
sudo pacman -S i3 dmenu
# 安装i3窗口管理器,dmenu为i3程充启动器
cp /etc/i3/config ~/.i3/config
# 创建i3配置文件,.i3没有则自己mkdir
# 如果使用xorg-init,则添加 "exec i3" 到.xinitrc,通过startx则可以启动ie
安装awesome
sudo pacman -S awesome
mkdir -p ~/.config/awesome/
cp /etc/xdg/awesome/rc.lua ~/.config/awesome/
# 安装awesome,并创建配置文件rc.lua
# 如果使用xorg-init,则添加 "exec awesome" 到.xinitrc,通过startx则可以启动ie
安装Qtile
(使用Qtile我电脑启动不了)
yaourt -S qtile
# 安装qtile
cp /usr/lib/python3.6/site-packages/libqtile/resources/default_config.py ~/.config/qtile/config.py
# 添加配置文件
python3 -m py_compile ~/.config/qtile/config.py
# 测试配置是否有语法错误