Archlinux安装教程

Posted 乌拉诺斯

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Archlinux安装教程相关的知识,希望对你有一定的参考价值。

一、准备

1.下载镜像

这里下载最新的iso镜像文件,使用poweriso或者dd刻录到U盘。可以用lsblk看一下U盘的设备名,把sdx改成对应的。刻录之前确保U盘没有挂载,要是Ubuntu插上会自动挂载,用umount /dev/sdx取消挂载就好。

# dd bs=4M if=/path/to/archlinux.iso of=/dev/sdx status=progress oflag=sync

安装完成之后,想要清除U盘里的镜像需要把重建分区信息并且格式化,先用

// 清除iso的filesystem
# wipefs --all /dev/sdx
 //进去分区工具,用d命令删除,用n新建一个分区,新建的时候按回车下一步选默认就好,用w写入并退出, 后面分区的部分有介绍其他命令
# gdisk /dev/sdx
# mkfs.vfat /dev/sdx

## 2.从U盘启动

启动后选择从U盘启动,可能需要到Bios里关闭Secure Boot
确认启动方式是否为efi

# ls /sys/firmwre/efi/efivars


二、安装

1.连接网络(wlan)

如果是有线网的话,连接之后打开dhcp应该就可以了

# systemctl start dhcpd

接口激活: ip

  • 使用rfkill list查看wlan是否被锁,如果被锁使用rfkill unblock解锁。
  • 使用ip link查看wlan的接口名称,类似wlp9s0,下面用<wlan>表示
  • 激活wlan接口,使用ip link set <wlan> up激活接口,激活后使用ip link可以看到wlan接口的状态显示为类似<BROADCAST,MULTICASR,UP,LOWER_UP>(包含UP说明接口打开)

无线连接: iw

  • 使用iw dev <wlan> scan | less可以查看扫描到的接入点
  • 使用iw <wlan> connect连接 参考wiki
设接入点SSID为<SSID>

无加密:
# iw dev <wlan> connect <SSID>

WEP加密
使用十六进制或 ASCII 密码(格式是自动识别出来的,因为 WEP 密码长度是固定的):
# iw dev <wlan> connect <SSID> key 0:<KEY>
使用十六进制或 ASCII 密码,第三个是默认 (从0计数,共四个)
# iw dev wlan0 connect your_essid key d:2:your_key

WPA/WPA2加密
WPA/WPA2
# wpa_supplicant -i <wlan> -c <(wpa_passphrase <SSID> <KEY>)

获取ip: dhcp

# dhcpcd <wlan>

2.分区: gdisk, mkfs

建立分区

使用gdisk /dev/sdx可以选择指定硬盘进行分区,下面是gdisk中常用的命令:

  • ? 打印可用的命令
  • p 打印分区表
  • o 新建GPT分区表
  • n 新建分区
  • d 删除分区
  • q 不更改分区表,直接退出
  • w 将更改实际写到硬盘上

一般至少需要新建/所在的分区(类型代码8300),还可以将home或者var目录挂载到单独的分区。如果需要还可以建立swap分区(类型代码8200),如果是空白的硬盘,还需要建立EFI分区(类型代码ef00)

格式化分区

# mkfs.vfat -F32 /dev/sda1
# mkfs.ext4 /dev/sda2
// swap分区可以不用了, 想要swap可以用[swap文件](https://wiki.archlinux.org/index.php/Swap#Swap_file)
# mkswap /dev/sda3 
# swapon /dev/sda3

挂载分区: mount

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

3.安装基本系统

选择软件源

编辑/etc/pacman.d/mirrorlist,添加使用的源。如

Server=https://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch

然后刷新

# pacman -Sy

基本系统

base-devel也可以不选

# pacstrap /mnt base base-devel

生成fstab

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

生成完了之后最好用cat查看一下

4.配置

chroot到新系统

# arch-chroot /mnt /bin/bash

语言地区

编辑/etc/locale.gen,去掉一下几行的注释

en_US.UTF-8 UTF-8 
zh_CN.GB18030 GB18030 
zh_CN.GBK GBK 
zh_CN.UTF-8 UTF-8 
zh_CN GB2312

