笔记本安装Archlinux笔记

2018-12-10 13:51:15


非同步更新于wendster大佬的个人博客

写在之前的之前:为什么要用Archlinux?

这篇文章已经进了日报的队列,相信看到文章后有人肯定会问我:Ubuntu不是很好吗?OI赛事的指定发行版不是由Ubuntu改造的吗?那么我们为什么要用这样一个linux发行版呢?

关于OI赛事的指定发行版Ubuntu,它的优点我肯定是不想否认也不能否认的。何况它的子发行版Xubuntu是我在折腾Arch之前一直在用的发行版,它的简洁、轻量和易用让我非常喜欢。如果说你的电脑比较陈旧、配置较低或者只是想减少系统占用的内存,我其实应该向你推荐这个版本。

至于Ubuntu,我个人并不喜欢Gnome桌面,太沉重了,对电脑内存不太友好。不过简单易用仍然是Ubuntu和其子发行版最大的优点。所以如果你不是太愿意折腾系统,不介意其较低的可定制性的话,那么你可以不用看这篇文章了。

说回Archlinux,它的优点是什么?变态的可定制性。想象一下,一个除了linux内核和一些基本的文本行端的软件以外什么都没有的系统,它的一切配置和软件都由你自己来完成。对于像我这样AFO之后无所事事的人,这当然是具有极大吸引力的。并且除了这一点之外,Archlinux在软件源的丰富上确实比其它发行版都做得更好,官方源、社区源和AUR源可以覆盖常用的所有软件。比如Ubuntu下必须从网上下载再安装的WPS就可以直接在配置社区源之后pacman -S wps-office安装。这一项可以节省大量找软件包的时间和精力。

由于以上这些优势,由Archlinux引生出的Manjaro已经成为了世界上用户最多的linux发行版。为什么是Manjaro而不是Archlinux本体呢?答案显然易见,大多数用户都没有时间和兴趣来折腾linux系统本身,但又希望拥有Archlinux的强大软件源。如果你也是这样的人,你应该去试试Manjaro。

前言

因为前几天给我的小炸鸡加了一根内存条;而且先前装的Xubuntu是32位的,使用极其不方便;再加上wendster大佬的怂恿,我决定给自己的电脑换一个Archlinux系统。由于安装这个系统的麻烦程度世人皆知,我是踩了一个又一个的坑。现在我把安装的流程和一些问题跟大家分享一下,希望能帮到新人。

准备流程

如果要装双系统的话,请提前在windows下用磁盘管理留出自由空间;如果你打算将某个windows盘的空间全部用来装Archlinux的话,也可以不用删,只需将那个盘清空即可。

安装流程

1.下载镜像:这个官网就有,各大镜像站也有,自己去找吧。

2.制作启动U盘:网上很多人推荐UltraISO,但是这个东西设置起来非常麻烦,一不留神就没法启动,而且还TM要收费([wendster大佬:其实是可以无限免费使用的,只是你不会!])。说起来好像已经有人在日报上写过UltraISO了,可以去学习一下。但是像我这样的小(lan)白(gui)就只能去寻找替代品,一个很好的答案就是USBwriter(链接百度上满天飞,我就不发了),这个东东用起来倒是很简单:下载,打开,选择镜像和U盘,点一下“write",这个U盘就变成启动盘了。不过这个软件也有一个BUG,无论这个镜像的实际占用内存和U盘的空间是多少,它一定会全给你占掉,你这U盘就没空间了。如果你想存东西,就必须处理一下,链接在这里

wendster提供的注:USBwriter只是将镜像直接写入了U盘,和在Linux下使用dd是一个道理(RAW),所以如果在UltraISO中写入方式选择RAW也会出现这个问题。由于这是支持EFI的镜像,所以RAW写入会生成一个EFI分区,其他地方未分区但是有数据,便让磁盘看起来像是没空间了一样。其实不需要diskpart,直接拿一个分区软件删掉EFI分区再重建就好了。

不过,我的建议是最好别格式化启动盘,因为这个系统有时会出现一些需要启动盘才能解决的问题

3.插入启动盘开始安装:记得提前查询好应该按哪个快捷键选择启动方式,开机疯狂那个键按进入选择启动方式的界面,选择U盘启动。

4.进入Arch启动界面之后,选择第一个选项进入安装。

