缘起
年前,在某位大佬的推荐下,在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 | # cat mirrorlist>>mirrorlist2 |
我当时还特地重新进去看看了,国内的源还挺多的,对了,输入过的命令可以按上下键重新显示再执行
修改完了,还得要刷新一下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文件中。应该知道这么打开文件了吧,nano1
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 | # pacman -S lxdm |
然后安装xfce # pacman -S xfce4
,启动xfce # startxfce4
总结
终于做完了,我也快枯了,期间错误不断,不停地重装重装……还好,守得云开见月明,现在,基本的环境已经配置的差不多,但是还是后续需要优化,比如中文输入法,浏览器,yaourt安装,qt啥的(提到qt就忍不住吐槽,虚拟机上装qt还是算了吧,我看着它打开都心累)。
虽然安装archlinux的时候很烦躁(为什么总有不同的error,哦不,是一样的error〒▽〒),且英语水平严重约束我读错误(让你不好好读英语啊喂),但是最后还是收获了一点点东西,至少寒假不仅仅养膘过冬嘛!
引用松尾芭蕉的一句俳句,大概是成功安装完archlinux和写完这篇博文的心情吧。
山路费寻攀,居然眼见紫罗兰。
参考链接
部分与文内链接重复