将云服务器的系统切换到ArchLinux
在使用云服务器时,系统只能使用由云服务器厂商打包制作好的系统。由于我一直是使用的ArchLinux,非常喜欢它的滚动更新(在生产环境不可能用,个人server无所谓了)。之前每一次给云服务器重装的时候都会参考着ArchLinux Wiki来操作,这次将操作记录下来,做一个简单的备份。
安装前准备
系统推荐 Centos8、Debian10 以上
# 1. 下载ArchLinux的 Bootstrap镜像 地址 https://archlinux.org/download/
# 下载到 /tmp 目录
wget -P /tmp https://mirror.umd.edu/archlinux/iso/2023.02.01/archlinux-bootstrap-x86_64.tar.gz
# 2. 解压 解压后会得到一个 root.x86_64 的文件夹
cd /tmp
tar -zxvf archlinux-bootstrap-x86_64.tar.gz
# 3. 将这个目录与自身绑定
mount --bind /tmp/root.x86_64 /tmp/root.x86_64
# 4. 修改软件包安装源 国内推荐中科大源
# Server = https://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch
vim root.x86_64/etc/pacman.d/mirrorlist
进入chroot环境
利用引导镜像中的可执行文件启动 chroot环境
/tmp/root.x86_64/bin/arch-chroot /tmp/root.x86_64/
初始化 pacman的安装密钥,让我们可以安装软件
pacman-key --init
pacman-key --populate archlinux
安装一下自己需要的软件,比如 vim编辑器。
# 更新软件包源数据
pacman -Syy
# 安装vim编辑器
pacman -S vim
删除原系统
由于是云服务器我们不能对原系统进行重装,只能将原系统的硬盘挂载到chroot环境后删除系统内的文件夹。
首先需要挂载原系统所在的分区
# 我这里是 /dev/vda1 挂载到当前环境下的 /mnt 分区
mount /dev/vda1 /mnt
进入 /mnt目录,删除除了 tmp、dev、proc、run、sys几个目录外的全部文件夹。一旦删除后如果安装 ArchLinux失败,那么只能去云服务器控制台重装系统。
cd /mnt
rm -rf ...
安装ArchLinux
安装系统
现在就可以按照官方Wiki的教程进行安装了,由于我们的网络和硬盘都是不可更改的,直接从官方教程 安装必需的软件包这一步开始即可。
# 这里安装的路径 /mnt 一定要选择刚才硬盘挂载的路径
pacstrap /mnt base base-devel linux linux-firmware vim
生成自动挂载配置
用以下命令生成 fstab 文件 (用 -U 或 -L 选项设置 UUID 或卷标):
genfstab -U /mnt >> /mnt/etc/fstab
# 检查一下文件是否正确
cat /mnt/etc/fstab
强烈建议在执行完以上命令后,检查一下生成的 /mnt/etc/fstab 文件是否正确。
进入新系统
使用 arch-chroot /mnt到新安装的系统
某些系统可能会遇到下面这个错误,先把 /mnt/etc/resolv.conf删除,成功切换到新系统后再手动添加上。
# 先删除
rm -rf /mnt/etc/resolv.conf
# 切换到新系统后再添加
vim /etc/resolv.conf
nameserver 223.5.5.5
nameserver 8.8.8.8
mount: /mnt/etc/resolv.conf: mount(2) system call failed: No such file or directory.
dmesg(1) may have more information after failed mount system call.
==> ERROR: failed to setup resolv.conf
配置新系统
安装软件包
由于新系统啥也没有,需要先安装一下后面需要用到的软件包
pacman -S wget curl nano amd-ucode intel-ucode
修改时区
修改为 Asia/Shanghai上海时区
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
运行 hwclock以生成 /etc/dajtime
hwclock --systohc
本地化配置
编辑 /etc/locale.gen,然后取消掉 en_US.UTF-8 UTF-8 和其他需要的区域设置前的注释
接着执行 locale-gen 以生成 locale 信息
vim /etc/locale.gen
locale-gen
创建 locale.conf文件,并编辑设置 LANG变量
vim /etc/locale.conf
# 用于系统log的显示语言 推荐 en_US
LANG=en_US.UTF-8
网络配置
配置主机名
vim /etc/hostname
myhostname(主机名)
配置网络 host文件
vim /etc/hosts
127.0.0.1 localhost
::1 localhost
127.0.1.1 myhostname.localdomain myhostname
安装网络管理软件,我使用 network-manager使用 dhcpcd也可
# 安装
pacman -S networkmanager
# 设置开机启动
systemctl enable NetworkManager
生成启动镜像
mkinitcpio -P
用户设置
ArchLinux不推荐日常使用 root账户,创建一个用于日常使用的普通账户
先设置 Root账户密码
passwd
再创建一个普通权限账户
useradd -m lisang
# 为普通账户设置密码
passwd lisang
SSH远程访问
为了服务器第一次重启后不需要区控制台用 vnc访问,可以先配置一下 ssh,便于开机后直接远程访问
# 安装 openssh
pacman -S openssh
# 设置开机启动
systemctl enable sshd
# 服务器第一次开机后可能普通用户无法远程访问 修改一下配置文件设置ssh可以通过root账户访问 担心安全问题的话 后面可以关掉
vim /etc/ssh/sshd_config
# 找到配置文件中的 PermitRootLogin 项 取消注释 把后面的值更改为 yes
PermitRootLogin yes
GRUB启动
我的云服务器没有单独的 EFI分区,也就是没有采用 UEFI启动,所以配置很简单
安装 GRUB软件包
pacman -S grub
安装 GRUB到硬盘
# 这里的 /dev/vda 为硬盘 不是硬盘上的分区
grub-install --target=i386-pc /dev/vda
# 提示 Installation finished. No error reported. 即表示安装完成 没有错误发生
生成 GRUB配置文件
grub-mkconfig -o /boot/grub/grub.cfg
# 配置完后 建议查看一下 /boot/grub/grub.cfg 配置文件 看看有没有当前系统的引导项
cat /boot/grub/grub.cfg
安装后的配置
以上步骤都做完后,需要去服务器控制台重启一下服务器。重启完成后,不出意外的话是可以通过 SSH远程连接的



0 条评论