在Vultr服务器上安装2019 Arch Linux

介绍

与更流行的发行版相比,Arch Linux的规模较小,但仍很强大。其理念截然不同,各有利弊。

Arch要求其用户更多地以自己为导向。Arch没有GUI安装,但是本指南将在Vultr服务器上运行基本的Arch安装。Arch不会自行为您配置所有内容,但是您可以选择如何进行配置。由于存在多种方式,因此这可能特别有益。Arch不会安装大量的软件包,包括桌面环境。而是允许您选择系统上想要的内容,并省去了许多不使用的软件包。

Arch存储库极力支持由原始上游开发人员制作的程序包。如果您在其他发行版上遇到软件包问题,上游维护人员可能会经常将您引荐给您的发行版,因为它经常进行可能负责的更改。在Arch上很少发生这种情况,因为所做的更改通常仅限于:与Arch一起使用所必需的更改,例如文件系统层次结构;以及主要的上游错误修复和安全后备端口,这些问题将暂时使用,直到制作出包含它们的下一个上游版本为止。就是说,其他一些发行版有时会为发行版不会打扰发送或上游开发者不接受的软件包添加功能和错误修复,除非确实必要,否则这些额外的补丁不会添加到Arch软件包中。

Arch作为“滚动版本”运行。整个Arch没有任何版本或发行周期。受信任的Arch软件包维护者将新的上游发行版提交到Arch的存储库中。用户定期将所有软件包更新为最新的软件包。有些用户每天更新一次,有些每周更新一次,有些甚至不那么频繁。Arch用户将获得运行最新版本的好处,而不是在其他发行版上可能拥有数月或数年的旧版本,但也可能会遇到问题,即在制作新版本之前,上游测试无法解决。

与许多其他发行版相比,Arch被认为是一种更先进,技术要求更高的发行版。完全不熟悉Linux的人可以使用Arch,但是他或她必须准备好并且渴望学习很多东西。Arch社区非常有帮助,但是希望用户会努力寻找解决问题的方法,而不是立即向他人寻求帮助。

从Arch ISO引导

尽管在Vultr上部署新服务器时Arch并未列出“服务器类型”,但是您可以轻松引导Arch ISO并自行安装服务器。

Arch会在每个月初发布一个新的ISO。如果Vultr上的最新Arch ISO不是当前月份的,则可以手动将最新的Arch ISO上传到Vultr并使用它。当您使用Arch ISO安装到硬盘驱动器时,它将从Arch的服务器获取所有软件包的最新版本。Arch ISO上的软件包版本不是服务器上安装的版本。因此,除非Vultr的最新Arch ISO的ISO库中未包含错误修复程序或功能,否则将影响安装过程,否则您可能无需手动上载最新的错误或功能。

Vultr ISO库

选择“部署新服务器”后,在“服务器类型”下,切换到“ ISO库”选项卡,然后选择最新的Arch Linux ISO。

手动上传最新的ISO

要获取最新的ISO,请访问https://www.archlinux.org/download/,然后单击HTTP直接下载链接之一。在下一页上,将链接复制到“ .iso”文件。访问位于https://my.vultr.com/iso/的 Vultr ISO上传区域。单击“添加ISO”,粘贴刚刚复制的链接,然后单击“上传”。该页面将自动刷新,显示其下载进度,几分钟后,它将显示ISO可用。选择“部署新服务器”,然后在“服务器类型”下,切换到“上传ISO”选项卡,然后选择ISO。

连接到ISO控制台

部署新服务器后,单击它以打开“服务器信息”页面。(如果您看到一条说明您的服务器可能仍在完成安装的注释,则可以忽略此操作,因为您的服务器很可能是从ISO引导启动的。)单击右上角类似计算机监视器的图标,在鼠标悬停时显示“ View Console”。

按下ENTERBoot Arch Linux (x86_64)”,稍后您将以root用户身份登录。(您可能需要调整窗口大小以显示整个控制台。)

ISO使用DHCP自动配置网络,该网络可与Vultr的设置正常配合使用。验证此工作。

# ping -c 1 archlinux.org

同步时钟

确保系统时钟准确。

# timedatectl set-ntp true

更新密钥环

Arch服务器上的软件包可以使用比ISO上新的加密密钥签名,因此可以更新到最新的受信任密钥集。

# pacman -Sy archlinux-keyring

分区磁盘

查看检测到的块设备。

# lsblk

