您尚未登录。

#1 2017-10-22 10:11:33

maokewu
会员
所在地: 云南省楚雄州大姚县
注册时间: 2015-02-03
帖子: 41

ArchLinux安装笔记

以下是2013年以来把自己的办公电脑和家用电脑折腾成Archlinux的安装经验,先是i686,现在已全部换成x86_64了。在此我将这些经验奉献给Archlinux爱好者。

利用Archlinux组装自己喜欢的操作系统

对于使用计算机的各种零配件组装PC已经不是什么新鲜事了,你想过自己组装操作系统吗?用Archlinux可以轻松地实现这一目的。当你打算组装一个更适合自己使用的计算机操作系统时,首先得进行一些知识准备,最佳的途径是浏览https://wiki.archlinux.org/index.php/Main_page_(简体中文),了解一些必要的知识点,然后按照下面的安装步骤,你将能够打造出适合自己的计算机操作系统。当然,如果之前你对Linux有较多的了解,你会很轻松地实现这一目标。如果对Linux一无所知,则会遇到一些困难。但不要紧,关键是你有没有DIY自己的操作系统的兴趣,然后实践才能出真知。

安装前准备
1. 获取Archlinux ISO文件
2. 准备安装介质,如刻录光盘或制作成可引导U盘
可引导U盘制作:# dd bs=4M if=archlinux.iso of=/dev/sdb && sync
3. 用Archlinux制作的可引导光盘或U盘启动电脑至安装环境

检查是否运行于UEFI模式
对于新电脑需要检查电脑主板是否是通过UEFI引导:
# efivar -l
如果efivar命令列出了UEFI变量,则说明电脑是通过UEFI引导启动,因此随后安装grub时,将采用不同的方法。如果不打算使用UEFI引导,必须进入UEFI设置,或许可以使用传统的BIOS来引导启动电脑,则grub安装会简单一些。

安装前网络配置
1. 有线连接
先检查网络接口:ip link
例如:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 00:21:9b:0f:93:2c brd ff:ff:ff:ff:ff:ff
这里的网络接口是eth0,如果网络接口未激活,先激活网络接口:# ip link set 接口名称 up,然后编辑/etc/dhcpcd.conf文件,在末尾添加以下内容:
## setup network for installs Archlinux
interface 网络接口名称
static ip_address=X.X.X.X/24
static routers=X.X.X.X
static domain_name_servers=X.X.X.X X.X.X.X
重启dhcpcd.service:
# systemctl restart dhcpcd.service
进行以上步骤后,网络可能已经可用,如果仍有问题,可尝试手工配置IP地址
# ip addr add X.X.X.X/24 broadcast X.X.X.X dev 接口名称
设置网关:# ip route add default via X.X.X.X
以上命令执行成功后,测试网络能否接通,但无法设置DNS。
2. ADSL宽带连接
# pppoe-setup (进行适当配置)
# systemctl start adsl (激活连接)
3. 无线连接
# wifi-menu

选择或建立安装分区
使用fdisk命令浏览硬盘分区情况,如果没有足够的空闲区域安装Archlinux,则需要调整Windows分区,让出足够的磁盘空间后再运行fdisk命令。对于新电脑,特别是硬盘容量大于1T以上的电脑。还要注意已经安装的Windows是否已经使用GPT分区。如果使用了GPT分区,则只能使用UEFI引导启动电脑,且分区必须参考相关资料按GPT的要求进行分区。

Linux文件系统摘要
Linux常见的文件系统如下:
/:根分区;
/bin:存放常用的命令文件;
/boot:存放内核及启动所需要的文件;
/dev:存放设备文件;
/etc:存放系统配置文件;
/lib:存放库文件;
/sys:存放系统文件;
/sbin:存放一些系统管理程序;
/usr:存放绝大多数应用程序及其命令、配置、库等;
/opt:一些应用会默认安装到这里;
/run:早期在“/var”下,存放运行时的信息,目前其功能已经得到扩充;
/proc:这是一个虚拟的文件系统,存放当前系统的状态(有关进程和系统信息);
/tmp:存放系统运行时时产生的临时文件
/root:超级用户目录;
/var:存放系统运行或应用安装的缓存文件等;
/home:普通用户目录;
此外,随着不同的系统,还会有一些别的文件系统。
建立Linux文件系统要与前面建立分区相结合,由于/root、/var、/home这三个文件系统常常会存储着用户的相关文件,如/var中会有安装软件包,/home下有用户的文档或别的文件,因此可以考虑独立出来,/boot也可以独立出来,因此分区时,可以为这些文件系统建立单独的分区,如建立/dev/sda1作为根分区(/),大小约16G左右,/dev/sda2作为/var分区,大小10G左右,/dev/sda3作/home分区,大小不限,如果安装服务器,/dev/sda4作/boot分区,大小约200M~500M。

