archlinux的装机感想

缘起

年前,在某位大佬的推荐下,在VMware(虚拟机)上安装了archlinux,并受其压迫,在年后赶出了一篇archlinux装机感想。

archlinux简介

arch之道

Keep It Simple, Stupid(保持简单,且一目了然)

  • Simplicity(简洁)
  • Modernity(现代)
  • Pragmatism(实用)
  • User centrality(以用户为中心)
  • Versatility(通用)

Arch Linux参考网站

安装过程

准备阶段

下载VMware(其他虚拟机也可以)和archlinux的.iso镜像文件,浏览官方安装指南)

设置虚拟机

我选择了Linux3.x内核,20GB硬盘,1GB的内存,1个双核处理器,网络类型是nat,再加载原先下号的镜像文件,其他就默认吧。(其实看自己的需求啦)

如果在新建虚拟机的过程中,有遇到”无法检测此光盘映像中的操作系统”这样的提示语,选择稍后安装操作系统选项,再在自定义硬件的 新CD/DVD(IDE) 使用iso的镜像文件

请尽量下载官方的镜像文件,不然系统可能进不去

选择系统类型

进去以后会出现Archlinux的live iso的启动菜单。如果要安装64位的arch,就选择第一项x86_64。然后等待片刻,进入arch live iso的终端命令行。默认为root用户,拥有所有权限,可以使用任何命令。

检查网络环境

使用 # ping -c 3 archlinux.org 命令,检测是否有网

如果ping的结果是找不到该主机,可能是由于dhcp服务没有开启,使用 # systemctl dhcpcd.service 命令,开启该服务

测试系统时间

# timedatectl status 看一下时间,如果时间不对,用# timedatectl set-ntp true开启ntp服务,它会每隔11分钟进行一次网络对时。然后在查看一下系统时间状态

建立硬盘分区

使用命令 # lsblk 命令查看一下存储设备状态。

# fdisk /dev/sda 命令对/dev/sda进行分区,输入 m 可以查看帮助, n 是新建一个分区, d 是删除一个已有分区。(参考

以下几种经典的分区方案:
>

1.    /:建议大小在 5GB 以上,
    swap:即交换分区,建议大小是物理内存的 1~2 倍;

>

2.    /boot :用来存放与 Linux 系统启动有关的程序,比如启动引导装载程序等,建议大小为 100MB , 
    / : Linux 系统的根目录,所有的目录都挂在这个目录下面,建议大小为 5GB 以上,
    /home :存放普通用户的数据,是普通用户的宿主目录,建议大小为剩下的空间,
    /swap :实现虚拟内存,建议大小是物理内存的 1~2 倍;

>

3.    /boot :用来存放与 Linux 系统启动有关的程序,比如启动引导装载程序等,建议大小为 100MB , 
    /usr :用来存放 Linux 系统中的应用程序,其相关数据较多,建议大于 3GB 以上, 
    /var :用来存放 Linux 系统中经常变化的数据以及日志文件,建议大于 1GB 以上, 
    /home :存放普通用户的数据,是普通用户的宿主目录,建议大小为剩下的空间, 
    / : Linux 系统的根目录,所有的目录都挂在这个目录下面,建议大小为 5GB 以上, 
    /tmp :将临时盘在独立的分区,可避免在文件系统被塞满时影响到系统的稳定性。建议大小为 500MB 以上, 
    swap :实现虚拟内存,建议大小是物理内存的 1~2 倍。

其实swap分区不一定是物理内存的 1~2 倍,那swap大小配置多少比较合适?(参考)
>

  • 当物理内存小于1G且不需要休眠时,设置和内存同样大小的swap空间即可;当需要休眠时,建议配置两倍物理内存的大小,但最大值不要超过两倍内存大小
  • 当物理内存大于1G且不需要休眠时,建议大小为round(sqrt(RAM)),其中RAM为物理内存大小;当需要休眠时,建议大小是RAM+round(sqrt(RAM)),但最大值不要超过两倍内存大小
  • 如果两倍物理内存大小的swap空间还不够用,建议增加内存而不是增加swap

格式化分区

因为是想熟悉一下Linux的有关命令,所以分区就选择了最简单的第一种方案,分了根分区(/dev/sda1)和交换分区(/dev/sda2),接下来就是对分区进行格式化。

格式化根分区 # mkfs.ext4 /dev/sda1

对于交换分区,格式化命令如下 # mkswap /dev/sda2 ,并开启使用交换分区 # swapon /dev/sda2

其实可以举一反三,知道格式化分区的命令等怎么写了

挂载分区

linux下mnt目录的作用:mount 可直接理解为“挂载”挂接光驱、USB设备的目录,加载后,会在mnt里多出相应设备的目录。

所以,用 # mount /dev/sda1 /mnt 命令将根分区挂载到/mnt目录,交换分区是不用挂载。如果使用多个分区,还需要为其他分区创建目录并挂载它们,比如/home家分区,要先在/mnt目录下创建home目录 ,先 # mkdir /mnt/home (其实mkdir就是make directory创建目录的缩写),再使用命令 mount 家分区 /mnt/home 挂载家目录。

安装系统

啊,终于到安装系统了~但是第一件事情是要先修改一下arch的镜像源,使用国内的(或者是地理位置最近的),下载速度会更快。文件 /etc/pacman.d/mirrorlist 定义了软件包会从哪个镜像源下载。可以使用nano查看一下该文件,# nano /etc/pacman.d/mirrorlist ,如果你不嫌麻烦,可以自己找到镜像源,并将他们提到最前面,但这里,采用的是正则表达式工具grep工具来将中国的源取出来。

