ArchLinux 2020 安装总结
ArchLinux 2020 安装总结
2020-4-1
今年我开始全面使用 ArchLinux 系统,这个系统比较小巧,安装过程自己控制的内容更多,减少很多不必要的麻烦,也更符合我自己的使用习惯。 我最喜欢它的原因有三条:
- ArchLinux 的源很完善,使用起来很方便,能解决很多偏门的难题(相对于 centos ),比如我的 Apple MAC mini 的无线网卡、蓝牙驱动问题, 都能在 ArchLinux 中得到解决。
- ArchLinux 拥有专用的中文源——ArchLinuxcn,对中国人来说就是福利,很多我们习惯的软件都能在此找到,比如搜狗拼音输入法。
- ArchLinux 的 wiki 很完善,而且有中文翻译,很多问题都可以在那儿找到答案。
我不仅在 MAC mini 上安装,把我的 Thinkpad 笔记本、DIY 的台式机都安装了 ArchLinux 系统,都很好用。 我的 MAC mini 上次没有安装好无线网卡驱动、蓝牙驱动,自己没弄好,把网卡也弄乱了,所以这次重装了 MAC mini 上的 ArchLinux 系统,这次用 的是 ArchLinux 2020-02-01,安装过程和上次记下的 ArchLinux 2018-01-01 有一些不同,记录下来,是为总结。
准备工作
下载 ArchLinux,并刻录至 U 盘(暂定为/dev/sdb),刻录前应该把 U 盘上全部分区都删除掉,直接刻录:
# dd if=/path/to/archlinux-x86_64-2020.02.01.iso of=/dev/sdb bs=4M
系统安装
- 将刻录好的 U 盘插入计算机,启动时选择从 U 盘启动,对于 MAC mini 是开机时不停按 Alt 键,选择从 U 盘启动:
- 按默认项进入系统安装界面,此时进入了一个启动好的 ArchLinux Live 系统,以此为起点安装 ArchLinux 系统,依次完成:
- 设置键盘布局,按默认布局即可;
- 验证启动模式
该目录下有文件即为 EFI 启动模式,MAC mini 和其他电脑都是 EFI 模式启动。# ls /sys/firmware/efi/efivars
- 连接互联网,此时没有驱动 MAC mini 的无线网卡,只能用手机开热点,通过 USB 共享网络,在 MAC mini 上效果如下:
# ip addr show // 能看到手机通过 USB 共享的网络接口——enp0s20u8 # dhcpcd enp0s20u8
- 更新系统时间
# timedatectl set-ntp ture
- 建立磁盘分区,fdisk 或 parted 均可。分区时需要注意:/ 和/usr 需要在一个分区之上,否则会报错,系统无法正常启动; EFI 启动模式 需要 ESP 分区,不用太大,128MB即可,必须格式化为 FAT 格式。如果安装多系统,需要先安装其他系统(MAC OS X,Windows),再安装 ArchLinux 系统,而且,安装过程中不要碰其他系统的分区。
# mkfs.vfat -F 32 /dev/sda4 # mkfs.ext4 /dev/sda5 # mkfs.ext4 /dev/sda6 # mkfs.ext4 /dev/sda7 # mkfs.swap /dev/sda8 ...
- 挂载磁盘分区,需要按顺序挂载,先挂载 / 分区,再挂载 / 之下的其他分区,启用 swap 分区:
挂载过程一定要按照顺序执行,否则只是在 Live 系统的目录中建立目录,或挂载在 Live 系统的目录中,如果操作是在 Live 系统中, 关机后一切都不会写入磁盘,系统一定安装不正确。 ESP 分区也一定要挂载在 /dev/sda5 分区(挂载为/boot 目录)下的 efi 目录中, 否则无法启动。# mount -t ext4 /dev/sda7 /mnt // 将 / 分区挂载到ArchLinux Live 系统的 /mnt 目录,作为新系统的根分区; # mkdir /mnt/boot /mnt/home # mount -t ext4 /dev/sdb6 /mnt/home // boot, home 一定要建立在 mnt 目录下,而且是挂载 / 分区之后 # mount -t ext4 /dev/sdb5 /mnt/boot # mkdir /mnt/efi // efi 目录一定建立在 /mnt/boot 目录下,而且建立在 /mnt/boot 挂载磁盘之后 # mount -t vfat /dev/sda4 /mnt/boot/efi # swapon /dev/sda8 // 启动swap 分区
- 选择镜像源,编辑 /etc/pacman.d/mirrorlist 文件,把中国的源保留即可,其他均删除
# vim /etc/pacman.d/mirrorlist
- 查看 fstab 文件是否能正常生成,如果正常再继续安装过程,否则安装过程就是无效的:
查看输出中: /, /home, /boot, /boot/efi, swap 几个分区是否正常挂载,如果挂载异常,重新查看磁盘分区、挂载过程是否出错。# genfstab -U /mnt
- 安装基础系统:
# pacstrap /mnt base linux linux-firmware
- 生成 fstab 文件:
# genfstab -U /mnt >> /mnt/etc/fstab
- chroot 进入新系统
# arch-chroot /mnt
- 安装必要的软件:
# pacman -S dhcpcd vim // 下面会用到 vim, 重启后连接网络需要 dhcpcd
- 设置时区及时钟
# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime # hwclock --systohc
- 本地化设置,在仅有终端环境时应该只设置英语字符,此时无法显示中文:
# vim /etc/locale.gen // 仅保留以下内容 en_US.UTF-8 UTF-8 zh_CN.UTF-8 UTF-8 # locale-gen # echo LANG=en_US.UTF-8 > /etc/locale.conf
- 设置 root 密码:
# passwd root
- 设置主机名称:
# echo Arch > /etc/hostname // 我的系统名称:Arch # vim /etc/hosts // 添加以下内容: 127.0.0.1 Arch ::1 localhost 127.0.1.1 Arch.localdomain Arch
- initramfs 重新生成,一般不需要,我也没有执行这一步:
# mkinitcpio -p linux
- 安装grub, intel-ucode, efibootmgr,并生成启动脚本:
# pacman -S grub efibootmgr # grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=grub # pacman -S intel-ucode # grub-mkconfig -o /boot/grub/grub.cfg
- 系统安装完毕,退出chroot,卸载 /mnt 目录下的文件系统,重启 Live 系统:
# exit // 退出chroot # sync # umount -R /mnt # sync # shutdown -r now
安装后的设置
系统重启后,选择从硬盘启动,此时进入新安装的 ArchLinux 系统,进行安装后的设置。
- 添加用户
# groupadd coder # useradd -g coder -m coder // -g coder 加入 coder 组, -m 创建 /home/coder 目录作为 coder 用户家目录 # passwd coder
- 安装并启用 gnome 桌面环境:
# pacman -S gnome # systemctl enable gdm.service // 启用 gnome 桌面环境 # shutdown -r now
提示安装很多软件,仅仅把 evince(PDF浏览器), gnome-photos(图片管理程序), eog(图片查看器), gnome-terminal, gnome-setting(设置), gnome-keyring, gnome-control-center(管理中心),gdm(图形启动器) gnome-menus(gnome 菜单),nautilus(图形化管理文件程序,类似windows 文件夹), 这几个软件选择即可,其他的软件根据依赖关系会自动安装。
- 此时应该能够看到正常的桌面环境了,但都是英语,需要安装中文字体:
# pacman -S tty-arphic-ukai settings->zone&language -> add 中文、中文输入法
从 gnome 中 Logout,再次登录进入,应该是中文环境了。
- 安装无线网卡、蓝牙驱动。
# lspci // 查看所有的PCI 设备,能够看到 Broadcom BCM4360 802.11AC Wireless Network Adapter...,能查看到是 BCM4360[14e4:43a0]具体型号, # // 此型号设备对应的驱动模块是 broadcom-wl,该模块就在 comunity 库中 # pacman -S broadcom-wl // 是不是非常简单,记得在 ArchLinux 2018 中都没有这么简单,在 centos 中更是无法安装 # shutdown -r now // 重启后就看到无线网卡了
- 安装 tmux 分屏器:
# pacman -S chromium # pacman -S tmux # vim /etc/tmux.conf // 添加以下内容 # Turn off the status line. set -g status off # Change the prefix keys from C-b to Alt-x unbind C-b set -g prefix M-x # Change the prefix '%' to '-' to split windown horizon unbind % bind - split-window -v # Change the prefix '"' to '\' to split window vertical unbind '"' bind \\ split-window -h # Set windown control mode to vi set-window-option -g mode-keys vi
- 启用 archlinuxcn 源:
# vim /etc/pacman.conf // 在[comunity]栏下增加以下内容 [archlinuxcn] Include = /etc/pacman.d/archlinuxcn Architecture = x86_64 // 将原来的 auto 改为我自己的 x86_64 架构 # vim /etc/pacman.d/archlinuxcn // 增加以下源 ## China Server = http://mirrors.163.com/archlinux-cn/x86_64 ## China Server = http://mirrors.zju.edu.cn/archlinuxcn/x86_64 ## China Server = http://mirrors.cqu.edu.cn/archlinuxcn/x86_64 ## China Server = http://mirrors.neusoft.edu.cn/archlinuxcn/x86_64 ## China Server = http://mirror.lzu.edu.cn/archlinuxcn/x86_64 # pacman -Sy // 更新源文件 # pacman -S archlinuxcn-keyring // 启动ArchLinuxcn 源
- 安装拼音输入法
# pacman -S # pacman -S fcitx-lilydjwg-git fcitx-sogoupinyin # pacman -S fcitx-configtool fcitx-qt5 # vim /etc/environment // 添加以下内容 GTK_IM_MODULE=fcitx QT_IM_MODULE=fcitx XMODIFIERS="@im=fcitx"
如果不愿意用sogou 输入法,也可以安装 rime 输入法,据说这是更好的输入法框架 此时不安装fcitx 框架,安装 ibus 框架
# pacman -S ibus ibus-rime // 刚安装完rime,需要设置中文输入法,我选择明月拼音输入法 #vim .bashrc // 增加以下三行即可设置中文输入法为ibus框架 export GTK_IM_MODULE=ibus export XMODIFIERS=@im=ibus export QT_IM_MODULE=ibus // 刚开始用 ibus-rime 时,默认繁体中文,需要改为简体中文 # vim /home/coder/.config/ibus/rime/build/default.yaml schema\_list: \- schema: luna\_pinyin\_simp // 这是简体拼音,放在第一行即可 \- schema: luna\_pinyin
- 安装百度脑图、chromium 浏览器
# pacman -S desktop-naotu # pacman -S chromium # echo alias naotu='desktop-naotu' >> /etc/bash.bashrc
- 设置MAC OS X,Windows 启动项:
# vim /etc/grub.d/40_custom menuentrt 'MAX OS X' { exit } menuentry 'window 7' { insmod part_gpt insmod fat set root='hd0,gpt1' // windows 分区 chainloader /EFI/Microsoft/Boot/bootmgfw.efi } # grub-mkconfig -o /boot/grub/grub.cfg
- 设置有线网卡
# vim /etc/systemd/network/name-of-network-adpter.network [Match] Name=enp3s0 [Network] Address=192.168.1.3/24 Gateway=192.168.1.254 # systemctl restart systemd-networkd.service // 重启网络服务,网卡配置文件立即生效
- 调整普通用户 bash 提示符从'$'到 '>'
# vim ~/.bashrc PS1='[\u@\h \W]>
-
添加键盘快捷键 设置->键盘快捷键:
将F1 系统设置,F2 chromium 浏览器,F3 gnome-terminal,F6 主目录
-
安装 git, gitbook
# pacman -S git nodejs npm # npm install -g gitbook # npm install -g gitbook-cli // 此时报错,/usr/bin/gitbook 已经存在。。。 # rm /usr/bin/gitbook # npm install -g gitbook-cli # gitbook -V // 应该在联网环境下执行该命令 CLI version 2.3.2 Installing Gitbook 3.2.3 TypeError: cb.apply is not a function. at /usr/lib/node_modules/gitbook-cli/node_modules/npm/node_modules/graceful-fs/polyfills.js //我不知道具体原因是为什么,但好像是nodejs版本、npm版本与Gitbook版本之间有不一致。 # vim /usr/lib/node\_modules/gitbook-cli/node\_modules/npm/node\_modules/graceful-fs/polyfills.js //注释掉 62-64 3行代码即可 // fs.stat=statFix(fs.stat) // fs.fstat=statFix(fs.fstat) // fs.lstat=statFix(fs.lstat) # gitbook -V // 第一次执行该命令需要联网 # gitbook serve // 第一次执行该命令需要联网,也比较慢 # vim book.json // 放在写文档的目录下 { "title" : "XXX", "author" : "Gitbooker", "description" :"Write", "plugins": [ // 增加插件 "chapter-fold", // 目录折叠插件 "todo" // 列待办事项插件 ] } #gitbook install // 配置文件中增加了插件,需执行该命令
- 安装 man 手册、中文 man 手册:
# pacman -S man-pages # pacman -S man-pages-zh\_cn
- 命令行连接无线网络
# pacman -S wpa\_supplicant // 安装无线连接软件 # wpa\_passphrase SSID Password > /etc/wpa\_supplicant/SSID.conf # ip link set wlp2s0 up # wpa\_supplicant -B -i wlp2s0 -c /etc/wpa\_supplicant/SSID.conf # dhcpcd wlp2s0
也可以写一个 shell script 来完成这些工作。
#!/bin/bash if [ $UID -ne 0 ]; then echo " Permission denied, only root can execute this script." exit fi ip link set wlp2s0 up wpa_supplicant -B -i wlp2s0 -c /etc/wpa_supplicant/MATE9.conf dhcpcd wlp2s0 exit
- 启用蓝牙连接:
# systemctl enable bluetooth.service
- 设置 gnome-terminal: 我个人非常喜欢 tty-liberation 字体,但不知道为什么总是无法在 terminal 里面正常使用,所以选择了 Source Code Pro Regular, 但经过对比 Source Code Pro Regular 和 Liberation Mono Regular 字形很相近,但行间距更大一点,所以选择用 Source Code Pro Regular. 这款字体也基本满足了我的需要,字体大小为14号,颜色选择黑底绿字,滚动选择不显示滚动条。这些都是我的使用习惯。
如果gnome-termianl 不支持 Source Code Pro Regular 字体,那么安装gnome-tweaks 优化。 # pacman -S gnome-tweak
打开优化,在字体栏设置 Source Code Pro Regular。此时,不选gnome-terminal中的自选字体,自动应用gnome-tweaks 中的字体和字号。
调整gnome-terminal配色:
gnome-terminal -> 配置文件首选项-> 颜色 -> 黑底绿字
设置终端ls颜色,区分各种文件
# vim /etc/bash.bashrc alias ls=`ls --color=auto`
- 设置ssh,允许其他机器以ssh 方式登录本机
# systemctl enable sshd.service // 开启该服务,下次重启生效 # systemctl start sshd.service // 启动该服务,立即生效 # systemctl status sshd.service // 查看服务状态
- 读取手机文件 手机以MTP方式连接计算机,同时计算机支持读取MTP设备文件即可。
# pacman -S mtpfs android-file-transfer
- 设置iptables 防火墙
# systemctl disable iptables.service // 关闭防火墙,默认状态也时关闭

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Redis基础——剖析基础数据结构及其用法
这是一个系列的文章,打算把Redis的基础数据结构、高级数据结构、持久化的方式以及高可用的方式都讲一遍,公众号会比其他的平台提前更新,感兴趣的可以提前关注,「SH的全栈笔记」,下面开始正文。 如果你是一个有经验的后端或者服务器开发,那么一定听说过Redis,其全称叫Remote Dictionary Server。是由C语言编写的基于Key-Value的存储系统。说直白点就是一个内存数据库,既然是内存数据库就会遇到如果服务器意外宕机造成的数据不一致的问题。 这跟很多游戏服务器也是一样的,感兴趣的可以参考我之前的文章游戏服务器和Web服务器的区别。其数据首先会流向内存,基于快速的内存读写来实现高性能,然后定期将内存的数据中的数据落地。Redis其实也是这么个流程,基于快速的内存读写操作,单机的Redis甚至能够扛住10万的QPS。 Redis除了高性能之外,还拥有丰富的数据结构,支持大多数的业务场景。这也是其为什么如此受欢迎的原因之一,下面我们就来看一看Redis有哪些基础数据类型,以及他们底层都是怎么实现的。 1. 数据类型 其基础数据类型有String、List、Hash、Set、S...
- 下一篇
7. 丈母娘嫌我不懂K8s的Service概念,让我去面壁
文章目录 怎么跟你说 Service的出现,就是 解决ip不固定的问题 ,怎么解决呢 ? 听小刘慢慢道来 当Pod宕机后重新生成时,其IP等状态信息可能会变动,Service会根据Pod的Label对这些状态信息进行监控和变更,保证上游服务不受Pod的变动而影响。 一、Service 简介 1.1 Service 概念 Kubernetes Service定义了这样一种抽象: Service是一种可以访问 Pod逻辑分组的策略, Service通常是通过 Label Selector访问 Pod组。 Service能够提供负载均衡的能力,但是在使用上有以下限制:只提供 4 层负载均衡能力,而没有 7 层功能,但有时我们可能需要更多的匹配规则来转发请求,这点上 4 层负载均衡是不支持的 s 1.2 Service 类型 Service在 K8s中有以下四种类型: ① ClusterIp 默认类型,自动分配一个仅 Cluster内部可以访问的虚拟 IP ② NodePort 在 ClusterIP基础上为 Service在每台机器上绑定一个端口,这样就可以通过 : NodePort来访问该...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8编译安装MySQL8.0.19
- CentOS7,CentOS8安装Elasticsearch6.8.6
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Red5直播服务器,属于Java语言的直播服务器
- CentOS6,CentOS7官方镜像安装Oracle11G
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- SpringBoot2整合Thymeleaf,官方推荐html解决方案