5.按理来说首先是要查看键盘布局,但是默认的键盘布局就是我们常用的美式布局,所以没什么好改的,跳过!如果需要更改请查询官方Wiki(英文慎入!)

6.设置网络。因为这篇文章主要是讲笔记本平台的安装,所以我们只讲无线网络连接。先输入 wifi-menu 进入一个界面,用上下左右键选中自己要连的wifi名称,然后按回车。第二个界面不用管,大概的意思是要你输入连接时所用的主机名,回车跳过即可。第三个界面是输密码,输完回车。

7.设置使用网络时间:`timedatectl set-ntp true

8.设置镜像仓库:首先输入 nano /etc/pacman.d/mirrorlist,然后把里面的内容全删掉!然后在第一行写上下列代码添加中科大的软件源地址:

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

最后按ctrl+o、回车、ctrl+x退出。

9.检查启动环境:输入 ls /sys/firmware/efi/efivars,如果列出了一堆文件,就说明你的电脑是UEFI启动,反之则是BIOS启动。这个信息等一下分区的时候非常重要,千万要记住。

10.分区:大部分人(像我)都只有一个磁盘,所以并没有查看磁盘的必要,直接输入 cfdisk 就可以进分区界面了;但是你如果有两个或更多磁盘的话,你就需要先输入 fdisk -l 确定你准备的空间在哪个磁盘上,然后再输入 cfdisk /dev/sdX (X请用目标磁盘的编号替代) 进入分区界面。分区界面也是十分简陋,不过好歹有个图形化界面了。如果你先前留的是自由空间,那么使用上下键选中自由空间,再使用左右键切换到 new 命令,回车进去,然后输入你要给这个区分配的空间。左右键选中 write,然后输入 yes,这个区就分完了!注意:对于UEFI启动的电脑,你必须分一个type为EFI system,大小为512M的区用作启动区,不然电脑将无法启动!

wendster提供的注:如果你是从UEFI启动的话,一般已经有EFI分区,除非你的主板支持UEFI但是你依然使用着落后的MBR。如果是这样的话,那么你需要先把磁盘转换为GPT格式,然后删除所有分区(反正换成UEFI启动后你原先的系统也无法启动了,除非你会一些高级做法......)

当然,也有没有自由空间但留了空盘出来的朋友(其实我也是这么搞的),这就需要进 cfdisk 之后选中那个空盘,左右键选中 delete,回车,这个盘就被释放成了自由空间,然后再按照自由空间的分法分掉即可!

wendster提供的注:如果你的硬盘格式是MBR,就最多只能分四个区,如果要分的区超过四个,就需要使用拓展分区(拓展分区算一个分区),然后你就可以在拓展分区里分n个分区了。你在new分区的时候cfdisk会询问你创建的是Primary(主分区)还是Extended(拓展分区),根据需要选择即可。

分区方案推荐:

  • 只分一个主分区(即/分区,如果你不需要休眠功能且内存大于等于8G的话,另有需求除外)

  • 一个主分区+一个swap分区

  • 一个主分区+一个swap分区+一个home分区

wendster提供的注:单独的home分区可以几个Linux发行版共用,而且能保证在系统损坏时不丢失文件,但个人觉得并没有太大用

11.格式化分区:输入fdisk -l /dev/sdX,查看你的分区表。然后输入 mkfs.ext4 /dev/sdXY 格式化EXT4分区(/分区和/home分区,如果有的话),输入mkswap /dev/sdXY 格式化swap分区(XY请用目标磁盘的编号替换)。

12.挂载分区:

mount /dev/sdXY /mnt  //挂载主分区的命令

mkdir -p /mnt/boot/EFI

mount /dev/sdXY /mnt/boot/EFI //以上两条为挂载EFI分区的命令(如果有的话)

mkdir -p /mnt/home

mount /dev/sdXY /mnt/home //以上两条为挂载home分区的命令

swapon /dev/sdXY //挂载swap分区

13.安装基础包:输入pacstrap /mnt base即可!

14.生成分区表: 输入 genfstab -U /mnt >> /mnt/etc/fstab,如果分区有误,请参照Wiki手动修正!

15.进入系统:之前的操作都是用启动盘完成的,从这一步开始,就是在本机系统中进行操作了,请务必慎重!输入 arch-chroot /mnt 进入本机操作系统。

16.选择时区和硬件时间配置:输入 ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 设定中国时区(我也不知道为什么是上海不是北京QwQ)。再输入hwclock --systohc 修改硬件时间(使硬件时间同步,否则重启之后时间又变了)。

17.修改语言:先 pacman -S vim 装个vim吧,感觉比自带的nano好用,而且你确定你不学习一下编辑器之神?好吧,其实不装也OK。接着输入 nano /etc/locale.gen 打开字体文件。然后我们按一下F6进入搜索,键入 zh_CN.UTF-8 UTF-8 找到中文,把这一行前面的#号删掉。接着搜索 en_US.UTF-8 UTF-8 ,依葫芦画瓢删掉前面的#号。有些教程会只让你删中文,但这会导致终端系统里全是灰色方块!最后退出nano。如果你用的是vim,开始编辑时请先按一下i,退出时先按一下Esc,然后输入 :wq! 退出(Vim使用教程这里有)。

18.配置语言:输入 locale-gen,按一下回车就配置好了。然后输入 echo LANG=zh.CN.UTF-8 UTF-8 配置终端的默认语言为中文。

19.设置主机名:请输入 echo 想设定的主机名 > /etc/hostname修改主机名,再打开/etc/hosts(nano或者vim),加上以下代码:

127.0.0.1   localhost.localdomain   localhost
::1     localhost.localdomain   localhost
127.0.1.1   主机名.localdomain 主机名

如果你是一个有静态IP的dalao,输入时请把127.0.0.1换成你自己的静态IP。

20.安装Grub及配置引导程序:电脑在开机时会自动运行一个引导程序,这个程序会告诉电脑如何启动系统。如果你没有安装这样一个程序的话,系统将会无法启动!在引导程序中,被使用最多也最好的就是Grub,我们就来安装它吧!

BIOS启动的系统代码如下:

pacman -S grub os-prober
grub-install --target=i386-pc /dev/sdX    (sdX 为目标磁盘)
grub-mkconfig -o /boot/grub/grub.cfg

UEFI启动的系统代码如下:

pacman -S dosfstools grub efibootmgr
grub-install --target=x86_64-efi --efi-directory=<EFI 分区挂载点> --bootloader-id=GRUB
grub-mkconfig -o /boot/grub/grub.cfg

21.设置root密码:先输入 passwd,然后输入新密码就OK。(还要确认一次)请一定记住root密码,毕竟如果搞挂了系统就一定要用到这东西

安装图形化界面及常用软件

1.创建用户:虽然有了root用户,但是日常使用将会极其不安全。因此我们应该设定一个新的普通用户。先输入 useradd -m -G users -s /bin/bash 用户名创建用户,然后再使用passwd 用户名给这个用户设置密码。

2.安装sudo:sudo是个好东西,每台电脑都要有;sudo是个好东西,可以不用登录,root账户!(请脑补《好日子》的曲调)咳咳,严肃一点。其实sudo就是一个授权软件,使用sudo可以让普通用户暂时获得root权限来完成一些root用户才能完成的操作,比如说装软件啦,删软件啦······为了安装sudo,我们应该输入 pacman -S sudo 其实经过安装过程,大家应该已经发现了Archlinux下安装软件包的一般方法:输入 pacman -S 软件包名 即可,以后我就不发这一类型的代码了(特殊情况除外,比如安装KDE

3.配置sudo:装好sudo之后是不能直接用的,需要修改sudoers文件。用nano或者vim打开 /etc/sudoers,然后找到没有被注释掉的 root ALL=(ALL) ALL,在其下另起一行加入一下代码:用户名 ALL=(ALL) ALL 然后保存退出。

4.安装显卡驱动:普通显卡安装xf86-video-vesa即可,英伟达和AMD的显卡驱动安装请详见文后给出的参考资料1。

5.安装桌面系统:终于可以摆脱文本行了!4不4很激动?不过你得小心小心,图形化界面其实比文本行更容易搞挂(比如我就搞挂了,至今还没修好)。桌面系统推荐普适性最强的KDE或结合了轻量与美观的Xfce(或者果你两个都想体验,那么都装也可以)。

8.安装中文字体:选择一个靠谱的中文字体特别关键,这里推荐wqy-microhei

Xorg——图形化的基底的安装((伪)必选)

很简单,直接pacman -S xorg xorg-xinit即可。之所以说它是伪必选,是因为我发现如果你前面没装这个的话,后面装桌面系统的时候会根据依赖关系自动装。

启动器的安装(必选)

输入pacman -S sddm来安装sddm启动器,接着设置sddm为开机自启动:systemctl enable sddm(如果你不想用sddm可以换成别的如gdm、lightdm等,只是sddm是KDE的默认启动器,很美丽)其实吧,如果你装KDE的话也不是一定要走这一步,因为后面装KDE的时候系统会自动帮你安装。

KDE的安装(可选)

安装KDE桌面(meta是超出的意思,也就是说meta是最完整的包,所以不要这么多包的同学可以改plasma-meta为plasma)。请一定记得要执行以下操作:输入 pacman -S kde-applications-meta 来安装配套应用,不然打开系统时你会和我一样mengbi(WOC,怎么什么都没有,怎么连终端都不给我一个,F**k!

Xfce的安装(可选)

作为从Xubuntu过来的人,我对Xfce的情结就连wendster大佬也是无法理解的。但它的确是一个很好的桌面(虽然刚装好时很丑),也非常稳定(KDE已经被我搞挂了,但Xfce仍然正常使用[wendster乱入:明明是你不会用好不好])和轻量(只需1GB运行内存即可流畅运行+上网聊天,你还要啥自行车)。如果你需要小组件来美化Xfce的话,请输入 pacman -S xfce4-goodies 安装各种可爱的小组件。墙裂建议把原版的“所有程序”栏换成whisker-menu,你会感谢我的

安装好桌面之后,我们就可以愉快地使用Archlinux啦!关于常用软件的安装配置及常见问题的处理方式,我会再更一篇博文。

CN和AUR软件源

装完Archlinux之后,你可能会发现官方自带的软件源并不如我前面说的那么牛B,其实Archlinux强大的地方之二就在于它有丰富的社区软件源(我好像之前已经讲过这句话了)。那么如何配置呢,来来来跟我学,很简单的。

配置CN社区源

打开你的/etc/pacman.conf,然后在后面添上两行代码。

[archlinuxcn]
Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch

然后用pacman安装archlinuxcn-keyring这个密钥就OK了,日常使用的时候只需要正常pacman -S就可以搜索并安装CN社区源里的软件啦!

配置AUR软件源

我们只需要下载yaourt这个管理器就可以安装AUR源内的软件,是不是简单得令人难以置信?另外说一句,yaourt的使用命令跟pacman差不多,也是-S、-R之类的。

PS:虽然官方已经停止了对yaourt的维护,但是还是可以照常用的。如果你不放心的话,也可以用官方正在维护的aurman、yay和aurutils。但是这些我都不会用,所以你只能自己去查资料了。

配置输入法

由于一些玄学原因,装好输入法后并不能直接使用。如果你还没有装输入法的话,请先输入以下指令:

sudo pacman -S fcitx-im fcitx-sunpinyin fcitx-cloudpinyin

然后打开你的~/.bashrc文件(不要sudo),加入以下代码:

#fcitx
export GTK_IM_MODULE=fcitx 
export QT_IM_MODULE=fcitx 
export XMODIFIERS="@im=fcitx"

PS:网上大部分的教程说要把这三条代码加入到~/.xprofile文件里面,但是我自己试过没用。(而且还把我的KDE搞炸了)

最后的最后

取消挂载和重启:搞到这里,系统就装完啦!先输入 exit 退出系统,然后输入umount /mnt卸载主分区,其他分区的取消也差不多,把/mnt 换成之前挂载的位置即可。注意卸载分区的顺序(从内到外,如先umount /mnt/boot/EFI,后umount /mnt)!且swap分区不需要卸载!最后输入 reboot 即可重启。在关机后开机前,请拔出启动盘。

wendster提供的注:至于为什么不重启一下再安装后面的图形化界面等,是因为重启后是连不上wifi的,但配置wifi又过于麻烦,而且安装完图形化界面后就可以在图形化界面中非常简单地连接网络和别的一些骚操作了,所以如此。

参考资料

  1. Arch Linux安装指南:目前最好的安装指南,靠谱方面仅次于Wiki,但较其容易理解和操作。本文中的绝大部分代码都来源于这篇教程。

  2. 官方Wiki(中文版):Archlinux的Wiki被誉为所有发行版中最强大最详细的(不这么靠谱的话还有谁能装好它),如果你有这篇教程中没提到的问题,请查询它。

特别鸣谢

wendster(这个绝对不是wendster加的)