最近本来有打算直接入手一台 Synology 主机的,但经过一个朋友的推介,最终我选择了星际蜗牛搭载 ArchLinux 作为 NAS 使用。
简介
由于收到时店家已经为我预装好 Synology (黑群辉)了,本来不太打算怎么折腾直接使用的,但想了想为了日后更好的可自定义化最终还是使用了数天之后展开了重装的旅程(ArchLinux 真香。
配置
- CPU: Intel(R) Celeron(R) CPU J1900 @ 1.99GHZ
- 内存: 8G DDR3
- SSD: 16G
- 盘位数: 4个
- 网口: 2个 (双千兆)
配置看上去其实差不多也就这样,但查了下发现供电可能是雷区,毕竟如果4个盘满载运行的话稳定性可能成为疑问,但暂且来说目前还只有两个盘那就不管了。
准备工作
备份
这个就不用多说了,在安装之前有重要数据切记要备份。
参阅官方安装教程
在安装的同时建议打开 官方安装教程 边参考边安装,以免出错。
制作 LiveCD 引导盘
首先前往 ArchLinux 国内镜像站(我这里选用了清华源),然后寻找合适版本的 ArchLinux 镜像文件并使用工具刻录到 USB 上(由于我的电脑系统使用了 Ubuntu 18.04 + gnome 桌面环境,因此我使用了可视化的 Disks 工具进行 LiveCD 制作),该步骤由于网上已有不同环境下制造的教程,因此略过。
预处理步骤
插入已制作好的 LiveCD
现在我们把 LiveCD 插入到星际蜗牛主机上,并且在开机后进入 BIOS 界面,把启动项调整成我们刚插入到主机上的 USB (UEFI 方式),并在 F10 保存之后重新启动。
擦除 Synology 系统数据
在完成上述步骤之后,成功地进入了 ArchLinux 的命令行环境,但由于店家本身已经预装了黑群辉,因此我们需要把残留的数据都给清空掉。
输入
fdisk -l
查看黑群辉系统所在分区(我这里查出来是/dev/sda
)。使用
dd if=/dev/zero of=/dev/sda
写 0 擦除/dev/sda
硬盘上的内容,并且在擦除完毕后直接使用Ctrl+C
退出。
创建分区表
现在使用 fdisk
与 parted
(官方推荐这两个)等工具对 /dev/sda
建立新的分区表(我这里使用的是 cfdisk /dev/sda
):
- 首先要创建 EFI System Partition (ESP) 并作为引导文件储存用,这里我分出了 512M 给予
/dev/sda1
分区(官方建议 UEFI with GPT 是 260 ~ 512MB)。 - 然后的就是把剩余的空间全数分配给
/dev/sda2
(这里你也可以预留一些大于 512MB 的空间分配给/dev/sda3
作为 swap 区使用),并指定分区表类型为 Linux filesystem 即可。 - 保存并退出。
最终分区表如下: 1
2
3Device Start End Sectors Size Type
/dev/sda1 2048 1050623 1048576 512M EFI System
/dev/sda2 1050624 31277198 30226575 14.4G Linux filesystem
格式化分区空间
完成上述步骤之后,现在我们可以对上面两个分区进行格式化: 1
2# mkfs.fat -F32 /dev/sda1
# mkfs.ext4 /dev/sda2
创建 Swap 分区(可选)
如果在创建分区表的步骤上已经为系统创建了 Swap 分区,那么现在可以使用如下指令创建 Swap 区: 1
2# mkswap /dev/sda2
# swapon /dev/sda2
挂载分区
刚才我们已经对 /dev/sda
建立起了 /dev/sda1
与 /dev/sda2
这两个分区,现在我们开始把它们挂载到对应的位置上:
1 | # mount /dev/sda2 /mnt |
安装系统
在确认挂载无误之后,我们现在就可以开始安装 ArchLinux 了!让我们看看接下来要干什么吧!
配置 Pacman 镜像源(可略过,Live 模式默认启动所有镜像)
由于 ArchLinux 采用了 Pacman 作为包管理系统并需要联网以安装一些基础包,而为了提升下载速度,所以在这个激动人心的安装过程之前先配置好我们的镜像列表:
可以先前往 官方的镜像列表生成器 生成你所在国家或地区的镜像服务器列表。
然后将它们复制粘贴到
/etc/pacman.d/mirrorlist
并保存即可。
安装 base 程序包组
在确保联网状态可用的情况下,使用 pacstrap
指令去安装及下载,并且稍稍等待一段时间: 1
2
3# ip link
# ping archlinux.org
# pacstrap /mnt base
不过要注意的是 base
包组在 Live 模式下安装并不包含所有工具,当然你也可以使用 pacstrap /mnt base-devel
安装基础开发者工具包组。
配置 fstab
对于一些日后可能需要用到的硬盘或者分区,或者哪些分区需要开机的时候自动挂载,我们可能需要在 /etc/fstab
文件中指定出来。现在使用 genfstab
指令简单的生成一个配置文件并用 cat 查询以确认生成结果。 1
2# genfstab -U /mnt >> /mnt/etc/fstab
# cat /mnt/etc/fstab
移动至系统根目录
我们当前进程还是以 LiveCD 下的引导系统作为根目录,因此我们需要把根目录移动到我们新创建好的系统中(/mnt
里)再进行操作: 1
# arch-chroot /mnt
调整系统内的个性化配置(可选)
这里的配置较为次要,因此不作更详细的说明,详情可前往官方文档参阅:
时区设置
创建软链接把 /etc/localtime
指向 /usr/share/zoneinfo/Region/City /etc/localtime
让系统读取: 1
2# ln -sf /usr/share/zoneinfo/Asia/Hong_Kong /etc/localtime
# hwclock --systohc
本地化设置
创建本地化配置 /etc/locale.conf
并让系统读取,可使用 nano / vi 等方式进行编辑: 1
LANG=en_US.UTF-8
配置网络
配置 hosts 文件
现在我们编辑 /etc/hosts
文件,使 hosts 文件生效,下面是我的配置: 1
2
3127.0.0.1 localhost
::1 localhost
127.0.1.1 90-ArchLinux
添加网卡配置
我们可以使用在 base 包自带的 netctl
进行有线网络配置:
- 在命令行环境下先输入
ip link
查询未启动或未被分配有 IP 的网卡,我这里查询出来的是 enp1s0 与 enp4s0,因为接了网线的网口是下面的所以盲猜应该是 enp4s0。 - 使用
nano /etc/netctl/enp4s0
创建并编辑网卡配置(请把下述所有内容的 enp4s0 替换成你网卡配置的名字):
DHCP 动态分配 IP 请使用: 1
2
3Interface=enp4s0
Connection=ethernet
IP=dhcp
静态分配 IP 请使用: 1
2
3
4
5
6Interface=enp4s0
Connection=ethernet
IP=static
Address=('10.1.10.2/24')
Gateway='10.1.10.1'
DNS=('10.1.10.1')
- 保存并退出,并输入:
1
2
3netctl start enp4s0
netctl enable enp4s0
netctl status enp4s0
netctl start enp4s0
为启动网卡,然后输入 netctl enable enp4s0
确保网卡在开机时启动,最后输入 netctl status enp4s0
查询网卡状态,确保启动成功。
设置 Root 密码
设置 Root 密码: 1
# passwd
设置启动引导
在完成上述所有的步骤之后,现在来到最关键的一步了。在我们把系统配置完成之后,系统本身并不会自行引导并启动系统的,因此我们需要安装启动引导器(Bootloader),而官方给出了一整个 启动引导器列表 供我们选择。
在这里我选用了 Grub 作为我的引导器,因此下面会列出 Grub 的安装流程: 1
2
3# pacman -S grub efibootmgr os-prober
# grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB
# grub-mkconfig -o /boot/grub/grub.cfg
- 使用 pacman 下载并安装 grub,efibootmgr 与 os-prober 包
- 执行 grub-install 指令安装,我这里使用的是 UEFI 架构,因此设置
--target
为x86_64-efi
,而 efi 路径则设置为上面创建好的/boot
路径(也为ESP)即可。 - 执行 grub-mkconfig 以生成 grub 的默认配置文件
重启主机进入安装系统
在完成上述所有流程之后,我们现在可以输入 exit
或按下 Ctrl+D
退出 Chroot 环境,并执行 reboot(不要忘记移除我们搭载 Live 系统的 USB),进入新系统并使用设置好的 root 密码登陆,至此安装完毕!
总结
本篇较详细地讲述了安装 ArchLinux 系统的整个流程,当然相比起其他开箱即食的一键化傻瓜式系统安装要沉长许多,但也有助于进一步了解 Linux 的文件结构,也鼓励喜欢折腾的朋友可以尝试自己去弄一下。而作为 NAS 使用没有组 RAID 阵列怎么行,因此下一篇会为大家带来软件 RAID 阵列的组装。