Appearance
云服务器装 Arch Linux
云服务器提供商需要支持 VNC 连接,且服务器正在使用任意 Linux 操作系统,建议 ubuntu 18
腾讯云 VNC 界面:远程连接 - VNC 连接
阿里云 VNC 界面:远程连接 - 救援模式,需要先点击运行一次上方的复制命令才能接受到键盘操作
1. 下载系统镜像
下载系统镜像,改名为 archlinux.iso 并放在根目录,有条件可以从内网下载
sh
# 腾讯云内网
wget mirrors.tencentyun.com/archlinux/iso/latest/archlinux-x86_64.iso -O /archlinux.iso
# 阿里云内网
wget mirrors.cloud.aliyuncs.com/archlinux/iso/latest/archlinux-x86_64.iso -O /archlinux.iso2. 添加开机引导项
编辑 /boot/grub/grub.cfg,添加镜像引导,/dev/vda1 为 archlinux.iso 文件所在的分区
sh
cat << 'EOL' >> /boot/grub/grub.cfg
menuentry 'Arch Linux LiveCD' {
set isofile=/archlinux.iso
set imgdevpath=/dev/vda1
loopback lo0 $isofile
linux (lo0)/arch/boot/x86_64/vmlinuz-linux img_dev=$imgdevpath img_loop=$isofile
initrd (lo0)/arch/boot/x86_64/initramfs-linux.img
}
EOL如果在开机时没有出现 Grub 引导界面,请检测 grub.cfg 文件中是否有自动选择启动项的配置,重新生成后再执行一次上述命令
sh
cat << 'EOL' >> /etc/default/grub
GRUB_TIMEOUT=10
GRUB_TIMEOUT_STYLE=mune
EOL
update-grub3. 启动镜像环境
打开 VNC 界面,输入 reboot 重启系统,在开机的引导界面选择最后一项 Arch Linux LiveCD,如果时间不够选择,在 grub.cfg 中修改 GRUB_TIMEOUT 的值,单位是秒
输入命令 passwd 设置临时密码,以使用
ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -tt root@ip进行远程连接,随后不再使用 VNC
注:此时反悔还来得及
4. 清理系统数据
直接格式化硬盘即可 mkfs.ext4 /dev/vda1,随后挂载硬盘 mount /dev/vda1 /mnt
如无法格式化,可以尝试重设硬盘挂载权限 mount -o rw,remount /dev/vda1,再挂载硬盘 mount /dev/vda1 /mnt,手动删除数据 rm -rf /mnt/*
注:本文确保硬盘分区表使用 dos/mbr 格式而不是 gpt 格式,可输入 fdisk -l 命令查看。使用
dd if=/dev/zero of=/dev/vda bs=512K count=1命令可直接擦除硬盘分区表信息
5. 正式安装
关闭系统自动还源
sh
systemctl stop reflector先换源,有条件使用内网源
sh
# 腾讯云内网
echo 'Server = http://mirrors.tencentyun.com/archlinux/$repo/os/$arch' > /etc/pacman.d/mirrorlist
# 阿里云内网
echo 'Server = http://mirrors.cloud.aliyuncs.com/archlinux/$repo/os/$arch' > /etc/pacman.d/mirrorlist安装基本包,生成磁盘信息标识
sh
pacstrap /mnt base linux-lts openssh grub
genfstab -U /mnt >> /mnt/etc/fstabnameserver 信息,有条件使用内网地址
sh
# 腾讯云内网
echo nameserver 183.60.82.98 > /mnt/etc/resolv.conf
# 阿里云内网
echo nameserver 100.100.2.136 > /mnt/etc/resolv.conf进入 chroot 环境
sh
arch-chroot /mnt时区,语言环境,网络连接信息,Name 值为网卡名称,使用 ip addr 命令查看,此处示例为 ens5
sh
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
echo zh_CN.UTF-8 UTF-8 > /etc/locale.gen
locale-gen
echo vps > /etc/hostname
cat << EOL > /etc/systemd/network/20-wired.network
[Match]
Name=ens5
[Network]
DHCP=ipv4
EOLssh,此处配置为必须使用密钥登陆,如使用密码可将 PasswordAuthentication 改为 yes
sh
cat << EOL > /etc/ssh/sshd_config.d/10-vps.conf
PermitRootLogin yes
PasswordAuthentication no
ClientAliveInterval 3600
PrintLastLog no
AddressFamily inet
UsePAM no
EOL
cat << EOL > /root/.ssh/authorized_keys
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPNwSU4IuTcE1fEkfooybSCM6gpChn7okmtBgblK1Bkx
EOL设置 root 密码,使用 passwd 命令
自启系统服务,开机引导
sh
systemctl enable sshd.service systemd-networkd.service
grub-install --target=i386-pc /dev/vda
grub-mkconfig -o /boot/grub/grub.cfg结束,重启
sh
exit
reboot6. 其他
sh
pacman -S --noconfirm fastfetch tree wget nano unzip lsof
ln -sf /bin/nano /usr/local/bin/vim
mkdir -p /root/d
fallocate -l 1G /boot/swapfile
chmod 600 /boot/swapfile
mkswap /boot/swapfile
swapon /boot/swapfile
echo '/boot/swapfile none swap defaults 0 0' >> /etc/fstab
cat << 'EOL' > /root/.nanorc
include "/usr/share/nano/*.nanorc"
set linenumbers
set tabstospaces
set constantshow
set tabsize 4
EOL
pacman -S --noconfirm fish
chsh -s /usr/bin/fish
mkdir -p /root/.config/fish/conf.d
cat << EOL > /root/.config/fish/conf.d/custom.fish
set fish_greeting
set LANG zh_CN.UTF-8
EOL