-
运维人必收藏的最全Linux服务器程序规范
除了网络通信外,服务器程序还必须考虑许多其他细节问题,零碎,但基本上都是模板式的。 Linux服务器程序一般以后台形式运行。后台程序又称守护进程。它没有控制终端,因而也不会意外接受用户输入。守护进程的父进程一般是init进程(pid=1)。 Linux服务器程序通常有一套日志系统,它至少能输出日志到文件,有的高级服务器可以输出日志到专门的UDP服务器。大部分后台进程都在/var/log下有自己的日志目录。 Linux服务器程序一般以某个专门的非root身份运行。mysqld, httpd, syslogd等后台进程,并分别有自己的运行账户mysql, apache, syslog。‘ Linux服务器通常时可配置的。服务器程序通常处理很多命令选项,如果一次运行的选项太多,则克拉一用配置文件来管理。绝大多数服务器程序都有配置文件并存放在/etc下。 Linux服务器程序通常在启动时生成一个PID文件并存入/var/run目录中,以记录该后台进程的PID。 Linux服务器程序通常需要考虑系统资源和限制,以预测自身能承受多大负荷,比如进程可用文件描述符总数和内存总量等。 01 日志 1.Linux系统日志: Linux提供一个守护进程来处理系统日志–syslogd, 升级版–rsyslogd。 rsyslogd守护进程可以接收用户进程输出日志,可以接受内核日志。 用户进程时通过调用syslog函数生成系统日志的。 该函数将日志输出到一个unix本地域socket类型(AF_UNIX)的文件/dev/log中,rsyslogd则监听该文件以获取用户进程的输出。 内核日志在以前的系统上时通过另一个守护进程rklogd来管理的,rsyslogd利用额外的模块实现了相同的功能。内核日志由printk等换树打印至内核环状缓存中。环状缓存的内容直接映射到/proc/kmsg。 rsyslogd通过读取该文件获得内核日志,默认调试信息保存在/var/log/debug,普通信息保存至/var/log/messages,内核信息:/var/log/kern.log。配置文件:/etc/rsyslog.conf,主要设置内核日志输入路径,是否接受UDP日志,及其监听端口(默认514 /etc/services)是否接受TCP日志及其监听端口,日志文件权限,包含哪些配置文件。 2.syslog() 应用程序使用syslog()与守护进程rsyslogd通信。 该函数采用可变参数(第二个参数message和第三个参数。。。)来结构化输出。 priority:设施值 (按位异或) 日志级别。设施值默认:LOG_USER,下面针对默认设施值,讨论日志级别。 2.1下面这个函数可以改变syslog的默认输出方式,进一步结构化日志内容 (1)ident:指定字符串将被添加到日志消息的日期和时间之后,通常设为程序的名字。 (2)logopt:对后续syslog调用的行为进行配置,它可取下列值的按位异或 (3)facility: 用来修改ysyslog默认设施值 此外,日志过滤也很重要,程序再开发阶段可能需要输出很多调试信息,而发布之后,我们又要将这些调试信息关闭,解决这个问题的方法并不是再程序发布之后,删除调试代码(日后可能还会用到),而是缉拿但地设置日志掩码,使日志级别大于日志掩码的日志被系统忽略。 2.2下面这个函数用于设置syslog的日志掩码。 maskpri:指定日志掩码值,该函数始终回成功,它返回调用进程先前的日志掩码值。 2.3关闭日志功能: 02 用户信息 1.UID, EUID, GID, EGID 用户信息对于服务器安全很重要,大多说服务器以root启动, 非root运行 基础知识: 一个进程拥有两个用户ID, UID, EUID, EUID存在的目的是为了方便资源的访问, 它使得运行程序的用户拥有该程序的有效用户权限,比如,su用来更改账户信息,但修改账户时su程序的所有者是root,在普通用户运行su程序时,其有效用户就是该程序的所有者root, 有效用户为root的进程称为特权进程,EGID与EUID类似,下面演示uid, euid区别: 将生成的可执行文件,所有者设置为root,并设置该文件set-user-id标志,然后运行。 从测试输出结果看,进程的uid是启动程序的用户id, 而euid是root。 2.切换用户 03 进程间关系 1.进程组: Linux下每一个进程都属于一个进程组,因此他们除了pid之外,还有进程组ID(PGID)。我们用如下函数获取指定进程组PGID. 成功返回pid, 失败-1,设置errno。 如果pid与pgid相同,则由pid指定的进程别设置为进程组首领:如果pid为0, 表示当前进程的PGID为pgid;如果pgid为0, 则使用pid作为目标pgid。setpid函数成功时返回0, 失败-1, 设置errno。 一个进程只能设置自己或者其子进程的PGID。并且, 当子进程调用exec系列函数后,我们也不能再在父进程中对他设置PGID。 2.会话 (1)一些有关联的进程将组成一个会话, 下面的函数用于创建一个会话: 该函数不能由进程组的首领进程调用,否则将产生一个错误。对于非首领的进程, 调用该函数不仅创建新会话, 而且有如下额外效果。 调用进程成为会话的首领,此时该进程时新会话的唯一成员。 新建一个进程组,其PGID就是调用进程的PID, 调用进程成为该组的首领。 调用进程将甩开终端(如果有) 该函数成功时返回新的进程组PGID, 失败-1, errno。 Linux进程并未提供所谓会话ID的概念, 但Linux系统认为它等于会话首领所在的进程组的PGID, (2)并提供了如下函数读取SID 3.用ps命令查看进程关系 执行ps命令可查看进程,进程组和会话之间的关系。 在bash_shell 下执行ps和less命令,所以ps和less命令的父进程时bash命令,这个可以从PPID(父进程PID)一列看出。 这三条命令创建了一个会话(SID是2962)和两个进程组(PGID:2962, 3102)bash命令的PID,PGID和SID都相同,显然它时会话的首领, 也就是组2962的首领。ps时3102的首领, 04 系统资源限制 Linux上运行的程序都会受到资源限制的影响,比如物理设备限制(cpu数量,内存数量等),系统策略限制(cup时间等),以及具体实现的限制(文件名最大长度)Linux系统资源限制可以通过如下一对函数来读取和设置: getrlimit , setrlimit rlimit 结构体定义如下: 成功返回0, 失败-1, 置errno rlim_t 是一个整数类型,它描述资源级别 rlim_cur 成员指定资源的软限制,建议性的,最好不要超越的限制,如果超越,系统可能向进程发送信号,并终止运行,如果当前进程CPU时间超过软限制,系统将向进程发送SIGXCPU信号;当文件尺寸超过其软限制时,系统将向进程发送SIZEXFSZ信号。 rlim_max 成员指定资源的硬限制。硬限制一般是软限制的上限,普通程序可以减小应限制,而只有以root身份运行的程序才能增加硬限制,此外我们可以使用ulimit命令修改当前shell环境下的资源限制(软/硬)这种修改对该shell启动的所有后续程序都有效,我们也可以通过修改配置文件来改变系统软限制和应限制,而这种修改时永久的。 05 改变工作目录和根目录 有些服务器程序好需要改变工作目录和根目录(web /var/www) 获取当前进程工作目录和改变进程的工作目录的函数: buf参数指向的内存用于存储当前工作目录的绝对路径,size指定其大小 如果当前目录的绝对路径超度(+1 (‘’))超过了size,则getcwd返回NULL,errno:ERANG。 chdir中path指向要切换到的目录。成功0, 失败-1 置errno。 改变进程根目录:chroot chroot并不改变进程的当前工作目录,调用chroot之后,仍需要调用chdir(“/”)来将工作转至新的工作目录,之后原来的文件描述符依然生效。所以可以利用早先打开的文件描述符来访问调用chroot之后不能直接访问的文件(目录). 06 服务器程序后台化 最后,如何在代码中让一个进程以守护进程的防止运行,守护进程的编写遵循一定的步骤,下面一个实例。 实际上,linux提供了完成同样功能的库函数: nochdir:传0则工作目录将被设置为”/”,否则继续使用当前工作目录。 noclose:传0标准输入输出,标准错误输出都被重定向到,dev/null,否则继续使用原来的设备,成功0, 失败-1 置error。 MMCloud15年的IDC运营经验,推出全球海外服务器租用托管、机柜租用、带宽租用、虚拟主机、云主机、CDN等业务,同时提供高防服务器安全服务,欢迎广大客户来电咨询!
-
如何在Ubuntu 16.04 LTS上安装Linux内核4.7.2
Linux内核4.7.2于2016年8月20日发布。本版本的亮点: 对ARM64、ARC、MIPS、s390、x86和PowerPC的改进 针对AMDGPU、ACPI、BCMA、蓝牙、GPIO、CLK、CPUFreq、EDAC、Intel i915、Nouveau、Radeon、Rockchip、I2C、InfiniBand、IOMMU、MD、MFD、iwlwifi、PHY、PINCTRL、SCSI、SPI、TTY、USB和Virtio的多个更新驱动程序。 改进了对Btrfs、CIFS、JBD2、NFS、OverlayFS和XFS的支持 增强核心内核、mm、核心网络和音轨 如果你喜欢生活在最前沿,或者有一个硬件组件无法工作,那么下面介绍如何在Ubuntu 16.04 LTS Xenial Xerus上快速安装Linux内核4.7.2,而无需手动编译。 在Ubuntu 16.04 LTS上安装Linux内核4.7.2 以下步骤也在Debian 8 Jessie、Deepin Linux 15.2、Linux Mint 18和初级操作系统Loki上进行了测试。 打开一个终端窗口(CTRL+ALT+T),运行以下命令从ubuntu网站下载Linux内核头文件和Linux内核映像二进制文件。 64位 wget内核。ubuntu。com/~内核ppa/mainline/v4。7.2/linux-headers-4.7.2-040702_4.7.2-040702.201608201334_全部。deb wget内核。ubuntu。com/~内核ppa/mainline/v4。7.2/linux-headers-4.7.2-040702-generic_4.7.2-040702.201608201334_amd64。deb wget内核。ubuntu。com/~内核ppa/mainline/v4。7.2/linux-image-4.7.2-040702-generic_4.7.2-040702.201608201334_amd64。黛布 32位 wget内核。ubuntu。com/~内核ppa/mainline/v4。7.2/linux-headers-4.7.2-040702_4.7.2-040702.201608201334_全部。deb wget内核。ubuntu。com/~内核ppa/mainline/v4。7.2/linux-headers-4.7.2-040702-generic_4.7.2-040702.201608201334_i386。deb wget内核。ubuntu。com/~内核ppa/mainline/v4。7.2/linux-image-4.7.2-040702-generic_4.7.2-040702.201608201334_i386。黛布 然后用dpkg安装上述所有内核包。 sudo dpkg-i linux-*4.7.2*。黛布 Grub启动菜单将在安装过程中自动更新。安装后,用以下方法重新启动计算机: sudo关机-现在关机 然后在Grub启动菜单中选择内核4.7.2。要检查内核版本,请运行以下命令: 内核版本 如果出于任何原因想卸载它,请将计算机重新启动到以前的内核版本,并运行以下命令以删除4.7.2。 sudo apt删除“linux-headers-4.7.2*”linux-image-4.7.2*” 就这样!和往常一样,如果你觉得这篇帖子很有用,那么就订阅我们的免费时事通讯,或者在Google+、Twitter或类似我们的Facebook页面上关注我们。谢谢光临!
-
如何在Ubuntu 16.04上安装最新的Linux内核4.8
Linux内核4.8于2016年10月2日发布。本教程将向您展示如何在Ubuntu 16.04 LTS上安装Linux内核4.8。 本版本中的亮点包括: 微软Surface 3触摸屏支持 支持AMD OverDrive技术,这意味着您可以使用Linux内核4.8超频AMD图形卡。 开源的Nouveau驱动程序现在已经初步支持Nvidia Pascal GPU架构。 支持Raspberry Pi 3 Broadcom BCM2837 SoC。 支持HDMI CEC(消费电子控制)。 Btrfs-PC增强功能 在Ubuntu 16.04 LTS上安装Linux内核4.8 以下步骤也在Debian 8 Jessie、Deepin Linux 15.32、Linux Mint 18和Elementary OS Loki上进行了测试。定于10月13日发布的Ubuntu 16.10默认包含Linux内核4.8。 启动一个终端窗口(CTRL+ALT+T),运行以下命令从Ubuntu网站下载Linux内核4.8头文件和Linux内核4.8映像二进制文件。 对于64位系统: wgethttp://kernel.ubuntu.com/~kernel ppa/mainline/v4。8/linux-headers-4.8.0-040800-generic_4.8.0-040800.20161002031_amd64。德布·韦杰http://kernel.ubuntu.com/~kernel ppa/mainline/v4。8/linux-headers-4.8.0-040800_4.8.0-040800.20161002031_all。德布·韦杰http://kernel.ubuntu.com/~kernel ppa/mainline/v4。8/linux-image-4.8.0-040800-generic_4.8.0-040800.20161002031_amd64。黛布 对于32位系统: wgethttp://kernel.ubuntu.com/~kernel ppa/mainline/v4。8/linux-headers-4.8.0-040800-generic_4.8.0-040800.20161002031_i386。德布·韦杰http://kernel.ubuntu.com/~kernel ppa/mainline/v4。8/linux-headers-4.8.0-040800_4.8.0-040800.20161002031_all。德布·韦杰http://kernel.ubuntu.com/~kernel ppa/mainline/v4。8/linux-image-4.8.0-040800-generic_4.8.0-040800.20161002031_i386。黛布 下载完成后,用dpkg安装上述所有内核包。 sudo dpkg-i linux*4.8*。黛布 Grub启动菜单将在安装过程中自动更新。安装后,使用以下命令重新启动计算机: sudo关机-现在关机 带有Linux内核4.8的Ubuntu引导项应该是Grub引导菜单中的第一个。要检查Linux内核版本,请运行以下命令: 内核版本 如何删除Linux内核4.8 如果出于任何原因想卸载它,请重新启动计算机,从Grub启动菜单中选择以前的内核版本,然后运行下面的命令删除4.8。 sudo apt删除“linux-headers-4.8*”linux-image-4.8*” 就这样!和往常一样,如果你觉得这篇帖子很有用,那么就订阅我们的免费时事通讯,或者在Google+、Twitter或类似我们的Facebook页面上关注我们。谢谢光临!
-
如何在Ubuntu 16.04、Ubuntu 16.10上轻松安装Linux内核4.10
本教程将向您展示如何使用名为Ubuntu内核升级实用程序(Ukuu)的图形程序在Ubuntu 16.04、Ubuntu 16.10、Linux Mint 18、基本操作系统和其他基于Ubuntu的发行版上安装/升级Linux内核4.10。 最新的主线Linux内核4.10于2017年2月19日发布,为用户带来了许多改进和增强。Ukuu是一个开源程序,用于在基于Ubuntu的发行版上安装最新的主线Linux内核。 如何在Ubuntu16.04、16.10、LinuxMint18和基本操作系统上安装UbuntuKernel升级实用程序 从官方PPA安装ukuu很容易。只需打开一个终端窗口(CTRL+ALT+T)并运行以下3个命令。 sudo add apt repository-y ppa:teejee2008/ppa sudo apt update sudo apt install ukuu 安装后,您可以从Unity Dash或首选应用程序启动器启动Ukuu。 如何使用Ukuu安装最新的Linux内核4.10 在第一次启动时,该实用程序将从内核获取内核列表。ubuntu。通用域名格式。 从下面的屏幕截图可以看出,它发现了Linux内核4.10。选择第一项并单击安装按钮。 输入密码后,它将从内核下载并安装Linux内核映像、Linux内核头文件的deb包。ubuntu。通用域名格式。 Grub启动菜单将在安装过程中自动更新。安装新内核后,使用以下命令重新启动计算机: sudo关机-现在关机 带有Linux内核4.10的Ubuntu引导项应该是Grub引导菜单中的第一个。要检查Linux内核版本,请运行以下命令: 内核版本 如何删除Linux内核4.10 如果新内核在您的计算机上造成问题,那么从GRUB菜单引导到以前的内核,并使用以下命令删除Linux内核4.10。 sudo apt删除linux-headers-4.10*linux-image-4.10* 如何禁用更新通知 默认情况下,ukuu通知守护程序在启动时运行。如果您不喜欢收到有关内核更新的通知,那么可以通过打开启动应用程序并取消选中Ukuu通知来禁用它。 结论 Ubuntu内核更新实用程序是安装最新主线Linux内核的好软件。它消除了从内核手动下载内核包的需要。ubuntu。com,这真是一件让人头疼的事。 就这样! 我希望本教程能帮助你在Ubuntu 16.04、Linux Mint 18、Elementary OS等平台上安装Linux内核4.10。一如既往,如果你觉得这篇文章有用,请订阅我们的免费时事通讯,或在Google+、Twitter或类似Facebook页面上关注我们。
-
如何在Ubuntu Linux上安装SimpleNote
本教程将向您展示如何在Ubuntu Linux上安装SimpleNote。SimpleNote是EverNote的开源替代品。它免费、轻量级,可用于Linux、Mac、Windows、Android、iOS和web。SimpleNote由Automatic开发,Automatic是WordPress博客平台背后的同一家公司。 SimpleNote功能: 设备之间的自动同步。 将笔记还原到以前的版本 将您的笔记分享给他人以供查看和编辑。 为你的笔记创建一个公共URL 用标签组织笔记 别上你的笔记,这样你就可以很容易地找到它们。 如何在Ubuntu Linux上安装SimpleNote 到SimpleNote官方网站下载deb软件包。对于其他发行版,还有一个通用的Linux二进制文件(.tar.gz)。 如果您更喜欢terminal,那么使用以下命令来简化deb包。 wgethttps://github.com/Automattic/simplenote-electron/releases/download/v1.0.8/simplenote-1.0.8.deb 下载后,用dpkg安装。 sudo dpkg-i simplenote-1.0.8。黛布 然后从Unity Dash或您喜欢的应用程序启动器启动。如果应用程序图标未显示,请尝试注销并重新登录。 你需要注册一个新帐户。 可以将默认的白色主题更改为黑色主题。 其他Linux笔记应用 学生在Linux上安装的最佳笔记应用
-
在Ubuntu 16.04/14.04上安装最新的Pinta图像编辑器
Pinta是一款免费的开源图像编辑器,专为非专业用户设计,他们正在寻找GIMP的简单绘图替代品。Pinta图像编辑器包括所有基本的绘图工具(画笔、铅笔、形状),能够徒手绘制和常见的图像编辑功能和效果。它也适用于多层。 这个简单的图像编辑器可以在Linux、BSD、OS X和Windows上运行,是一款完美的画作。net在Linux上的替代方案。 在Ubuntu 16.04/14.04上安装Pinta图像编辑器 最新的稳定版本Pinta 1.6于2015年3月2日发布。要安装它,请打开终端窗口(Ctrl+Alt+T)并运行以下命令: sudo-apt更新&&;sudo apt安装pinta 对于Linux初学者,双符号告诉bash(Linux上的默认shell程序),只有在上一个命令完成后,才能运行下一个命令。上面的命令将从Ubuntu软件库安装Pinta 1.6。 如果你是那种喜欢生活在前沿的人,你可以通过官方的PPA(个人软件包档案)安装Pinta的每日版本(v1.7)。在终端中执行这两行命令。 sudo add apt repository ppa:pinta maintainers/pinta daily sudo apt update&&;sudo apt安装pinta 您还可以使用此PPA在Linux Mint上安装Pinta,这是一个基本操作系统,因为这两个发行版都基于Ubuntu。 安装后,从Unity Dash启动。 Ubuntu 16.04上的Pinta 1.7。 你还知道其他什么免费画画项目吗?在下面的评论部分分享。一如既往,如果你觉得这篇帖子有用,请订阅我们的免费时事通讯,或者关注我们的谷歌+、推特或Facebook页面。
-
如何在Debian 9 Stretch上安装Skype for Linux Beta版
Skype for Linux beta 5.3于2017年5月31日发布。这是一款基于网络的Skype客户端的专有软件。本教程将向您展示如何通过官方Skype Linux客户端存储库在Debian 9 Stretch上安装Skype。 Skype for Linux beta 5.3的新增功能: 使用'libsecret'而不是'gnome keyring'来存储您的凭据 按页面获取大型联系人列表 错误修复和改进 对于开源和关注隐私的用户来说,Wire应用是一个很好的选择,但也有很多人因为某种原因无法退出Skype。 如何在Debian 9 Stretch上安装Skype for Linux Beta版 我们可以在官方Skype Linux客户端存储库的Debian 9上安装Skype。请注意,Skype for Linux beta版目前仅适用于64位系统。32位用户可以在Skype社区发送请求。 下面是如何安装它。打开终端窗口,切换到root。 su - 运行以下命令将Skype Linux客户端存储库添加到Debian 9 Stretch系统。 echo "deb [arch=amd64] https://repo.skype.com/deb stable main" | tee /etc/apt/sources.list.d/skype-stable.list 然后使用以下两个命令获取并安装Skype公钥,以便APT package manager可以验证从此repo下载的软件包的完整性。 wget https://repo.skype.com/data/SKYPE-GPG-KEY apt-key add SKYPE-GPG-KEY 因为这个repo使用的是HTTPS协议,所以我们还需要安装apt-transport-HTTPS包。 apt install apt-transport-https 现在只需更新我们的软件源代码并安装大约50MB大小的skypeforlinux软件包。 apt update apt install skypeforlinux 安装后,您可以从应用程序菜单或使用下面的命令启动Skype for Linux beta。 skypeforlinux Debian 9 Stretch上的Skype带有Ambiant MATE主题 当新的Skype for Linux版本发布时,只需运行apt update和apt upgrade命令即可更新到最新版本。 我希望本教程能帮助您在Debian 9 Stretch上安装Skype。
-
如何通过VNC在KVM VPS上手动安装Arch Linux
本教程介绍如何通过VNC在KVM VPS上手动安装Arch Linux。当你的主机提供商不提供Arch Linux一键安装时,这很有用。Arch Linux将被用作服务器操作系统,所以我只为服务器安装基本组件,而不安装GUI。 如果你想一键安装Arch Linux,我推荐Vultr,这是一家提供低成本、高性能VPS的托管公司。使用Vultr,您不必执行以下步骤。 在执行以下步骤之前,我建议您先获取KVM VP的默认网关IP,因为在安装过程中需要在网络配置文件中输入此IP。它通常以1结尾,比如192.168.0.1。要找到确切的IP地址,您可以先通过VPS控制面板中的一键安装功能在VPS上安装Ubuntu或CentOS,然后启动并发出以下命令: ip route show “默认通过”之后的IP地址是网关的IP地址。您还可以向VPS提供商咨询网关IP。 现在开始安装。 步骤1:从Arch Linux ISO启动VP 在VPS控制面板中,找到虚拟光盘驱动器并将Arch Linux ISO插入其中。有时,您可能需要将Arch Linux的直接下载链接提供给您的主机提供商,并要求他们为您安装它。 然后建立到VPS的VNC连接。您可以从主机提供商处获取VNC登录信息。之后,单击控制面板中的启动按钮启动VPS。 通常,您必须在VNC窗口中按F12之类的键。这允许您选择VPS将从哪个设备启动。选择光盘驱动器,以便VPS将引导Arch Linux ISO映像。 KVM虚拟机的默认固件称为SeaBIOS。 现在,Arch Linux引导菜单向您致意。选择第一个选项以引导到Arch Linux live环境。 第2步:连接到互联网 进入Arch Linux live环境后,请检查是否可以访问Internet。 ping google.com 如果收到谷歌服务器的回复,请继续执行步骤3。如果没有Internet连接,请按照以下步骤操作。 在KVM环境中,主机提供商为您提供静态IP地址。KVM VPS与网关(KVM主机)建立静态以太网连接,因此可以访问外部互联网。 首先将示例以太网静态网络配置文件复制到/etc/netctl/目录。 cp /etc/netctl/examples/ethernet-static /etc/netctl 然后编辑这个文件。 nano /etc/netctl/ethernet-static 将此文件更改为以下内容。您可能需要调整红色文本。 Interface=ens3 Connection=ethernet IP=static Address=('your-VPS-public-IP-address') Netmask=('255.255.255.0') Gateway=('gateway-IP') DNS=('8.8.8.8') 保存并关闭文件。接下来,关闭ens3接口。 ip link set dev ens3 down 现在加载以太网静态网络配置文件。 netctl start ethernet-static 你现在应该可以上网了。 ping google.com 第3步:创建分区 如果希望在/dev/sda上有一个MBR分区表,请使用以下命令: parted /dev/sda mklabel msdos 本教程创建一个GPT分区表: parted /dev/sda mklabel gpt 现在在/dev/sda上创建分区 parted /dev/sda 如果在上一步中创建了GPT分区表,则需要创建1MiB的bios_grub分区,因为KVM虚拟机的默认固件是seaBIOS,这是一个免费的开源bios实现。稍后,Grub 2引导加载程序将安装在bios_Grub分区内。 确保bios_grub分区从磁盘开始至少启动31 KiB(63个扇区),因为前63个扇区是为MBR引导代码保留的。然而,如果我们调整分区,使bios_grub分区可以从磁盘开始的1MiB开始,这将给我们带来性能优势。 使用以下命令创建bios_grub分区: mkpart primary 1MiB 2MiB 将其设置为bios_grub分区 set 1 bios_grub on 然后创建第二个分区。100%意味着它将使用磁盘的以下所有空间。本教程使用单个根分区。如果需要高级设置,可以进行调整。 mkpart primary 2MiB 100% 退出分离。 q 现在将第二个分区格式化为ext4文件系统。 mkfs -t ext4 /dev/sda2 在/mnt目录中装入第二个分区。 mount /dev/sda2 /mnt 第4步:安装基本的东西 首先打开镜像列表文件,为软件安装选择一个好的镜像。 nano /etc/pacman.d/mirrorlist 要选择镜像,只需将首选镜像的地址复制到文件开头,然后保存并关闭此文件。 现在使用pacstrap将基本系统安装到安装在/mnt目录下的第二个分区上。 pacstrap -i /mnt base 之后,生成一个fstab文件。 genfstab -U -p /mnt >> /mnt/etc/fstab 进入基本系统。 arch-chroot /mnt 生成区域设置。 nano /etc/locale.gen 找到我们。UTF-8 UTF-8线路,并从该线路上移除#标志。保存这个文件。 生成/etc/locale。conf文件并设置en_US。UTF-8作为默认语言环境。 echo LANG=en_US.UTF-8 > /etc/locale.conf export LANG=en_US.UTF-8 设置服务器的时区。我把它定在纽约。 ln -s /usr/share/zoneinfo/America/New_York /etc/localtime core、extra和community存储库对于Arch Linux服务器来说已经足够好了,它们在默认情况下是启用的,所以通常不需要配置存储库。如果出于任何原因需要对其进行配置,请使用nano文本编辑器编辑/etc/pacman。conf文件。 nano /etc/pacman.conf 之后,为root用户设置密码。 passwd root 安装Grub和os prober。 pacman -S grub os-prober 将Grub引导加载程序安装到第一个磁盘。因为我们使用的是BIOS固件,所以目标应该是i386-pc。 grub-install /dev/sda --target=i386-pc 生成Grub启动菜单。 grub-mkconfig -o /boot/grub/grub.cfg 退出chroot环境。 exit 重新启动KVM VPS。 shutdown -r now 第5步:安装后 现在KVM VPS已重新启动,请通过VNC再次连接。以root用户身份登录。运行以下命令: ping google.com 您的新Arch Linux服务器可能未连接到Internet。 因此,我们必须创建到KVM主机(网关)的静态以太网连接。在这里,我们必须对以太网静态网络配置文件进行一些修改。 首先将示例以太网静态网络配置文件复制到/etc/netctl/目录。 cp /etc/netctl/examples/ethernet-static /etc/netctl 然后编辑这个文件。 nano /etc/netctl/ethernet-static 进行以下更改。 Description="A basic static ethernet connection" Interface=ens3 Connection=ethernet IP=static Address=('your-vps-public-IP-address/24') #Routes=('192.168.0.0/24 via 192.168.1.2') Gateway=('your-gateway-IP') DNS=('8.8.8.8') Arch Linux中的默认以太网接口名为ens3,您可以使用ip地址命令来查找。将/24添加到您的VPS公共IP地址。/24相当于255.255.255.0。这里必须使用CIDR符号。 保存并关闭该文件。关闭ens3接口。 ip link set dev ens3 down 加载以太网静态网络配置文件。 netctl start ethernet-static 要在下次启动时自动加载配置文件,请运行: netctl enable ethernet-static 现在,您应该可以从Arch Linux服务器访问Internet了。 ping google.com 现在创建一个用户并将其添加到wheel、storage、power组。 useradd -m -g users -G wheel,storage,power -s /bin/bash <username> 设置此用户的密码。 passwd <username> 安装sudo实用程序。 pacman -S sudo 编辑/etc/suoders文件。 EDITOR=nano visudo 找到这一行: # %wheel ALL=(ALL) ALL 删除#签名并保存文件。这意味着允许轮子组的成员使用sudo。 安装SSH服务器 pacman -S openssh 编辑sshd_配置文件。 sudo nano /etc/ssh/sshd_config 将这两行添加到此文件末尾。调整用户名。 AllowUsers <username> PermitRootLogin no 第一行意味着允许新创建的用户通过ssh连接到Arch Linux服务器。第二种方法是禁用root ssh登录。这是Linux服务器安全的基本要求。保存并关闭此文件。 启动SSH服务器 systemctl start sshd 启动Arch Linux时启用SSH服务器自动启动 systemctl enable sshd 现在在您自己的计算机上打开一个SSH客户端,并尝试SSH到您的Arch Linux服务器中。您应该能够以普通用户的身份ssh登录,而不能以root用户的身份ssh登录。 ssh连接到服务器后,更新Arch-Linux。 sudo pacman -Syu 以下是您可能需要安装的一些工具。 sudo pacman -S wget unzip parted htop 启用NTP网络时间同步。 sudo timedatectl set-ntp true 检查NTP状态 timedatectl status 恭喜!您刚刚在KVM VPS上安装了Arch Linux。最后,订阅Arch Linux最新新闻源是一个好主意,因为可能会有一些重要的更改,您需要按照这些说明更新软件包。 一如既往,如果你觉得这篇文章有用,那么请订阅我们的免费时事通讯,或者在Google+、Twitter或类似我们的Facebook页面上关注我们。谢谢光临!