ISO CD可能是sr0,并且loop0已用于安装ISO的一部分。本教程假设您选择了具有单个硬盘驱动器的标准Vultr服务器,因此还假设您的硬盘驱动器为vda。这是因为Vultr标准服务器使用QEMU virtio_blk来提供虚拟硬盘驱动器,以提高性能。

分区磁盘。

# fdisk /dev/vda

您现在需要确定是否需要交换分区。如果不确定,请仔细阅读标题为“创建交换空间”的部分。

注意如果要使用GPT而不是DOS分区表,则需要为GRUB创建1MB BIOS引导分区。

没有交换分区

N其次是ENTER5次创造最大尺寸的单个分区。按,W然后按ENTER写入分区表。您的系统分区是/dev/vda1

带交换分区

按,N然后按ENTER4次。接下来输入+<SIZE>(例如:)+512M,然后ENTER创建交换分区。按TENTER然后输入82,然后ENTER再次将其标记为交换分区。按N其次是ENTER5倍创建系统分区。按W,然后ENTER写入分区表。您的系统分区是/dev/vda2

创建一个文件系统

Btrfs

Btrfs基于写时复制。当写入更改的数据时,不像其他文件系统那样简单地写入它来覆盖原始数据。更改后的块将写入其他位置,只有成功写入后,这些新块的“指针”才会更新。这样可以提高容错能力,因此,如果在写入过程中出现问题,则不会丢失原始数据。它允许文件系统提供快照。在后台,它在每个块上维护校验和,以自动检测并有时以静默方式纠正损坏的数据。与大多数其他要求脱机的文件相比,Btrfs允许大多数文件系统级的修改在安装和使用时进行。Btrfs在开发过程中遇到了一些困难,但是由于Arch将运行最新的内核,

# mkfs.btrfs --label arch <SYSTEM_PARTITION>

分机4

Ext4没有最新的文件系统功能,性能也不尽人意,但���自2008年以来一直存在,并且基于ext3(自2001年以来一直存在)。它的代码库相当稳定,因此有人认为它比较新的文件系统更稳定,但是随着其他文件系统的成熟,这种观点变得不那么重要了。

# mkfs.ext4 -L arch <SYSTEM_PARTITION>

XFS文件

XFS是围绕并行IO设计的,着重于可伸缩性。它提供了比ext4更好的性能,并且根据情况,与btrfs相比,它提供的性能稍好或稍差。XFS不使用写时复制,而仅在其元数据而不是数据本身上维护校验和。

# mkfs.xfs -L arch <SYSTEM_PARTITION>

挂载文件系统

使用以下命令来挂载文件系统:

# mount /dev/disk/by-label/arch /mnt

创建交换空间

交换空间不是严格必需的。与2 GB的内存和1 GB的交换空间相比,使用2 GB的内存和无交换空间的运行效果更好。交换空间占用的内存少于系统及其所有程序所需的实际内存。应避免在Linux上耗尽内存,因为内核将通过终止进程来自动尝试释放内存。

如果要在没有交换空间的情况下运行,则可以跳过本节的其余部分。

如果要使用交换空间运行,则可以使用交换分区或交换文件。交换分区的优点是不受文件系统的影响,因此它永远不会碎片化,并且如果文件系统遇到暂时性问题,也不会被束缚。交换文件的优点是可以轻松调整大小,或者在需要时删除和添加。

注意btrfs仅预期在Linux 5.0+中支持交换文件,预计在2019年初至中期出现。

交换分区

# mkswap /dev/vda1
# swapon /dev/vda1

交换文件

# dd if=/dev/zero of=/mnt/swapfile bs=1M count=<SIZE IN MB> status=progress
# chmod 600 /mnt/swapfile
# mkswap /mnt/swapfile
# swapon /mnt/swapfile

安装基本软件包组

使用此命令:

# pacstrap /mnt base linux linux-firmware --noconfirm
  • 如果需要,替代linux-ltslinux-mainline从该列表中的其他内核的Linux软件包。
  • 如果您正在运行btrfs,请安装该btrfs-progs软件包。

这样就安装了Arch假定在每个系统上都安装的最小数量的软件包,并且其中的任何一个都有可能造成损坏风险,请自行承担风险。请注意,ISO包含的软件包比“基本”组中的软件包更多。基本组将仅占用约1.4GB。

请注意,您可能会注意到WARNING: Possibly missing firmware for module: aic94xxwd719x。这些可能会被忽略。

配置新系统

自动生成/etc/fstab文件(自动挂载文件系统)。

# genfstab -L /mnt >> /mnt/etc/fstab