格式化分区
参考以下命令:
# mkfs.ext4 /dev/sdX(Y) (X=a,b,...,Y=1,2,3,...)
# mkfs.fat  (将磁盘格式化为兼容Windows的磁盘格式)
如:# mkfs.fat -F32 /dev/sda1 (将分区sda1格式化为FAT32分区)
# mkswap  (将分区格式化为Linux专用的数据缓冲区)
如果为Archlinux安排了专门的swap数据缓冲区,需启用该分区:
# swapon /dev/sdX(Y)

修改安装镜像
# vi /etc/pacman.d/mirrorlist
原则上删除远离中国的镜像源,编辑好后一定要刷新镜像源:# pacman -Syy

挂载目标分区
# mount 磁盘分区 挂载点(即目录)
如:# mount /dev/sda7 /mnt  (将ArchLinux安装到磁盘第7个分区上)
# mkdir -p /mnt/home  (创建/home目录)
# mount /dev/sda8 /mnt/home  (使用磁盘第8个分区作为用户目录</home>分区)
如果使用UEFI引导,需将/boot独立出来,但一般大于500兆即可:
# mkdir -p /mnt/boot/EFI  (创建UEFI挂载点)
# mount /dev/sdX(Y) /mnt/boot/EFI  (挂载UEFI分区,一般情况下使用靠前的分区)

基本系统安装
pacstrap /mnt base base-devel

生成分区表
#genfstab -U -p /mnt >> /mnt/etc/fstab
应该检查一下分区表是否已经正确生成: # vi /mnt/etc/fstab

进入安装的系统
# 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,创建locale.conf并使语言设置立即生效:
# echo LANG=en_US.UTF-8 > /etc/locale.conf
# export LANG=en_US.UTF-8

时区设置
1. 查看可用时区
# ls /usr/share/zoneinfo/
2. 将系统时区设为上海:
# ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localetime

硬件时间
# hwclock --systohc --localtime

配置主机名称(Hostname)
# echo 主机名 > /etc/hostname

配置/etc/hosts文件
# vi /etc/hosts (在每一行后面添加”主机名“)
配置后,该文件应类似这样:
#<ip-address> <hostname.domain.org> <hostname>
127.0.0.1 localhost.localdomain localhost 主机名
::1   localhost.localdomain localhost 主机名

基本系统安装结束后配置网络
1. 静态IP
从/etc/netctl/examples复制配置样本到/etc/netctl:
# cd /etc/netctl
# cp /examples/ethernet-static my_network
# vi my_network
设置样例(关键设置):
interface=网络接口名
Address=('192.168.x.x/24')
Gateway='192.168.x.x'
DNS=('x.x.x.x')
启用”my_network“配置:
# netctl enable my_network
如果之前启用过此配置,必须先执行# netctl disable my_network后,才能执行成功。
2. 动态IP
参考安装前网络配置

创建ramdisk
# vi /etc/mkinitcpio.conf    # 无需配置可跳过
# mkinitcpio -p linux

为root用户设置密码
# passwd  (在随后的提示两次输入同一密码即可)

安装NTFS文件系统驱动
如果将Archlinux安装到Windows机器空闲的分区,由于Windows一般情况下是使用NTFS文件系统,与Linux不兼容,因而必须安装NTFS驱动,以便在Archlinux下访问Windows分区的文件。
# pacman -S ntfs-3g

安装开机系统引导程序
# pacman -S grub (对于双系统,还需要安装os-prober)
# grub-install --target=i386-pc /dev/sda
# grub-mkconfig -o /boot/grub/grub.cfg
对于UEFI:
# pacman -S dosfstools efibootmgr
# pacman -S grub
# grub-install --target=x86_64-efi --efi-directory=/boot/EFI --bootloader-id=arch_grub --recheck
# grub-mkconfig -o /boot/grub/grub.cfg

以上步骤完成了Archlinux基本系统的安装,需退出新安装的系统:# exit
将新安装的系统与Archlinux安装镜像分离:# umount -R /mnt
重启系统:# reboot

安装网络配置工具(可选)
pacman -S net-tools dnsutils

安装终端Zsh Shell(可选)
终端可以使用默认的Bash,也可以安装目前较流行的Zsh Shell。
# pacman -S zsh
配置zsh(可选):
# touch ~/.zshrc && vi ~/.zshrc 文件内容见样例。
样例:
##############################################################
autoload -U compinit promptinit
compinit
promptinit