然后运行

# locale-gen

最后编辑/etc/locale.conf

LANG=en.UTF-8

终端字体(可选)

编辑 /etc/vconsole.conf

KEYMAP=us
FONT=Lat2-Terminus16

时区

/etc/localtime 软链接到 /usr/share/zoneinfo/Zone/SubZone 。其中 ZoneSubzone 替换为所在时区,例如:

# ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

主机名(可选)

# echo myhostname > /etc/hostname

设置 Root 密码、添加用户

除了设置 Root 密码外,添加一个管理员组的帐户做平时使用:

# passwd
# useradd -G wheel -d /home/user -m user
# passwd user

安装和配置 Bootloader

// 想检测别的系统可以再装上os-prober
# pacman -S grub efibootmgr
# grub-install --target=x86_64-efi --bootloader-id=Arch --recheck
# grub-mkconfig -o /boot/grub/grub.cfg

X窗口管理器和一些驱动

X窗口管理器

#  pacman -S xorg-server xorg-xinit

通用显卡驱动

# pacman -S xf86-video-vesa

有独立的显卡(NVIDIA)的话需要注意一下,下面装桌面环境的时候,最好把nvidia独立显卡驱动装上,之前遇到到不装驱动,登录之后很快就卡住的情况,应该跟nouveau没关系,因为在grub的命令里面加了nouveau.blacklist=1把nouveau禁用了。把NVIDIA驱动装上之后就没有出现进了桌面很快就freeze的情况。

声卡驱动

# pacman -S alsa-utils

输入设备驱动

装一下输入设备驱动libinput

# pacman -S xf86-input-libinput
//最好把配置工具xinput也装一下
# pacman -S xorg-xinput

带synaptics触摸板的可以安装synaptics驱动, elan的触摸板最好还是不要装了,遇到过tap to click 打不开的情况:

# pacman -S xf86-input-synaptics

虚拟机

如果是在 VMware 中安装,安装一些专门用于虚拟机的驱动程序(这些我没有试,把Arch装虚拟机里感觉并不是正确的打开方式):

# pacman -S xf86-input-vmmouse xf86-video-vmware svga-dri

安装 VMware Tools,在 VMware 中选择“安装 VMware Tools”,然后:

# pacman -S linux-headers
# for x in {0..6}; do mkdir -pv /etc/init.d/rc$x.d; done
# mount /dev/cdrom /mnt
# cd /root
# tar zxf /mnt/VMwareTools*.tar.gz
# cd vmware-tools-distrib
# ./vmware-install.pl

安装字体

安装一些常用的中英文字体:

# pacman -S ttf-dejavu wqy-zenhei wqy-microhei

连接网络

gnome自带了networkmanager,如果安装deepin可能需要单独安装下,不然开机之后连不了网。

# pacman -S networkmanager
# systemctl disable dhcpcd.service//dhcpcd和NetworkManager冲突
# systemctl enable NetworkManager.service

安装桌面环境(deepin)

装之前先把NVIDIA显卡装上

# pacman -S nvidia opencl-nvidia

也可以不选extra

# pacman -S deepin deepin-extra

配置lightdm登录管理器

# vi /etc/lightdm/lightdm.conf

找到

/etc/lightdm/lightdm.conf
[Seat:*]
...
#greeter-session=example-gtk-gnome

去掉注释,并改为:

greeter-session=lightdm-deepin-greeter

启动lightdm服务

# systemctl enable lightdm.servicce

重启即可



三、SSD优化

开启TRIM

TRIM的介绍参考Archwiki-TRIM的介绍,这里使用修改/etc/fstab的方法启用TRIM。

UUID=xxx	/         	ext4      	rw,discard,noatime,nodiratime	0 1
  • discard参数启动TRIM可以提升性能和使用持久性。
  • noatime和nodiratime告诉文件系统不要记录文件和目录的最后访问时间

减少SWAP读写频率

减少对SWAP的操作

$ sudo vim /etc/sysctl.d/99-sysctl.conf
vm.swappiness = 1
vm.vfs_cache_pressure = 50