现在,您可以将root更改为新安装,基本上将您的新安装/mnt/视为/。在chroot环境中,它将运行安装在硬盘驱动器而不是ISO上的程序,因为其中看不到ISO文件系统。

# arch-chroot /mnt

您的系统将使用UTC在内部跟踪时间,但是您可以选择在显示日期和时间时应使用的时区。确定要使用的区域。

# ls /usr/share/zoneinfo

假设您将使用America,确定要使用的城市。

# ls /usr/share/zoneinfo/America

假设您将使用New_York,选择该时区。

# ln -sf /usr/share/zoneinfo/America/New_York /etc/localtime
# hwclock --systohc

选择一个UTF-8语言环境。

# sed 's/#en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' -i /etc/locale.gen
# locale-gen
# echo 'LANG=en_US.UTF-8' > /etc/locale.conf

配置网络

在Vultr服务器上配置网络的最简单方法是通过DHCP。Vultr的DHCP服务器仍将为您提供公共静态IP地址。

查看检测到的网络设备。

# ip addr

环回设备标记为lo。在Vultr服务器上,您可能会看到网络设备为ens3

# cat <<EOF > /etc/systemd/network/ens3.network
> [Match]
> Name=ens3
>
> [Network]
> DHCP=ipv4
> EOF

使DHCP在引导时自动运行。

# systemctl enable systemd-networkd

使DNS解析在启动时自动运行。

# systemctl enable systemd-resolved

/etc/resolv.conf转发请求systemd-resolved

# ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf

设置服务器的主机名。

# echo '<YOUR_HOSTNAME>' > /etc/hostname

使用您选择的主机名,并在<YOUR_STATIC_IP>运行时显示静态IP地址ip addr,来设置主机文件。

$ cat <<EOF > /etc/hosts
> <YOUR_STATIC_IP>   localhost
> ::1                localhost
> <YOUR_STATIC_IP>   <YOUR_HOSTNAME>.localdomain  <YOUR_HOSTNAME>
> EOF

设置您的root密码

使用以下命令设置密码。系统将提示您输入两次新密码。

# passwd

配置引导加载程序

安装grub软件包。

# pacman -S grub

将其安装到硬盘驱动器。

# grub-install --target=i386-pc /dev/vda

注意参数是磁盘本身,而不是系统分区。

默认情况下,启动时,grub将等待5秒钟,然后再选择默认选项。要禁用此等待,请使用以下命令。

# sed 's/^GRUB_TIMEOUT=5$/GRUB_TIMEOUT=0/' -i /etc/default/grub

注意如果仍要访问grub引导菜单,则可能需要将其设置为1秒而不是0秒。

缺省情况下,grub为内核提供了以下quiet选项systemd。使用以下内容显示启动和关闭消息。

# sed 's/^GRUB_CMDLINE_LINUX_DEFAULT="quiet"$/GRUB_CMDLINE_LINUX_DEFAULT=""/' -i /etc/default/grub

创建grub配置。

# grub-mkconfig -o /boot/grub/grub.cfg

重新启动进入硬盘

退出chroot环境。

# exit

关闭服务器电源。

# systemctl poweroff

返回服务器的Vultr的“服务器信息”页面。在“设置”选项卡上,单击“自定义ISO”,然后单击“删除ISO”。单击“服务器重新启动”图标,然后单击“ View Console”。

创建用户

以root用户身份登录,并使用您之前选择的密码。

安装sudo

# pacman -S sudo

允许组中的成员wheel使用sudo

# cp /etc/sudoers /etc/sudoers.new
# sed 's/# %wheel ALL=(ALL) ALL/%wheel ALL=(ALL) ALL/' -i /etc/sudoers.new
# visudo -c -f /etc/sudoers.new && mv /etc/sudoers.new /etc/sudoers

创建一个用户帐户。

# useradd --create-home --groups wheel <USERNAME>

设置用户密码。

# passwd <USERNAME>

以root身份注销。

# exit

以新创建的用户身份登录。

仍然需要以下命令以root身份运行,因此仍以前缀#。建议以root用户身份运行命令的方式是,以普通用户的身份为每个命令添加前缀sudo。运行时sudo,它要求您输入的密码是您的用户密码,而不是root密码。

配置时间同步

对于精度较差的轻量级时间同步客户端,请使用以下内容。

# systemctl enable --now systemd-timesyncd

如果您希望更好的准确性。

# pacman -S ntp
# systemctl enable --now ntpd

配置SSH