# This will set the default prompt to the walters theme
prompt walters

bindkey "^[[A" history-search-backward
bindkey "^[[B" history-search-forward

PROMPT="[%{$fg[red]%}%n%{$reset_color%}@%{$fg[blue]%}%m %{$fg[yellow]%}%1~ %{$reset_color%}%#]#  "
###############################################################

用户和用户组
超级用户root一般只能用于系统管理。因此,在桌面环境下,需要添加普通用户作为日常应用处理。其命令是:
# useradd -m -g users -G audio,video,floppy,network,scanner,storage,optical,power,wheel,uucp -s /usr/bin/zsh 用户名
其中参数-m 会在/home目录下“用户名”的目录,-G之后的用户组是桌面用户必须加入的组,特别是wheel组。

启用sudo组
# visudo (打开/etc/sudoers文件,将wheel和sudo组前的”%“符号去掉并保存)
# groupadd sudo (在组文件"/etc/group"中增加一个sudo组)
# usermod -G sudo -a 用户名
将上一步骤添加的桌面环境用户加入sudo组中。

安装显卡驱动
# lspci | grep VGA  (确定显卡型号)
# pacman -S 显卡驱动包  (安装显卡驱动)
可参考:
通用:# pacman -S xf86-video-vesa
Intel:# pacman -S xf86-video-intel
nVidia:
通用:xf86-video-nouveau
开源:nvidia
闭源:nvidia-304xx
AMD/ATI:xf86-video-ati
除非想玩游戏,建议使用通用或开源驱动。

安装X窗口系统
各种桌面环境都依赖X-org,X窗口系统(X11/X)是诸多桌面环境的基础(后面两个模块可能已失效):
# pacman -S xorg-server xorg-xinit xorg-utils xorg-server-utils
mesa是Archlinux的一个OpenGL图形库,但可能与某些显卡驱动相冲突,因此最好由显卡驱动来决定是否依赖该图形库。

安装桌面环境
桌面环境模块有gnome、kde、xfce、cinnamon、lxde等。例如:
# pacman -S kdebase kde-l10n-zh_cn
这里选择KDE桌面环境,但只是以最小化安装。KDE桌面环境可分为三个组,最小化(kdebase)、KDE实用程序(kdeutils)和kde组(包含最小化和kde实用程序),kde-l10n-zh_cn是中文语言包。安装完成后,需要进行用户桌面环境中文化设置。切换到前面建立的桌面环境用户下,在用户目录下建立“.xprofile”文件。
# touch .xprofile
# vi .xprofile
输入以下内容:
## setup for environment of chinese
export LANG=zh_CN.UTF-8
export LANGUAGE=zh_CN:en_US
export LC_CTYPE=en_US.UTF-8
窗口管理器也是一种极为简单的桌面环境。

安装桌面管理程序组
# pacman -S kdeadmin kdegraphics kdemultimedia kdenetwork
kdeadmin组包含:
kdeadmin-kcron (配置与运行任务管理)
kdeadmin-ksystemlog (系统日志查看工具)
kdeadmin-kuser (用户管理)
kdegraphics组包含:
gwenview  (图形查看器)
kdegraphics-kamera  (配置Kamera)
kdegraphics-kcolorchooser  (颜色选择器)
kdegraphics-kgamma  (监视器校准)
kdegraphics-kolourpaint  (画图程序)
kdegraphics-kruler  (屏幕标尺)
kdegraphics-ksnapshot  (屏幕截图)
kdegraphics-mobipocket  (电子阅读器插件)
kdegraphics-okular  (文档阅读器)
kdemultimedia组包含:
kdemultimedia-audiocd-kio  (读取CD音乐)
kdemultimedia-dragonplayer  (简单的多媒体播放器)
kdemultimedia-ffmpegthumbs  (音视频编解码和录制转换等底层支持)
kdemultimedia-juk  (简单的音乐播放器)
kdemultimedia-kmix  (KDE桌面音量控制)
kdemultimedia-kscd  (KDE CD播放器)
kdemultimedia-mplayerthumbs  (Mplayer底层支持)
kdenetwork组包含:
kdenetwork-filesharing  (局域网共享插件)
kdenetwork-kget  (下载管理)
kdenetwork-kopete  (即时消息管理)
kdenetwork-kppp  (Internet拨号工具)
kdenetwork-krdc  (远程桌面客户端)
kdenetwork-krfb  (桌面共享)
kdenetwork-strigi-analyzers  (网络协议分析器)
kdenetwork-zeroconf-ioslave  (网络监控服务)