重启后生效

更换低延迟的IO-Scheduler

默认的IO调度器CFQ(Copletely Fair Queuing)是针对HDD的优化,对多个读操作进行分组队列。但是SSD的读取效率非常高,完全不必要分组排队,使用一个队列就可以了。建议更换为:

  • NOOP(当系统只有SSD的情况下非常建议)
  • Deadline模式
    编辑文件/etc/default/grub,在GRUB_CMDLINE_LINUX_DEFAULT=参数里面加入elevator=noop

把一些经常写的目录挂载到内存

更改/etc/fstab,在最后加入

tmpfs /tmp tmpfs defaults,noatime,nodiratime,mode=1777 0 0
tmpfs /var/log tmpfs defaults,noatime,mode=1777 0 0
tmpfs /var/tmp tmpfs defaults,noatime,mode=1777 0 0

如果需要保留日志就不要把/var/log挂载到硬盘


四 常用软件

安装一些常用的软件

  • Anki
  • BoostNote
  • Chrome
  • Crossover (wechat office2007 thunder-speed)
  • deepin-baidu-pan
  • deepin.com.qq.office
  • Foxit Reader
  • k-vim
  • GoldenDict
  • Oh my zsh
  • RedNotebook
  • Netease Cloud Music
  • Nutstore
  • Skype
  • Stacer
  • TeamViewer
  • TexStudio
  • Visual Studio Code
  • VLC
  • Vmware Workstation
  • Wireshark
  • WPS
  • Zotero

五、存在的问题

装了之后现在还是有些问题,记录一下,如果找到解决办法也记录下来方便以后查看。这些我自己机器(技嘉AERO 15)上遇到的问题,别的电脑可能就没有了,如果有的话也可以尝试一下提到的解决办法,欢迎交流。
先说一下已经解决的

蓝牙不识别

# pacman -S install bluez bluez-utils
# systemctl enable bluetooth.service

Deepin的grub2-daemon的问题

如果自己更改/etc/default/grub的话,会被Deepin的grub2-daemon覆盖掉,具体是下面几个文件

/usr/share/dbus-1/system-services/com.deepin.daemon.Grub2.service
/usr/share/dbus-1/system.d/com.deepin.daemon.Grub2.conf
/usr/share/polkit-1/actions/com.deepin.daemon.Grub2.policy
/usr/lib/deepin-daemon/grub2

可以运行下面这个文件更新grub来防止被覆盖