安装SSH服务器,以便您可以使用SSH连接到Arch系统,而不是使用Vultr的虚拟控制台。

# pacman -S openssh
# sed 's/#Port 22/Port 22/' -i /etc/ssh/sshd_config
# systemctl enable --now sshd

此时,您可以关闭虚拟控制台,并使用SSH连接。注意,默认情况下,sshd不允许您以root用户身份登录。

升级中

因为Arch是一个“滚动版本”,所以您可以随时升级所有已安装的软件包。用户可以每天,每周等按自己的时间表进行升级。如果您经常升级,则不需要一次升级很多软件包,并且可能会遇到的任何潜在问题将更容易确定。一次升级所有软件包非常重要,如以下命令所示。容易想像为什么在没有使用glibc的程序的情况下单独升级“ glibc”会导致问题。

# pacman -Syu

升级后,重要的是要仔细查看输出中提供给您的消息。它可能会告诉您您需要做的事情。因此,请勿设置自动升级。

请注意,在重新启动之前,升级之前所有已经运行的程序都不会是较新的版本。在这种情况下,当无法重启的真正基础的东西(例如linux内核,glibc或systemd)被更新时,重新启动是个好主意。

保留启动消息

要显示成功的启动和关闭消息,您需要quiet从grub配置中删除上面的内核参数。(如果没有这样做,现在仍然可以重新创建grub配置。)请注意,这些消息仅通过Vultr的虚拟控制台显示,而不是在ssh会话上显示。在启动过程的一部分过程中,系统将切换到KMS(内核模式设置图形模式),在此之前它将丢失消息。您可以将切换到KMS的时间提前,以保留所有消息。

# sed 's/^MODULES=()$/MODULES=(cirrus)/' -i /etc/mkinitcpio.conf
# mkinitcpio -p linux

默认情况下,系统启动并初始化tty后,它将清除屏幕。尽管从美学上来说这是令人愉悦的,但是它阻止您在引导过程中仅查看消息。您可以关闭此行为。

# mkdir /etc/systemd/system/getty@tty1.service.d