启用显示管理器
流行的显示管理器有:GDM(Gnome桌面环境)、KDM、SDDM(KDE桌面环境)、LightDM、LXDM等。KDE已经内置显示管理器,仅需设置一下即可。
# systemctl enable sddm.service
早期,当桌面环境下的驱动及应用全部安装完成之前,可以通过命令行方式启动桌面环境,其方法是在桌面用户目录下的“.xinitrc”文件后面添加一行: exec startkde,这样就可以在命令行状态下执行命令:# startx 启动桌面环境。如果还没有".xinitrc“文件,可执行:
# cp /etc/skel/.xinitrc ~/  (系统默认的配置文件)

设置KDE桌面环境时区
在Archlinux下,如果不安装Windows虚拟机,时区采用国际标准时间不会带来什么问题,但如果需要安装Windows 虚拟机,由于Windows操作系统一般不使用UTC(国际协调时),而是使用当地时间。因此需要将KDE桌面环境设置为当地时间。方法是在任务栏显示时间处用鼠标右键选择“调整日期和时间”,将时区设置为“上海(亚洲/中国)”即可。

安装输入法
# packman -S fcitx kcm-fcitx fcitx-im fcitx-qt5 fcitx-configtool
安装完成后,在用户目录的“.xprofile”文件中添加以下内容:
## setup fcitx for chineses input
export XIM=fcitx
export XMODIFIERS="@im=fcitx"
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XIM_PROGRAM=fcitx
fcitx &

安装字体
# pacman -S wqy-zenhei wqy-microhei wqy-microhei-lite wqy-bitmapfont ttf-arphic-ukai ttf-arphic-uming ttf-dejavu
这些字体默认安装到/usr/share/fonts。可以简单地将这些字体直接复制到用户目录~/.fonts目录(或其子目录)下面,并把该路径加入/etc/fonts/local.conf中。

启用声音支持
Archlinux内置声音支持,但默认静音。可安装alsa-utils软件包,然后通过 alsamixer程序取消静音:
方向键 选中 Master 和 PCM,[M] 取消静音

安装解压缩文档工具
# pacman -S p7zip

安装电子邮件客户端
# pacman -S thunderbird thunderbird-i18n-zh-cn

安装VirtualBox虚拟机及其相关组件(可选)
为了解决Windows应用,安装虚拟机是一种不错的选择:
1. 安装VirtualBox虚拟机
# pacman -S virtualbox
配置:
1. 载入virtualbox的相关模块:
# modprobe -a vboxdrv vboxnetadp vboxnetflt vboxpci
其中vboxnetadp、vboxnetflt和vboxpci这三个模块是虚拟机使用网桥独立接入网络的支撑模块。
2. 为了让系统启动时自动载入vboxdrv驱动和vboxnetadp、vboxnetflt、vboxpci这三个模块,建立/etc/modules-load.d/virtualbox.conf文件,在其中添加vboxdrv、vboxnetadp、vboxnetflt和vboxpci这三行文本。
# echo -e “vboxdrv\nvboxnetadp\nvboxnetflt\nvboxpci" > /etc/modules-load.d/virtualbox.conf

安装yaourt
yaourt是安装非官方软件仓库之外软件的安装工具:
1. 将/etc/pacman.conf文件中的"[custom]"设置修改为以下内容:
[archlinuxcn]
#The Chinese Arch Linux communities packages.
SigLevel = Optional TrustedOnly
Server   = http://repo.archlinuxcn.org/$arch
2. 获取密钥环
# pacman -S archlinuxcn-keyring
3. 安装yaourt
# pacman -Syu yaourt

安装浏览器
# pacman -S google-chrome 或 chromium  (谷歌浏览器)【可选】
# pacman -S firefox firefox-i18n-zh-cn  (火狐浏览器)【可选】

安装Flash插件
#pacman -S flashplugin

安装文字处理软件
1. LibreOffice(可选)
# pacman -S libreoffice libreoffice-fresh-zh-CN 或 libreoffice-still-zh-CN
2. wps-office
# pacman -S wps-office ttf-wps-fonts

安装打印机
首先安装cups服务,以及ghostscript和gsfonts这两个包,也可能要安装对应的驱动,如gutenprint和hplip等,以及安装打印机配置工具。
# pacman -S cups system-config-printer
接着启动cups服务:
# systemctl enable org.cups.cupsd.socket


附录:
关于桌面环境中文设置
/etc/locale.conf:系统启动后全局有效;
.bashrc: 每次终端登录时读取并运用里面的设置。
.xinitrc: 每次startx启动X界面时读取并运用里面的设置
.xprofile: 每次使用gdm等图形登录时读取并运用里面的设置


种瓜得瓜,种豆得豆。

离线

页脚