//disable_daemon_grub2.sh
#!/bin/sh
set -x
sudo update-grub2
scriptMD5sum=$(md5sum /boot/grub/grub.cfg|awk \'{print $1}\')
logfile=/var/cache/deepin/grub2.log
sudo sed -i "s#scriptMD5sum=.*#scriptMD5sum=$scriptMD5sum#" $logfile

HDMI 接口的外接显示器检测不到

参考hdmi 检测不到,现在有了一个能work的解决办法。新建/usr/share/X11/xorg.conf.d/20-intel.conf

Section "Device"
    Identifier "intelgpu0"
    Driver "intel"
    Option "VirtualHeads" "2"
EndSection

修改/etc/bumblebee/xorg.conf.nvidia

Section "ServerLayout"
    Identifier  "Layout0"
    Option      "AutoAddDevices" "true"
    Option      "AutoAddGPU" "false"
EndSection

Section "Device"
    Identifier  "DiscreteNvidia"
    Driver      "nvidia"
    VendorName  "NVIDIA Corporation"
    Option "ProbeAllGpus" "false"

    Option "NoLogo" "true"
    Option "UseEDID" "false"
    Option "AllowEmptyInitialConfiguration"
#    Option "UseDisplayDevice" "none"
EndSection

Section "Screen"
    Identifier "Screen0"
    Device "DiscreteNvidia"
EndSection

修改/etc/default/grub里的参数

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nouveau.blacklist=1 i915.modeset=1 acpi_backlight=vendor acpi_osi=! acpi_osi=\\"Windows 2009\\""

更新grub之后重启,运行sudo intel-virtual-output -f

没法用tee /proc/acpi/bbswitch <<< ON打开独立显卡

Refused to change power state, currently in D3

在tlp的配置文件/etc/default/tlp中的RUNTIME_PM_BLACKLIST里面加入独立显卡的pci地址01:00.0(用lspci命令可以查看),关闭无线网卡的电源管理
修改/etc/default/grub里的参数

//加入acpi_osi=! acpi_osi=\\"Windows 2009\\"
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nouveau.blacklist=1 i915.modeset=1 acpi_backlight=vendor acpi_osi=! acpi_osi=\\"Windows 2009\\""

无线网卡的问题

无线网卡suspend之后再resume会出现不能扫描出网络的问题,查看dmesg可以看到错误信息

Aug 30 09:15:40 AERO15 kernel: iwlwifi 0000:03:00.0: Could not load the [0] uCode section
Aug 30 09:15:40 AERO15 kernel: iwlwifi 0000:03:00.0: Failed to run INIT ucode: -5
Aug 30 09:15:40 AERO15 kernel: iwlwifi 0000:03:00.0: Failed to start INIT ucode: -5
Aug 30 09:15:40 AERO15 kernel: iwlwifi 0000:03:00.0: Failed to start RT ucode: -5

尝试关闭Wake On Lan(参加后面的参考),问题没解决
在tlp的配置文件/etc/default/tlp中的RUNTIME_PM_BLACKLIST里面加入无线网卡的pci地址03:00.0(用lspci命令可以查看),RUNTIME_PM_DRIVER_BLACKLIST里面加入iwlwifi,关闭无线网卡的电源管理

登录界面的tap to click没有打开

使用xf86-input-libinput驱动Elan的触摸板,不管是使用lightdm还是gdm,在登录界面都不能用轻触触摸板产生点击,而必须按压触摸板,原因是tab to click默认没有打开。登录之后使用设置可以配置打开,但是并不影响登录界面的设置。
解决办法如下,编辑/etc/X11/xorg.conf.d/40-touchpad.conf

Section "InputClass"
    Identifier "touchpad"
    Driver "libinput"
    MatchIsTouchpad "on"
    Option "Tapping" "on"
    Option "TapButton1" "1"
    Option "TapButton2" "3"
    Option "TapButton3" "2"
    Option "VertEdgeScroll" "on"
    Option "VertTwoFingerScroll" "on"
    Option "HorizEdgeScroll" "on"
    Option "HorizTwoFingerScroll" "on"
    Option "CircularScrolling" "on"
    Option "CircScrollTrigger" "2"
    Option "EmulateTwoFingerMinZ" "40"
    Option "EmulateTwoFingerMinW" "8"
    Option "CoastingSpeed" "0"
    Option "FingerLow" "30"
    Option "FingerHigh" "50"
    Option "MaxTapTime" "125"
EndSection

参见Archwiki Touchpad

没解决的

  • 蓝牙发送文件会失败
  • 无线网卡有时会用着用着不能扫描网络了,看dmesg有一大堆错误,最先出现的是这两句
kernel: iwlwifi 0000:03:00.0: Error sending STATISTICS_CMD: time out after 2000ms.
kernel: iwlwifi 0000:03:00.0: Current CMD queue read_ptr 16 write_ptr 17

用tlp关闭关闭无线网卡的电源管理之后也出现过,/etc/NetworkManager/conf.d/新建一个文件default-wifi-powersave.conf

[connection]
wifi.powersave = 2

现在不确定是不是解决了



参考:

更改日志:

  • 2018.01.07 创建
  • 2018.08.30 增加五、存在的问题,更改输入设备驱动一部分
  • 2018.08.31 增加HDMI的问题
  • 2018.09.24 增加登录界面启用tab to click的部分 补齐软件和ssd优化部分

以上是关于Archlinux安装教程的主要内容,如果未能解决你的问题,请参考以下文章

Archlinux安装教程

ArchLinux安装教程

虚拟机安装archLinux+xfce桌面教程(更新时间2017-5-8)

arch-linux安装小记(一)

如何在arch linux系统中安装MongoDB

WSL2安装archlinux