重定向输出sudo cat将不使用root权限,因此这是一种解决方法。(您不需要在cat命令本身前面加上sudo前缀,因此它以开头$

$ cat <<EOF | sudo tee /etc/systemd/system/getty@tty1.service.d/noclear.conf
> [Service]
> TTYVTDisallocate=no
> EOF


Leave a Comment

在Arch Linux上安装Spigot Server

在Arch Linux上安装Spigot Server

本教程说明了如何在Arch Linux上使用Spigot设置Minecraft服务器。本教程假定您是普通用户(非root用户)并且具有hav

使用Btrfs快照安装Arch Linux

使用Btrfs快照安装Arch Linux

前言Arch Linux是一种通用发行版,以其先进的技术和灵活的配置而闻名。使用Btrfs快照,我们可以

如何在Arch Linux上安装MariaDB 10.3或MySQL 8.0

如何在Arch Linux上安装MariaDB 10.3或MySQL 8.0

先决条件运行最新的Arch Linux的Vultr服务器(请参阅本文。)Sudo访问:需要以root身份运行的命令以#开头,其中一个

在Arch Linux上安装Mumble Server

在Arch Linux上安装Mumble Server

本教程说明了如何在Arch Linux上设置Mumble服务器(Murmur)。本教程中完成的所有操作均以root用户身份完成。安装

如何在Arch Linux上安装Nginx 1.14

如何在Arch Linux上安装Nginx 1.14

先决条件运行最新的Arch Linux的Vultr服务器(请参阅本文。)Sudo访问。需要以root身份运行的命令带有#前缀。钍

如何在Arch Linux Web服务器上安装PHP 7.3

如何在Arch Linux Web服务器上安装PHP 7.3

先决条件运行最新的Arch Linux的Vultr服务器(请参阅本文。)正在运行的Web服务器,可以使用Apache或Nginx Sudo访问。命令要求

在Arch Linux上设置反恐精英:全球攻势(CSGO)服务器

在Arch Linux上设置反恐精英:全球攻势(CSGO)服务器

本教程说明了如何在Arch Linux上设置“反恐精英:全球攻势”服务器。本教程假定您以标准用法登录

如何在Arch Linux上安装PostgreSQL 11.1

如何在Arch Linux上安装PostgreSQL 11.1

先决条件运行最新的Arch Linux的Vultr服务器(请参阅本文。)Sudo访问。需要以root身份运行的命令以#开头,其中一个

在Arch Linux上使用Devtools

在Arch Linux上使用Devtools

Devtools软件包最初是为受信任的用户制作的,可以为官方存储库正确创建软件包。但是,普通用户可以使用

如何在Arch Linux Web服务器上安装Python 3.7

如何在Arch Linux Web服务器上安装Python 3.7

先决条件运行最新的Arch Linux的Vultr服务器(请参阅本文。)正在运行的Web服务器,可以使用Apache或Nginx Sudo访问:命令需要

如何在Arch Linux Web服务器上使用HTTPS

如何在Arch Linux Web服务器上使用HTTPS

先决条件运行最新的Arch Linux的Vultr服务器(请参阅本文。)运行中的Web服务器,Apache或Nginx Sudo访问命令要求t

如何在Arch Linux上安装MongoDB 4.0

如何在Arch Linux上安装MongoDB 4.0

先决条件运行最新的Arch Linux的Vultr服务器(请参阅本文)Sudo访问:需要以root身份运行的命令以#开头,其中一个

在Arch Linux上构建软件包(包括AUR)

在Arch Linux上构建软件包(包括AUR)

在Arch Linux上,官方存储库为:核心,额外和社区。这些软件包已被编译,并通过pacman安装。向前

在Vultr服务器上安装Arch Linux

在Vultr服务器上安装Arch Linux

Vultr除了出色的模板之外,还为您提供了令人敬畏的功能,使您可以使用自己的自定义图像,从而使您可以运行

如何在Arch Linux上安装Apache 2.4

如何在Arch Linux上安装Apache 2.4

先决条件运行最新Arch Linux的Vultr服务器。有关更多信息,请参见本指南。须藤访问。需要以root用户身份运行的命令

如何在Arch Linux Web服务器上安装Perl 5.28

如何在Arch Linux Web服务器上安装Perl 5.28

先决条件运行最新的Arch Linux的Vultr服务器(请参阅本文。)正在运行的Web服务器,可以使用Apache或Nginx Sudo访问:命令需要

在Arch Linux上设置Team Fortress 2服务器

在Arch Linux上设置Team Fortress 2服务器

本教程说明了如何在Arch Linux上设置Team Fortress 2服务器。我假设您使用具有sudo访问权限的非root用户帐户登录

在Arch Linux上使用Makepkg

在Arch Linux上使用Makepkg

在Arch Linux上使用Makepkg可以避免系统污染,确保仅安装必要的依赖关系。

如何在Ubuntu 16.04上安装OpenSIPS控制面板

如何在Ubuntu 16.04上安装OpenSIPS控制面板

快速学习如何在Ubuntu 16.04上安装OpenSIPS控制面板,为VoIP提供商提供支持的功能。

在Fedora 28上安装Akaunting

在Fedora 28上安装Akaunting

学习如何在Fedora 28上安装Akaunting,一款适合小型企业和自由职业者的开源会计软件。

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

使用其他系统?Mailtrain是一个基于Node.js和MySQL / MariaDB构建的开源自托管新闻通讯应用程序。

诊断Minecraft服务器延迟和低TPS

诊断Minecraft服务器延迟和低TPS

了解導致Minecraft延遲的原因和解決方案,包括優化伺服器性能和減少滯後的步驟。

AI 能否應對越來越多的勒索軟件攻擊?

AI 能否應對越來越多的勒索軟件攻擊?

勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根

ReactOS:這是 Windows 的未來嗎?

ReactOS:這是 Windows 的未來嗎?

ReactOS,一個開源和免費的操作系統,這裡有最新版本。它能否滿足現代 Windows 用戶的需求並打倒微軟?讓我們更多地了解這種老式但更新的操作系統體驗。

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

Whatsapp 終於為 Mac 和 Windows 用戶推出了桌面應用程序。現在您可以輕鬆地從 Windows 或 Mac 訪問 Whatsapp。適用於 Windows 8+ 和 Mac OS 10.9+

人工智能如何將流程自動化提升到新的水平?

人工智能如何將流程自動化提升到新的水平?

閱讀本文以了解人工智能如何在小型公司中變得流行,以及它如何增加使它們成長並為競爭對手提供優勢的可能性。

macOS Catalina 10.15.4 補充更新引發的問題多於解決

macOS Catalina 10.15.4 補充更新引發的問題多於解決

最近,Apple 發布了 macOS Catalina 10.15.4 補充更新以修復問題,但似乎該更新引起了更多問題,導致 mac 機器變磚。閱讀這篇文章以了解更多信息