首先,先切换到软件源所在目录。 # cd /etc/pacman.d

然后用grep取出中国的源。用-A参数的话会用–分隔符分隔每一条匹配,因此再次使用grep工具去掉前一次结果产生的分隔符。 # grep -A 1 '##.*China' mirrorlist|grep -v '\-\-'> mirrorlist2

最后将中国的源放到镜像源列表的最前面。

1
2
# cat mirrorlist>>mirrorlist2
# mv mirrorlist2 mirrorlist

我当时还特地重新进去看看了,国内的源还挺多的,对了,输入过的命令可以按上下键重新显示再执行

修改完了,还得要刷新一下pacman的缓存 # pacman -Syy

终于可以开始安装系统了,可以使用 # pacstrap -i /mnt base base-devel 命令安装,一路回车默认就可以了(-i参数是在安装前进行确认)

这里可能会有很多错误,比如下载到一半error,可能是网络问题

配置系统

用以下命令生成 fstab 文件 # genfstab -U /mnt >> /mnt/etc/fstab

强烈建议在执行完以上命令后,后检查一下生成的 /mnt/etc/fstab 文件是否正确。(就是用这个查看一下# nano /mnt/etc/fstab

有出现分区分配的就是成功了

进入系统

使用命令# arch-chroot /mnt,进入系统。出现以下图片,说明成功进入系统。

如果有出现找不到/bin/bash错误信息的话,重装吧 ╥﹏╥ ,首先镜像得是下载官方镜像,其次可能是配置系统的时候出了点问题,按照步骤来,总会成功的

进去之后,命令行首就变了,变成了[root@archiso /]#,如果看到这个,恭喜你!基本系统已经安装好了,八年抗战快要结束了

本地化

本地化的程序与库若要本地化文本,都依赖 Locale,后者明确规定地域、货币、时区日期的格式、字符排列方式和其他本地化标准等等。需要在下面两个文件设置:locale.gen 与 locale.conf。

所以,先查看 # nano /etc/locale.gen,然后将en_US.UTF-8 UTF-8、zh_CN.UTF-8 UTF-8、zh_TW.UTF-8 UTF-8着三行的注释(也就是前面的#)删掉。

然后运行locale-gen命令生成locale信息,# locale-gen

再生成一个locale.conf文件,# echo LANG=en_US.UTF-8 > /etc/locale.conf

警告: 不推荐在此设置任何中文 locale,会导致 TTY 乱码。

可以尝试一下中文,兴许变成了□□:□□□□□□□

设置root密码

# passwd

然后输入密码,但是这里是不会显示的,你凭感觉输入(别以为是什么系统出错了不能读取键盘(;´༎ຶД༎ຶ`)),successfully

设置主机名

# echo 主机名 > /etc/hostname

添加对应的信息到/etc/hosts文件中。应该知道这么打开文件了吧,nano

1
2
3
#<ip-address>   <hostname.domain.org>   <hostname>
127.0.0.1 localhost.localdomain localhost 主机名
::1 localhost.localdomain localhost 主机名

如果系统有一个永久的 IP 地址,请使用这个永久的 IP 地址而不是 127.0.1.1

时间设置

如果时间对的,就不需要设置了

设置时区 # ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

将时间标准设置为UTC,如果虚拟机有这项设置则不用设置(例如VirtualBox就有设置硬件事件为UTC的选项)。# hwclock --systohc --utc

安装启动加载器

安装grub,然后自动生成默认配置文件

1
2
3
# pacman -S grub
# grub-install --recheck /dev/sda
# grub-mkconfig -o /boot/grub/grub.cfg

退出重启

输入 # exit 或按 Ctrl+D 退出 chroot 环境。

可选用 # umount -R /mnt 手动卸载被挂载的分区。

最后,通过执行 # reboot 重启系统,systemd 将自动卸载仍然挂载的任何分区。不要忘记移除安装介质,然后使用 root 帐户登录到新系统。

图形界面安装

我们现在都是命令行界面,可能用惯了图形界面的大家不习惯,所以,接下来安装图形界面Xorg # pacman -S xorg-server xorg-xinit

显卡驱动# pacman -S xf86-video-vesa

这是虚拟机的显卡驱动

archlinux提供了多种桌面参考))

我选择了xfce桌面和lxdm桌面管理器(因为虚拟机分配的内存较小,我就选择了轻量级的桌面,等有了电脑真正安装系统的时候,可能要换(^▽^))

首先安装lxdm桌面管理器,并设置开机启动(pacman命令可以用来安装软件)

1
2
# pacman -S lxdm 
# systemctl enable lxdm.service

然后安装xfce # pacman -S xfce4,启动xfce # startxfce4

总结

终于做完了,我也快枯了,期间错误不断,不停地重装重装……还好,守得云开见月明,现在,基本的环境已经配置的差不多,但是还是后续需要优化,比如中文输入法,浏览器,yaourt安装,qt啥的(提到qt就忍不住吐槽,虚拟机上装qt还是算了吧,我看着它打开都心累)。

虽然安装archlinux的时候很烦躁(为什么总有不同的error,哦不,是一样的error〒▽〒),且英语水平严重约束我读错误(让你不好好读英语啊喂),但是最后还是收获了一点点东西,至少寒假不仅仅养膘过冬嘛!

引用松尾芭蕉的一句俳句,大概是成功安装完archlinux和写完这篇博文的心情吧。

山路费寻攀,居然眼见紫罗兰。

参考链接

部分与文内链接重复