Arch Linux安装记录

来源:互联网 发布:javascript 在线编译 编辑:程序博客网 时间:2024/05/13 11:38

新博客: https://yehuohan.github.io/ 或者 http://yehuohan.oschina.io/

Arch Linux安装记录


写在开头

纯命令安装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可结束dhcpcdping -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 /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 /mntmkdir /mnt/bootmkdir /mnt/boot/efimount /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-8en_US.UTF-8 UTF-8locale-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.gzpacman -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)

安装引导程序

UEFI引导可以使用grub、refind等。

  • 使用grub
pacman -S grub efibootmgr# 安装引导程序grub和创建efi启动项程序efibootmgrgrub-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.cfgefibootmgr# 显示efi启动项
  • 使用refind
    refind也可以使用pacman安装,不过最好到官方网站下载最新版,并按照官方教程复制所需要的文件到指定目录。然后用efibootmgr添加启动项。
efibootmgr -c -l /boot/efi/refind/refind_x64.efi -L 'refind boot manager'# 创建refind启动(需要自己添加refind文件)
  • 生成引导初始化文件

若是不小心将vmlinuz等文件给删了,可以使用下列命令重新生成:

pacman -S linuxmkinitcpio -p linux

创建用户

pacman -S zsh# 安装zsh,新用户使用zshcp /etc/sudoers /etc/sudoers_bakvim /etc/sudoers# 修改sudoers文件,启用wheel组(去掉'#%wheel ALL=(ALL) ALL'前的#即可)useradd -m -G wheel -s /bin/zsh username# 创建用户,同时创建与username同名的用户组,所属的附加组为wheel组,使用zshuseradd -m -g usergroup -G wheel -s /bin/zsh username# 创建用户,属于usergroup组(需要先创建用户组),所属的附加组为wheel组,使用zshpasswd username # 设定密码

重启

exit# 退出chrootcd /umount -R /mntreboot

Arch系统的安装就结束了,接下来就是个性化的配置了。


基本软件安装

shell和vim

sudo pacman -S vim gitsh -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 TrustAllServer   = http://repo.archlinuxcn.org/$archsudo 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# 安装sddmsddm --example-config > /etc/sddm.conf# (使用root用户)创建sddm配置文件,初始创建的为默认配置# sddm默认使用tty1开启形会话,可以配置成tty7,但tty1还是没法进行命令交互# 不过tty2~tty6还是可以作为文本控制台用sudo systemctl enable sddm.service# 开机启动sddmls -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 awesomemkdir -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# 安装qtilecp  /usr/lib/python3.6/site-packages/libqtile/resources/default_config.py ~/.config/qtile/config.py# 添加配置文件python3 -m py_compile ~/.config/qtile/config.py# 测试配置是否有语法错误