Arch Linux 初体验 安装在虚拟机 VirtualBox 从零开始学
2022-01-17
阅读 {{counts.readCount}}
评论 {{counts.commentCount}}
<br><br>
## 前言
早就听闻Arch Linux各种好用,天下无敌,但门槛也是极高的,于是打算先搞个虚拟机体验一下。
虚拟机选 Oracle VirtualBox 主要看上他免费,性能也不错,贴个官网地址,需要自行下载安装
<br>
参考资料
[https://linux.cn/article-8305-1.html](https://linux.cn/article-8305-1.html)
[https://wiki.archlinux.org/title/Installation_guide_(简体中文)](https://wiki.archlinux.org/title/Installation_guide_(简体中文))
<br>
开始之前需要先安装完成 Oracle VirtualBox
[https://www.virtualbox.org](https://www.virtualbox.org)
以及下载iso镜
[https://archlinux.org/download/](https://archlinux.org/download/)
![](/api/file/getImage?fileId=61b0470cda74050013009a8b)
<br><br>
## 折腾
<br>
打开 Oracle VirtualBox ,点击 新建 , 类型选择Linux ,版本选择 Arch Linux x64 , 名称随便写
![](/api/file/getImage?fileId=61b04408da74050013009a85)
<br>
内存选择2048M ,你也可以根据电脑配置选择更高,如后期需要玩图形界面,可以给4096M
![](/api/file/getImage?fileId=61b04478da74050013009a87)
<br>
磁盘新建一个,推荐给到25G
![](/api/file/getImage?fileId=61b044a0da74050013009a89)
<br>
![](/api/file/getImage?fileId=61b044a0da74050013009a88)
<br>
启动容器,就会弹出框,选择镜像,按照图片里操作即可。
镜像开头说了,如果还没下载的话,点击下载地址 https://archlinux.org/download/
![](/api/file/getImage?fileId=61b0470cda74050013009a8c)
<br>
**注意,从这里开始后面的都不能复制粘贴,里面也不支持鼠标,只能切换到里面以后,用键盘操作,命令要自己手打,注意空格**
<br>
回车选择第一个即可
![](/api/file/getImage?fileId=61b047cada74050013009a8d)
<br>
到这里开始打命令
![](/api/file/getImage?fileId=61b047ffda74050013009a8e)
<br>
使用命令
```shell
fdisk -l
```
查看磁盘情况,我这里可以看到一个新的磁盘25G
![](/api/file/getImage?fileId=61b04879da74050013009a8f)
<br>
使用命令
```shell
cfdisk
```
分区
第一个选项选择 `dos`
![](/api/file/getImage?fileId=61b049cada74050013009a91)
<br>
这里先 依次选择 [NEW] 25G [primary] [BOOTABLE] [WRITE] , 输入 yes
![](/api/file/getImage?fileId=61b049ddda74050013009a93)
<br>
![](/api/file/getImage?fileId=61b04a5fda74050013009a94)
最后选 [Quit] 退出
<br>
再次查看
```shell
fdisk -l
```
多了一个新的设备,我这里的路径是/dev/sda1
![](/api/file/getImage?fileId=61b04af2da74050013009a95)
<br>
格式化
```shell
mkfs.ext4 /dev/sda1
```
![](/api/file/getImage?fileId=61b04b6fda74050013009a96)
<br>
挂载
```shell
mount /dev/sda1 /mnt
```
![](/api/file/getImage?fileId=61b04bb0da74050013009a97)
<br>
安装基本软件包
```shell
pacstrap /mnt base linux linux-firmware
```
![](/api/file/getImage?fileId=61b04c7cda74050013009a98)
<br>
用以下命令生成 fstab 文件 (用 -U 或 -L 选项设置UUID 或卷标)
```shell
genfstab -U /mnt >> /mnt/etc/fstab
```
<br>
Change root 到新安装的系统:
`arch-chroot /mnt`
![](/api/file/getImage?fileId=61b05bfbda74050013009a9f)
<br>
时区设为上海
```shell
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
```
然后运行 hwclock(8) 以生成 /etc/adjtime:
```shell
hwclock --systohc
```
![](/api/file/getImage?fileId=61b05d8cda74050013009aa0)
<br>
下一步是最迷惑的
要修改 `/etc/locale.gen` 文件
然后取消掉 en_US.UTF-8 UTF-8 和其他需要的 地区 前的注释(#)
(这里也有用en_GB.UTF-8的选择,好坏自己看官方wiki,地前留了)
**BUT!!!**
**不让用 `vi` `vim` `nano` !!!**
**那我咋修改呢?**
![](/api/file/getImage?fileId=61b05fccda74050013009aa1)
<br>
这里我查遍了百度也找不到方法,于是我只能继续用笨办法了
先用 `more` 看看里是不是全都是注释掉的
```shell
more /etc/locale.gen
```
发现全部是 `#` 开头,说明没有打开的,那只要追加一行我需要的即可,要防止意外的话也可以复制一分backup,我就不麻烦了,直接追加
然后我这里还是用en_US作为系统默认语言,方便日志、系统文件都是英文,既可以百度谷歌出教程,也可以在命令行全英文操作,防止出现 `/home/user/下载/acd.pdf` 这种路径
```shell
echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen
```
<br>
再用cat看下末尾一行是不是追加的内容即可搞定
```shell
cat /etc/locale.gen
```
![](/api/file/getImage?fileId=61b06856da74050013009aad)
<br>
接着执行 locale-gen 以生成 locale 信息:
```shell
locale-gen
```
![](/api/file/getImage?fileId=61b0691dda74050013009aae)
<br>
然后创建 locale.conf(5) 文件,并 编辑设定 LANG 变量,比如:
```shell
/etc/locale.conf
LANG=en_US.UTF-8
```
**OMG!! 又来了**
**不让用 `vi` `vim` `nano` !!!**
**那我咋创建呢?**
![](/api/file/getImage?fileId=61b05fccda74050013009aa1)
<br>
继续试试 `echo` 能不能好使吧
![](/api/file/getImage?fileId=61b069d7da74050013009aaf)
<br>
果然好使 `echo` yyds
<br>
后面键盘布局啥的就不想折腾了
累了
直接搞定重要的就毁灭吧
<br>
设置root密码
```shell
# 需要注意的是,你是看不见你自己输入的密码的,你输入的时候就理解这句话了,别以为卡了就行,是在输,就是不显示的
passwd
```
<br>
设置主机名:
```shell
echo "zzzmh" >> /etc/hostname
```
<br>
设置引导程序
```shell
# 安装
pacman –S grub
pacman –S os-prober
# 配置
grub-install /dev/sda
grub-mkconfig -o /boot/grub/grub.cfg
```
![](/api/file/getImage?fileId=61b06d31da74050013009ab1)
<br>
大功告成 重启下看看
```shell
# 先退到外面
exit
# 再重启
reboot
```
<br>
出现这个界面是因为优先走了ISO启动,这里说可以选择硬盘启动的,我的建议是先关闭,后移除ISO镜像,再启动
![](/api/file/getImage?fileId=61b06dbada74050013009ab3)
<br>
右击这个小光盘,移除镜像
![](/api/file/getImage?fileId=61b06e2dda74050013009ab4)
<br>
我这里尝试直接Reboot 遇到问题
所以还是先操作虚拟机强制关闭
不能截图,简单说下凑活看
虚拟机窗口最上面,管理,退出,强制退出,OK
<br>
下图这里,右击,启动,正常启动
![](/api/file/getImage?fileId=61b06fccda74050013009ac5)
<br>
再启动
一切正常!!!
<br>
选择第一个
![](/api/file/getImage?fileId=61b06e6cda74050013009ab8)
输入账号密码即可进入系统 (账号root 密码是刚才设置的)
![](/api/file/getImage?fileId=61b06e6cda74050013009ab7)
<br>
就到这我折腾了一天你敢信
![](/api/file/getImage?fileId=61b06f5bda74050013009abe)
<br><br>
## 补充和纠错
<br>
补充修正几个错误
1. 昨天没有安装dhcpcd 导致无法联网,不能联网就不能安装dhcpcd
2. 其实应该安装vim之类的编辑程序
<br>
补救方法
先把去掉的光盘镜像加回来,重启
![](/api/file/getImage?fileId=61b164b8da74050013009b32)
<br>
然后用命令进live系统
(这个是抢救系统神器,以后需要常备)
```shell
# 用live系统挂载到内部系统
mount /dev/sda1 /mnt
arch-chroot /mnt
# ping一下测试现在网络通不 (ctrl + c 停止)
ping www.baidu.com
# 安装关键程序 (dhcpcd是自动联网获取ip地址,没装的话开机无法联网,不能联网就不能安装任何东西)
pacman -S dhcpcd
pacman -S vim
# 顺手补充一下,连wifi需要安装这个
# pacman -S iwd
# 用法参考这里 https://blog.csdn.net/r8l8q8/article/details/76516523
# 设置开机启动
systemctl enable dhcpcd
```
随后先关闭容器,再移除光盘镜像即可解决问题
<br>
还需要简单优化一下,避免无缘无故掉一些不起眼小坑
```shell
sudo pacman -S pacman-mirrorlist
sudo pacman -Syy
```
<br><br>
## 往死里折腾 !!!
<br>
肯定不能完事!必须把图形化也搞出来,找个既极简又傻瓜的图形化玩玩
<br>
![](/api/file/getImage?fileId=61b0778cda74050013009ac8)
<br>
[https://blog.csdn.net/weixin_31569671/article/details/116709653](https://blog.csdn.net/weixin_31569671/article/details/116709653)
先新建一个用户
(我的用户名设置是zzzmh,你可以替换成你自己的)
```shell
# 新建用户
useradd zzzmh
# 设置密码
passwd zzzmh
# 新建文件夹
cd /home
mkdir zzzmh
chmod -R 777 zzzmh
# 安装sudo(我才知道原来sudo也是需要安装的)
pacman -S sudo
# 安装完会出现权限配置文件
vim /etc/sudoers
# 找 root ALL=(ALL) ALL 加一行 配置结果看图
zzzmh ALL=(ALL) ALL
```
![](/api/file/getImage?fileId=61b1bd22da74050013009bcd)
<br>
把桌面安装上,这里直接参考教程
[https://blog.csdn.net/r8l8q8/article/details/103889972](https://blog.csdn.net/r8l8q8/article/details/103889972)
```shell
# 虚拟机里就不需要显卡驱动了,直接开始安装
# 安装X窗口系统
pacman -S xorg-server
# 安装sddm登录管理器
pacman -S sddm
systemctl enable sddm
# 安装i3wm
pacman -S i3-gaps
# 安装终端
pacman -S mate-terminal
# 重启生效
# 注意:重启之前必须先新建一个用户,因为不能选择root,导致没有用户没法选择一个用户进桌面
reboot
```
最后再启动虚拟机即可进入桌面,选择一个用户,输入密码回车
<br>
这里会提示选择MOD键是super键(也就是windows键)还是alt键
<br>
这里遇到了首次进入桌面报错
`status command not found or is missing a library dependecy`
![](/api/file/getImage?fileId=61b17c8ada74050013009b39)
<br>
可以先不用管,先从i3入门开始学习吧
参考文档
[https://i3wm.org/docs/userguide.html](https://i3wm.org/docs/userguide.html)
<br>
![](/api/file/getImage?fileId=61b17dbeda74050013009b3b)
<br>
![](/api/file/getImage?fileId=61b17dbeda74050013009b3a)
<br>
我简单试了试
* mod + enter 进终端
* mod + d 执行程序
<br>
(这部分仅在虚拟机中才需要)
安装Oracle VirtualBox增强工具
可以实现内外共享剪切板,根据窗口动态分辨率等
```shell
# 开启root
su
# 安装
pacman -S virtualbox-guest-utils
# 手动开启增强
VBoxClient-all
# 手动开启各种服务
modprobe -a vboxguest vboxsf vboxvideo
# 开机启动
systemctl enable vboxservice
# 重启再试
reboot
```
<br>
安装第三方程序
[https://www.cnblogs.com/tonyc/p/7739830.html](https://www.cnblogs.com/tonyc/p/7739830.html)
```shell
vim /etc/pacman.conf
# 末尾添加
[archlinuxcn]
Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch
# 安装archlinuxcn-keyring导入GPG key。
pacman -Sy archlinuxcn-keyring
# 同步软件包并安装yaourt
pacman -Sy yaourt
# 至此就可以安装第三方APP了
# 比如chrome浏览器
yaourt google-chrome
# 这里出现多个结果(如下图) 我这里选择4 最符合我的需要
4
# 之后会问是否修改 PKGBUILD 选否 n
n
```
![](/api/file/getImage?fileId=61b1baafda74050013009bc6)
## DAY 3 补
继续补充,这里需要给pacman和yaourt都切换到最快的源上,否则可能动不动就404
https://www.cnblogs.com/fb010001/p/12698142.html
```shell
sudo pacman -Syy
yaourt -Syua
```
<br><br>
## END
参考资补充
[https://blog.csdn.net/weixin_36250058/article/details/112713233](https://blog.csdn.net/weixin_36250058/article/details/112713233)
[https://blog.csdn.net/r8l8q8/article/details/103889972](https://blog.csdn.net/r8l8q8/article/details/103889972)
[https://blog.csdn.net/weixin_31569671/article/details/116709653](https://blog.csdn.net/weixin_31569671/article/details/116709653)
[https://blog.csdn.net/r8l8q8/article/details/76516523](https://blog.csdn.net/r8l8q8/article/details/76516523)
[https://www.cnblogs.com/fb010001/p/12698142.html](https://www.cnblogs.com/fb010001/p/12698142.html)
<br><br>
![](/api/file/getImage?fileId=61b715b7da74050013009f8f)
<br><br>
## 前言
开头再用我现在的眼光,重新评价一下Arch Linux
如果把系统比喻做买新房子
我们普通人以前用过的所有系统,都是精装修房,拎包入住!
而Arch Linux将是你第一次体验毛坯房,可以自己"享受" 装修的"乐趣",有的人是乐趣,有的人是折磨哈哈
<br><br>
一周目参考地址
[https://leanote.zzzmh.cn/blog/post/61b025b4da74050013009a65](https://leanote.zzzmh.cn/blog/post/61b025b4da74050013009a65)
<br>
一周目,最后总结发现好多错误,边学边改,越写越复杂,干脆重开一个二周目+纯享版,再来一遍加深记,本篇内容与上一篇是大批量重复的,只是说这里已经修正了错误,且不再过多解释和不经常截图,只快速走命令
<br><br>
后面的内容依旧在虚拟机里跑
前半部分虚拟机的部分的教程
可以回去参考一周目
直接从进光盘live系统开始讲了
<br><br>
重点参考
[https://wiki.archlinux.org/title/Installation_guide_(简体中文)](https://wiki.archlinux.org/title/Installation_guide_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87))
<br><br>
## 折腾
(虚拟机前期是不能复制的,只能照着手打,怕打错就多用tab补全)
```shell
# 查看硬盘情况
fdisk -l
# 分区 第一个选dos
cfdisk
# 依次选择 [NEW] 25G [primary] [BOOTABLE] [WRITE]
# 输入 yes
# 选择[quit]
# 这里按照我的习惯就全部分一个分区,swap后面再以文件方式搞
# 再次查看硬盘情况 应该多一个device /dev/sda1
fdisk -l
# 格式化
mkfs.ext4 /dev/sda1
# 挂载
mount /dev/sda1 /mnt
# 安装系统和基本软件包
# 这里重点说下 后面需要的东西都可以在这里装完 包括vim dhcpcd 省了很多麻烦
pacstrap /mnt base linux linux-firmware vim dhcpcd
# 生成 fstab 文件
genfstab -U /mnt >> /mnt/etc/fstab
# 进入新系统内
arch-chroot /mnt
# 设置时区
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
hwclock --systohc
# 修改配置
vim /etc/locale.gen
# 去掉这一行的井号注释
en_GB.UTF-8 UTF-8
# 执行 locale-gen 以生成 locale 信息
locale-gen
# 新建配置文件
vim /etc/locale.conf
# 内容如下 保存退出
LANG=en_GB.UTF-8
# 新建配置文件
vim /etc/hostname
# 内容是你网络主机名(局域网显示的主机名称)
# 结束后 保存退出
zzzmh
# 修改配置文件
vim /etc/hosts
# 新增这两行 保存退出
127.0.0.1 localhost
::1 localhost
# 设置一个密码 (对于root)
passwd
# 最后补上引导程序
# 安装
pacman –S grub
pacman –S os-prober
# 配置
grub-install /dev/sda
grub-mkconfig -o /boot/grub/grub.cfg
# 退出 arch-chroot
exit
# 手动移除光盘镜像(就是组下面光盘图标,点移除xxx)
# 重启
reboot
```
<br><br>
至此安装系统完成,一个空白arch系统
可以考虑备份下虚拟机磁盘
<br><br>
接下来需要安装软件、桌面程序、终端等等
```shell
# 进入系统后用户名为 root 密码为上文设置的
# dhcpcd还需要手动启动下,顺便这里就设为自启动
systemctl start dhcpcd
systemctl enable dhcpcd
# 砍柴之前先磨刀,把pacman调整到最快镜像 最新数据
pacman -S pacman-mirrorlist
pacman -Syy
# 新建用户 (用户名改为你自己的)
useradd zzzmh
# 设置密码
passwd zzzmh
# 新建文件夹
mkdir /home/zzzmh/Downloads
mkdir /home/zzzmh/Documents
mkdir /home/zzzmh/Music
mkdir /home/zzzmh/Videos
mkdir /home/zzzmh/Pictures
chmod -R 777 /home/zzzmh
# 安装sudo(我才知道原来sudo也是需要安装的)
pacman -S sudo
# 安装完会出现权限配置文件
vim /etc/sudoers
# 找 root ALL=(ALL) ALL 加一行
zzzmh ALL=(ALL) ALL
# 这里保存要用wq! 强制保存
# 试下效果
# 退到登陆界面为止
exit
# 用户名用新建的
zzzmh
# 输入密码
# 成功以普通权限进入系统
# 使用sudo su命令即可开启root权限
```
<br><br>
安装第三方程序
```shell
vim /etc/pacman.conf
# 末尾添加
[archlinuxcn]
Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch
# 安装archlinuxcn-keyring导入GPG key。
pacman -Sy archlinuxcn-keyring
# 同步软件包并安装yaourt
pacman -Sy yaourt
# 更新下
pacman -Syy
yaourt -Syua
```
## END