本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。
更换操作系统问题
Linux系统使用问题
在Linux实例中执行yum命令失败,提示“HTTP Error 404 -Not Found Trying other mirror”错误怎么办?
在Linux系统的ECS实例中,执行yum search mysql命令提示“File "/usr/bin/yum", line 30”错误怎么办?
Linux实例使用su命令切换用户时,提示“su: failed to execute /bin/bash: Permission denied”错误怎么办?
Linux实例中使用Apache Bench进行压力测试时报错“apr_pollset_poll: The timeout specified has expired”的解决方案
Debian 8系统的ECS实例中,执行“apt-get update”命令提示“404 Not Found”错误怎么办?
为什么Linux系统的ECS实例中出现大量“TCP: time wait bucket table overflow”错误?
Linux系统的ECS实例中,普通用户使用su命令切换root用户时提示“su: Authentication failure”错误怎么办?
Linux系统的ECS实例的系统、内存或进程出现异常,查看系统日志提示"page allocation failure"错误怎么办?
Windows系统使用问题
Red Hat镜像使用问题
SUSE镜像问题
CentOS镜像问题
Ubuntu镜像问题
FreeBSD镜像问题
Fedora镜像问题
Alibaba Cloud Linux系统问题
Alibaba Cloud Linux 通用问题
Alibaba Cloud Linux 3
Alibaba Cloud Linux 2
GuestOS常见问题
Linux操作系统(GuestOS)常见问题与解决方案
无法正常启动
无法正常登录
无法访问实例
网络不通
性能问题
Windows操作系统(GuestOS)常见问题与解决方案
无法正常登录
检查Windows网卡是否打开
Windows实例中系统网卡不可用,会导致无法登录实例。具体操作,请参见Windows实例中系统网卡处于不可用状态。
检查Windows系统的3389端口是否开放
使用远程桌面连接RDP服务,可以方便地管理和操作Windows实例。如果您未开启远程桌面连接RDP服务,则无法进行远程桌面连接。具体操作,请参见Windows实例如何启动远程桌面连接RDP服务。
检查virtio驱动的版本是否过低
如果virtio驱动版本过低,可能导致无法登录实例。具体操作,请参见更新Windows实例的virtio驱动。
检查防火墙是否设置正确
防火墙设置不当,可能导致无法登录实例。具体操作,请参见Windows系统防火墙策略配置指南。
性能问题
CPU使用率是否过高
如果CPU持续保持高使用率,则会对系统稳定性和业务运行造成影响。具体操作,请参见Windows实例CPU使用率较高问题的排查与处理。
检查Windows操作系统的版本
微软已经于2020年01月14日停止对Windows Server 2008和Windows Server 2008 R2操作系统提供支持。因此阿里云不再对使用上述操作系统的ECS实例提供技术支持。如果您有使用上述操作系统的ECS实例,请尽快更新至Windows Server 2012或以上版本。当前支持的镜像请参见公共镜像概述,您也可以在售卖页查看。
检查磁盘容量
Windows系统有时会出现C盘的磁盘空间不断减小的情况,导致系统不能正常操作。具体操作,请参见Windows实例中C盘可用空间减少的排查思路。
安装AD域控制器失败问题
其他问题
附录
如何更换操作系统(系统盘)?
您可以通过更换ECS实例的镜像来更换操作系统(更换系统盘)。
更换操作系统(系统盘)后,原来的旧系统盘会被释放,系统盘上的所有数据会被清除。建议您在操作之前为系统盘创建快照备份数据。
账号A的服务器制作镜像后,能给账号B更换操作系统使用吗?
可以。账号A需要先共享自定义镜像给账号B,然后账号B再使用镜像更换操作系统(更换系统盘)。
更换操作系统时,如果镜像中包含数据盘,可以通过该镜像更换操作系统吗?
您可以使用包含数据盘的镜像更换操作系统,仅更换原实例的系统盘,不影响原实例的数据盘。
如果更换操作系统使用的是包含数据盘的自定义镜像,请确保业务中系统盘和数据盘之间没有依赖关系,或变更后的系统盘对数据盘的操作不影响您的业务流程。例如,如果您的业务中存在系统盘向数据盘的读写数据操作,更换操作系统后,由于系统盘变动,可能导致业务出现读写数据盘异常等问题。
更换操作系统与重新初始化系统盘有什么差异?
主要差异如下表所示:
差异项 | 重新初始化系统盘 | 更换系统盘(操作系统) |
功能差异 | 初始化会还原云服务器的初始化状态,初始化前后操作系统不变。 | 将现有的操作系统类型切换为其他类型的操作系统。 |
对系统盘的影响 |
|
|
对数据盘的影响 | 不会影响数据盘。 | 不会影响数据盘。 |
对快照的影响 |
|
|
计费情况 | 初始化系统盘不收费。初始化前后操作系统不变,计费项不发生改变。 | 更换操作系统本身免费,以下情况会收取费用: |
通过更换操作系统扩容系统盘失败,如何处理?
通过更换操作系统(系统盘)对系统盘进行扩容时,可能会因为超时导致分区扩容不生效。针对未扩容成功的系统,请参考扩容分区与文件系统(Linux)手动扩展分区。该方式只是扩展系统盘分区,不会影响系统的版本。
更换操作系统时,如果选不到目标镜像并且提示“该实例为非IO优化实例”怎么办?
问题原因
实例和镜像的I/O优化属性需要匹配,即I/O优化实例只能使用IO优化镜像,非I/O优化实例只能使用非I/O优化镜像。因此,当实例与镜像的I/O优化属性不匹配时,在更换操作系统的过程中,将无法选择目标镜像,并会提示“该实例为非I/O优化实例,在更换操作系统时只能选择支持非I/O优化的镜像”。
解决方案
现售的实例类型均为I/O优化实例,建议您更换为新的实例类型。
选择支持I/O优化实例的镜像来更换操作系统(更换系统盘)。
您可以通过DescribeInstances接口的IoOptimized参数查询实例的I/O属性。
您可以通过DescribeImages接口的IsSupportIoOptimized参数查询镜像的I/O属性。
Windows Server with Container镜像中包含的容器运行时是什么类型?
由于微软对容器运行时支持策略变更(详细信息请参考Supported Container Runtime on Windows Server),阿里云ECS自2024年开始更新的Windows Server with Container镜像不再预装MCR运行时库,替换为开源的containerd容器运行时库。如果用户对MCR有需求,请自行从Mirantis购买和安装Mirantis Container Runtime。
自2024年03月01日开始,阿里云ECS产品提供的Windows Server with Container镜像中包含以下容器运行相关组件:
Windows Server容器功能组件,不支持Hyper-V隔离。详细信息请参考 Windows and containers。
Containerd运行时库,组件版本为1.7.13。更多信息,请参考containerd。
管理容器的命令行界面nerdctl.exe,组件版本为1.7.13。更多信息,请参考nerdctl。
Windows容器网络CNI插件nat.exe,组件版本为1.0.0。更多信息,请参考windows-container-networking。
为什么Windows系统在执行userdata时写入数据失败?
问题描述
执行userdata写入数据到 C:\Users\Administrator\Desktop\userData_test.txt
路径失败,提示未能找到路径。
问题原因
在Windows系统中,C:\Users
及其子目录是用户配置文件和数据的默认存储位置,需要登录系统后才可以访问,而在系统初始化执行userdata阶段实际还未登录系统,所以写入数据到C:\Users
目录会失败。
解决方案
修改userdata中写入数据的路径为其他路径,例如:
[bat]
echo "userData" > C:\userData_test.txt
具体操作,请参见自定义实例初始化配置。
Windows Server 2025镜像有哪些限制?
vCPU:1 ~ 640
内存:2 GiB ~ 48 TiB
ECS实例规格
由于兼容性问题,目前以下ECS实例规格暂不支持该镜像:
6代AMD实例规格(通用型实例规格族g6a、计算型实例规格族c6a和内存型实例规格族r6a)
使用特定KMS域名激活VPC网络中的Windows Server系统?
VPC网络中,您需要使用特定的KMS域名来激活Windows系统实例。具体操作,请参见如何使用KMS域名激活VPC网络中的Windows实例。
VPC网络中,您需要使用特定的KMS域名来激活Windows系统实例。具体操作,请参见VPC网络下Windows实例激活方法。
VPC网络中,您需要使用特定的KMS域名来激活Windows系统实例。具体操作,请参见VPC网络下Windows实例激活方法。
实例的操作系统为Windows Server,现在提示Windows副本不是正版怎么办?
需要激活Windows。具体操作,请参见使用KMS域名激活ECS实例的正版Windows Server系统。
频繁调用Windows系统API:timeBeginPeriod导致系统时间异常,如何解决?
在Windows Server 2008上频繁调用系统API:timeBeginPeriod,导致Windows系统时间变慢或变快。您可以参考如下操作进行解决:
可能会造成系统时间精度变化的系统函数,请参见微软官方文档。
远程登录ECS实例。
具体操作,请参见使用Workbench终端连接登录Windows实例(RDP)。
下载工具。
解压CheckTimeBeginPeriod.zip。
解压bin.zip并进入bin目录,然后双击.exe文件。
64位操作系统,双击InjectDllx64.exe。
32位操作系统,双击InjectDllx86.exe。
打印的进程就是调用timeBeginPeriod的进程。
根据业务实际情况,停止或更新调用timeBeginPeriod的程序。
如果问题仍未解决,您可以直接提交工单寻求技术支持。
Windows云服务器使用IE浏览器打开网站提示“增强安全配置正在阻止来自下列网站内容”如何处理?
在Windows操作系统的云服务器ECS或者轻量应用服务器中,使用IE浏览器打开网站时,提示“增强安全配置正在阻止来自下列网站内容”报错,解决方法请参见Windows云服务器使用IE浏览器打开网站提示“增强安全配置正在阻止来自下列网站内容”如何处理?。
更换Windows实例的系统盘或者重新初始化系统盘,为什么userdata不会自动执行?
问题原因
Windows系统的ECS实例正常启动后,会在C:\ProgramData\aliyun\vminit\INSTANCE_实例ID}\METASERVER
路径下创建缓存文件,该文件用于标记实例是否已经初始化。如果您通过该ECS实例创建了自定义镜像,并用这个自定义镜像重新初始化系统盘或更换系统盘,在C:\ProgramData\aliyun\vminit\INSTANCE_ID\METASERVER
路径下会找到与当前重置实例ID一致的缓存文件。由于Vminit组件会根据缓存文件的存在与否来判断ECS实例是否是初次启动。如果找到与当前重置实例ID一致的缓存文件,Vminit组件会判断ECS实例不是初次启动,将不会自动执行userdata脚本。
Vminit在创建Windows实例时会自动安装,为Windows实例在启动阶段提供了初始化配置的能力,类似于Linux系统的cloud-init。关于Vminit组件的更多信息,请参见初始化工具介绍。
解决方案
建议您在通过该ECS实例创建自定义镜像前,检查并删除C:\ProgramData\aliyun\vminit\INSTANCE_{实例ID}\METASERVER
路径下的缓存文件。
使用Red Hat Enterprise Linux操作系统过程中遇到问题,如何获取技术支持?
与传统的登录Red Hat系统提交售后请求不同的是,您可以直接提交工单寻求技术支持,阿里云售后工程师会协助解决您遇到的问题。如果涉及阿里云无法解决的Red Hat Enterprise Linux操作系统问题,阿里云会将问题提交至Red Hat,由Red Hat负责提供最终的技术支持。
阿里云提供的Red Hat Enterprise Linux镜像包含哪些Red Hat官方订阅?
阿里云提供的Red Hat镜像包含Red Hat Enterprise Linux(RHEL)产品订阅。相关软件仓库源如下:
RHEL 7
Red Hat Enterprise Linux 7 Server - Extras from RHUI (RPMs)
Red Hat Enterprise Linux 7 Server - Optional from RHUI (RPMs)
Red Hat Enterprise Linux 7 Server from RHUI (RPMs)
RHEL 8&RHEL 9
BaseOS
AppStream
最新的RHEL 8&RHEL 9镜像中,还将默认预置CodeReady Linux Builder和Supplementary两个仓库。如果您购买的RHEL 8&9实例中需要使用这两个软件仓库,请联系阿里云售后获取。
更多关于RHEL 8&RHEL 9的软件仓库源及软件包列表详情,请参考RHEL 8软件包清单和RHEL 9软件包清单。
阿里云Red Hat镜像仅提供RHEL产品软件包,如果您需要安装RHEL以外产品的软件包(例如Red Hat Satellite、Red Hat Ceph Storage),需要您自行购买红帽订阅,并注册主机,订阅相关产品。
购买阿里云上的Red hat操作系统显示未订阅(Unknown),是什么原因?
这是正常现象。您在购买Red Hat Enterprise Linux镜像时,可以从阿里云提供的更新源中获取Red Hat的更新。该方式与传统模式的区别在于,您将不会获得单独的Red Hat账号,用于从Red Hat提供的更新源获取更新。因此,您在实例内部执行subscription-manager
命令查看订阅状态时,如下回显信息所示,系统将是未订阅状态。
+-------------------------------------------+
System Status Details
+-------------------------------------------+
Overall Status: Unknown
System Purpose Status: Unknown
SUSE操作系统提供哪些服务支持?
阿里云线上售卖的SLES(SUSE Linux Enterprise Server)操作系统会与SUSE更新源保持定时同步。使用SLES公共镜像创建的实例,其操作系统支持服务包含在阿里云的企业级支持服务中。如果您购买了企业级支持服务,可以提交工单获取技术支持,阿里云工程师团队会协助您解决SLES操作系统上发生的问题。
SLES for SAP常见问题
SUSE Linux Enterprise Server for SAP Applications(SLES for SAP)是专为SAP系统定制的商业Linux操作系统。以下是使用过程中常见的问题:
是否可以查看Alibaba Cloud Linux 2组件的源代码?
Alibaba Cloud Linux 2遵循开源协议。您可以通过yumdownloader工具或者在阿里云开源站点下载源代码包,也可以从GitHub站点下载Alibaba Cloud Linux 2内核源代码树,详情请参见GitHub。
Alibaba Cloud Linux 2是否与历史版本的Aliyun Linux向后兼容?
Alibaba Cloud Linux 2完全兼容Aliyun Linux 17.01。
如果您使用了自行编译的内核模块,可能需要在Alibaba Cloud Linux 2上重新编译才能正常使用。
Alibaba Cloud Linux 2上支持运行哪些第三方应用程序?
Alibaba Cloud Linux 2与CentOS 7.6.1810发行版保持二进制兼容,在此基础上提供差异化的操作系统功能。
与CentOS及RHEL相比,Alibaba Cloud Linux 2的优势体现在:
满足您的操作系统新特性诉求,更快的发布节奏,以及更新的Linux内核、用户态软件及工具包。
开箱即用,最简用户配置,最短时间服务就绪。
最大化用户性能收益,与云基础设施联动优化。
与RHEL相比没有运行时计费,与CentOS相比有商业支持。
Alibaba Cloud Linux 2怎样保证数据安全?
Alibaba Cloud Linux 2二进制兼容CentOS 7.6.1810/RHEL 7.6,遵从RHEL的安全规范。具体体现在以下几个方面:
使用业内标准的漏洞扫描及安全测试工具,定期做安全扫描。
定期评估CentOS 7的CVE补丁,修补操作系统的安全漏洞。
与安全团队合作,支持阿里云现有的OS安全加固方案。
使用CentOS 7相同的机制,发布用户安全警告及补丁更新。
Alibaba Cloud Linux 2是否支持数据加密?
Alibaba Cloud Linux 2保留CentOS 7的数据加密工具包,并确保CentOS 7与KMS协同工作的加密方案可以在Alibaba Cloud Linux 2得到支持。
怎样设置Alibaba Cloud Linux 2的有关权限?
Alibaba Cloud Linux 2属于与CentOS 7同源的操作系统。CentOS 7的管理员可以无缝地使用完全一致的管理命令做相关的权限设置,Alibaba Cloud Linux 2的默认权限设置与阿里云CentOS 7镜像完全一致。
在阿里云ECS中运行Alibaba Cloud Linux是否收费?
Alibaba Cloud Linux镜像本身是免费的,但是您需要为ECS实例等其他资源的支付费用。
Alibaba Cloud Linux支持哪些阿里云ECS实例类型?
Alibaba Cloud Linux支持大部分阿里云ECS实例类型,包括弹性裸金属服务器。
Alibaba Cloud Linux不支持使用Xen虚拟机平台的实例。
Alibaba Cloud Linux是否支持32位应用程序和库?
暂不支持。
Alibaba Cloud Linux是否支持图形化界面(GUI)?
不承诺支持。您可以参考官方CentOS自行安装GUI,具体操作,请参见为Linux实例安装图形化界面。
在Linux系统的ECS实例中,执行wget命令时提示“command not found”错误怎么办?
问题现象
在Linux实例中执行wget
命令时提示“command not found”,执行yum install wget
命令时提示“already installed and latest version”。
问题原因
检查/usr/bin
目录中没有wget
命令文件,但存在wge
命令的文件,可能是由于命令文件被重命名导致报错。
解决方案
请您参考以下步骤进行操作。
远程连接Linux实例。
具体操作,请参见通过密码或密钥认证登录Linux实例。
执行以下命令查询
wge
命令的路径。whereis wge
命令返回结果如下,表示
wge
命令路径为/usr/bin/wge
。wge:/usr/bin/wge
根据上述的路径,执行以下命令重命名即可。
cp /usr/bin/wge /usr/bin/wget
重新执行
wget
命令,若不再提示以上报错信息,则表示问题已修复。
在Linux实例系统的ECS实例中,使用wget命令下载时提示“Permission denied”错误怎么办?
问题现象
在Linux系统的ECS实例中,使用wget
下载时提示以下信息。
wget bash: /usr/bin/wget: Permission denied
问题原因
在Linux实例系统的ECS实例中,wget
命令权限为000,没有读、写及执行权限。
解决方案
请您参考以下步骤进行操作。
远程连接Linux实例。
具体操作,请参见通过密码或密钥认证登录Linux实例。
执行以下命令查看
wget
命令权限。ls -l /usr/bin/wget
命令返回结果如下,说明
wget
命令权限为000,没有读、写、执行权限。-------- 1 root root 366800 Oct 31 2014 /usr/bin/wget
执行以下命令,查看
/usr/bin/wget
目录属性。lsattr /usr/bin/wget
命令返回结果如下,表示
/usr/bin/wget
目录属性为i
(不允许在该目录下新建和删除文件)。----i--------e- /usr/bin/wget
执行以下命令,移除
/usr/bin/wget
目录i
属性。chattr -i /usr/bin/wget
执行以下命令,对
/usr/bin/wget
目录进行授权。chmod 755 /usr/bin/wget
重新执行
wget
命令,若不再提示以上报错信息,则表示问题已修复。
安装AD域控制器失败,提示“安装Active Directory域服务二进制文件失败”错误怎么办?
问题现象
在Windows系统的ECS实例中,安装AD域控制器失败,提示“安装Active Directory域服务二进制文件失败”错误。
问题原因
通过打开事件查看器发现报错,Remote Registry
服务被禁止,无法启动该服务。
解决方案
请参考以下操作启动Remote Registry
服务。
远程连接Windows实例。
具体操作,请参见通过密码或密钥认证登录Windows实例。
依次选择开始 > 运行,输入
services.msc
,然后单击确认。在服务窗口中,双击
Remote Registry
服务,进入Remote Registry属性窗口,设置以下选项。在启动类型区域,选择自动选项。
在服务状态区域,单击启动,确保
Remote Registry
服务正常启动。
单击确定,保存设置。
安装AD域控制器时,提示“此计算机具有动态分配的IP地址”怎么办?
问题现象
在Windows系统的ECS实例中安装AD域控制器时,提示“此计算机具有动态分配的IP地址”。
问题原因
该Windows系统的ECS实例上至少有一个物理网络适配器未将静态IP地址分配给其IP属性。
解决方案
远程连接Windows实例。
具体操作,请参见通过密码或密钥认证登录Windows实例。
安装AD域控制器。具体操作,请参见ECS实例搭建Windows系统AD域。
在安装AD域时弹出的静态IP分配选项框中,单击是。
LoopBack使用了DHCP方式,可以在未分配静态IP地址的情况下继续执行操作。
安装AD域控制器时,提示“0x0000232B RC0DE_NAME_ERROR”错误代码怎么办?
问题现象
在Windows系统的ECS实例中安装AD域控制器时,提示“0x0000232B RCODE_NAME_ERROR”错误代码。
问题原因
可能是由于DNS服务器中IP地址配置错误导致。
解决方案
请参考以下操作将Slave的内外网网卡的DNS服务器全部修改为Master的私网地址。
远程连接Windows实例。
具体操作,请参见通过密码或密钥认证登录Windows实例。
进入Internet协议版本4(TCP/IPv4)属性窗口,修改DNS服务器地址,然后单击确定。
说明更改DNS服务器地址为Master实际的私网地址。
检查是否能Ping通DNS服务器IP地址。
安装AD域控制器时,提示“找不到网络路径”错误怎么办?
问题现象
在Windows系统的ECS实例中安装AD域控制器时,提示“找不到网络路径”错误。
问题原因
可能有以下几点原因导致:
AD域控制器和客户端的
TCP/IP NetBIOS Helper
和Remote Registry
服务没有启动。客户端与AD域控制器的DNS配置错误。
客户端和AD域控制器的SID造成冲突。
防火墙及安全软件进行了拦截。
解决方案
请参考以下操作进行排查。
修改客户端SID
请参考以下操作修改客户端SID。
远程连接Windows实例。
具体操作,请参见通过密码或密钥认证登录Windows实例。
下载修改客户端SID的PowerShell脚本。
下载地址:AutoSysprep.ps1
脚本来源:阿里云官方
打开CMD,输入PowerShell切换至Windows PowerShell界面。
说明如果您的实例操作系统是64位,则不能使用32位的PowerShell(即Windows PowerShell (x86)),否则会报错。
切换至脚本存储的路径,执行如下命令,查看脚本工具说明。
.\AutoSysprep.ps1 -help
执行如下命令,重新初始化服务器的SID。
.\AutoSysprep.ps1 -ReserveHostname -ReserveNetwork -SkipRearm -PostAction "reboot"
初始化完成后,会重启实例,您需要注意以下事项。
IP地址的获取方式会从DHCP变成固定IP地址,请确保该固定IP地址和开始设置前ECS实例的IP地址一致。您也可以将获取方式改回DHCP,以自动获取控制台中为ECS实例分配的主私有IP地址。
说明请不要在控制台修改ECS实例的主私有IP地址,否则IP地址变化会导致访问异常。
初始化SID后,云服务器防火墙的配置被修改成微软的默认配置,导致云服务器无法Ping通。您需要关闭防火墙来宾或公用网络,或者放行需要开放的端口。下图表示防火墙来宾或公用网络的状态是已连接。
打开控制面板修改防火墙设置,关闭来宾或公用网络防火墙。
关闭后,可以Ping通服务器。
允许客户端通过防火墙等安全软件
请参考Windows系统防火墙策略配置指南允许客户端通过。
如何处理CentOS DNS解析超时?
问题原因
因CentOS 6和CentOS 7的DNS解析机制变动,导致2017年02月22日以前创建的ECS实例或使用2017年02月22日以前的自定义镜像创建的CentOS 6和CentOS 7实例可能出现DNS解析超时的情况。
解决方案
请按下列步骤操作修复此问题:
下载脚本fix_dns.sh。
将下载的脚本放至CentOS系统的/tmp目录下。
运行bash /tmp/fix_dns.sh命令,执行脚本。
脚本的作用和逻辑说明如下:
如何检查与修复CentOS 7实例和Windows实例IP地址缺失问题?
问题原因及解决方案,请参见检查与修复CentOS 7 实例和Windows实例IP地址缺失问题。
CentOS 7.9 ARM系统无法生成dump文件如何处理?
问题现象
CentOS 7.9 ARM系统宕机后,通过ls /var/crash
查询dump文件,没有生成vmcore
文件。
问题原因
CentOS 7.9 ARM系统带有CONFIG_ARM64_USER_VA_BITS_52=y
特性的内核,系统中原生自带的makedumpfile软件版本与内核版本不匹配,因此无法生成dump文件。
解决方案
该方案仅适用于已正确开启kdump服务的系统。如果您没有开启kdump服务且按照本文操作修复问题,请在proc/cmdline
文件中手动配置crashkernel
参数。
运行以下命令,下载相应的kexec-tools包。
wget http://mirrors.aliyun.com/centos-vault/7.9.2009/os/Source/SPackages/kexec-tools-2.0.15-51.el7.src.rpm
运行以下命令,安装RPM包。
rpm -ivh kexec-tools-2.0.15-51.el7.src.rpm
运行以下命令,下载patch补丁文件。
cd /root/rpmbuild/SOURCES wget https://ecs-image-tools.oss-cn-hangzhou.aliyuncs.com/patch/rhelonly-kexec-tools-2.0.20-makedumpfile-arm64-Add-support-for-ARMv8.2-LVA-52-bi.patch
运行以下命令,修改kexec-tools.spec文件。
打开kexec-tools.spec文件。
cd /root/rpmbuild/SPECS/ vi kexec-tools.spec
按
i
键进入编辑模式,并在文件相应位置加入如下两行内容。Patch999: rhelonly-kexec-tools-2.0.20-makedumpfile-arm64-Add-support-for-ARMv8.2-LVA-52-bi.patch %patch999 -p1
添加位置如下:
按
Esc
键退出编辑模式,并输入:wq
保存退出。
运行以下命令,检查安装依赖。
yum-builddep kexec-tools.spec
运行以下命令,构建RPM包。
yum -y install rpm-build rpmbuild -ba kexec-tools.spec
运行以下命令,安装修改后的RPM包。
cd /root/rpmbuild/RPMS/aarch64 rpm -ivh kexec-tools-2.0.15-51.el7.aarch64.rpm
如果再次发生宕机,通过ls -lh /var/crash
查询dump文件,可以正常生成vmcore
文件,表示问题已解决。
CentOS/RedHat 7.x升级Systemd重启进入救援模式如何处理?
CentOS 7或RedHat 7系列的系统在升级Systemd至systemd-219-71.el7版本后,重启实例会进入救援模式,这样会导致系统网络服务和一般的应用软件服务异常。具体解决方案请参见CentOS 7.X或RedHat 7.X升级Systemd并重启后会进入救援模式。
如何解决RedHat 8.1/8.2镜像在弹性裸金属服务器实例规格族的ECS实例下启动慢的问题?
在弹性裸金属服务器实例规格族的ECS实例中,RedHat 8.1/8.2镜像相较于RedHat 7镜像启动时长多1~2分钟。为解决该问题,您可以在RedHat 8.1/8.2系统的/boot/grub2/grubenv文件中,将内核启动参数
console=ttyS0 console=ttyS0,115200n8
修改为console=tty0 console=ttyS0,115200n8
,然后重启服务器使配置生效。
为什么Ubuntu某些版本的ECS实例中启动安骑士进程后系统负载较高?
在某些版本的Ubuntu(例如Ubuntu 18.04)的ECS实例中,启动安骑士进程(AliYunDun)后,系统平均负载较高。
具体的原因和解决方案,请参见Ubuntu 18.04版本的ECS实例中启动安骑士进程后系统负载较高。
FreeBSD系统如何打补丁编译内核?
阿里云的FreeBSD公共镜像已为内核添加了补丁,已满足系列V及以上的实例规格族的启动需求。具体的实例规格族可通过DescribeInstanceTypeFamilies接口的Generation
参数查询。
以下情况可能导致系统无法正常启动,您可以通过FreeBSD内核源码打补丁编译内核的方式,避免或解决系统无法启动的问题。
使用非阿里云提供的FreeBSD镜像及相关自定义镜像创建ECS实例时,系列V及以上实例规格族的ECS实例可能出现无法正常启动的情况。
使用FreeBSD公共镜像创建ECS实例,并使用了freebsd-update等更新内核补丁,可能会导致系列V及以上实例规格族的ECS实例无法正常启动。
FreeBSD 13及以上不需要打补丁。本示例以FreeBSD 12.3为例,介绍如何使用FreeBSD内核源码打补丁编译内核。
下载并解压FreeBSD内核源码。
wget https://mirrors.aliyun.com/freebsd/releases/amd64/12.3-RELEASE/src.txz -O /src.txz cd / tar -zxvf /src.txz
下载补丁包。
本示例中,为virtio驱动打补丁包
0001-virtio.patch
。cd /usr/src/sys/dev/virtio/ wget https://ecs-image-tools.oss-cn-hangzhou.aliyuncs.com/0001-virtio.patch patch -p4 < 0001-virtio.patch
复制内核文件,并编译安装内核。
make -j<N>
表示指定编译时的并行数,需要根据您执行编译的环境配置来决定。例如,1 vCPU环境建议设置-j2
,即vCPU核数与变量N的比值为1:2
。cd /usr/src/ cp ./sys/amd64/conf/GENERIC . make -j2 buildworld KERNCONF=GENERIC make -j2 buildkernel KERNCONF=GENERIC make -j2 installkernel KERNCONF=GENERIC
编译完成后,删除源码。
rm -rf /usr/src/* rm -rf /usr/src/.*
FreeBSD系统在KVM环境无法找到系统盘,如何处理?
问题现象
FreeBSD系统在KVM虚拟化环境上VNC登录时,无法找到系统盘,无法进入系统,如下图所示。
解决方案
在VNC中输入?,查看相关rootfs的ufsid。
继续输入
ufs:/dev/ufsid/5565b5a09045****
,按回车即可正常进入操作系统内部。输入用户名和密码,登录系统。
运行以下命令,查看
/etc/fstab
配置。cat /etc/fstab
如下图所示,说明
/etc/fstab
配置是UUID的挂载方式。但是FreeBSD系统并不支持UUID的挂载方式,需要修改为ufsid方式。将FreeBSD系统的挂载方式修改为ufsid。
运行以下命令,打开
/etc/fstab
。vi /etc/fstab
按i键进入编辑模式。
修改
UUID=5565b5a09045****
为/dev/ufsid/5565b5a09045****
。修改完成后按Esc键,并输入
:wq
后按下回车键,保存并退出。
运行以下命令,重启系统使配置生效。
reboot
为什么我无法使用ssh-rsa签名算法的SSH密钥对远程连接Fedora 33 64位系统的实例?
当您使用Fedora 33 64位操作系统的ECS实例时,如果登录凭证设置的是ssh-rsa签名算法的SSH密钥对,可能无法顺利使用SSH远程连接实例。您可以通过以下任一方式解决该问题:
将ssh-rsa签名算法的SSH密钥对替换为ECDSA签名算法等其他签名算法的SSH密钥对。
在系统中运行update-crypto-policies --set LEGACY命令,将加密策略
POLICY
切换为LEGACY
,即可继续使用ssh-rsa签名算法的SSH密钥对。
为什么使用Fedora CoreOS镜像创建部分实例后,CPU信息只有实例规格的一半?
使用Fedora CoreOS镜像创建部分实例(例如,通用型实例规格族g5)后,执行lscpu命令查看CPU信息,
On-line CPU(s) list
的总个数只有实例实际规格的一半。例如,创建实例时选择的CPU为2核,则On-line CPU(s) list
个数只有1个。示例如下图所示。说明On-line CPU(s) list
参数值代表CPU编号,图中示例表示只有0号CPU可用。这是因为Fedora CoreOS镜像的内核默认配置了
mitigations=auto,nosmt
启动参数,会自动为有漏洞的系统禁用同步多线程技术SMT(Simultaneous Multi-Threading ),导致可用CPU减半。mitigations=auto,nosmt
参数可以通过执行cat /proc/cmdline命令查看。关于SMT的更多信息,请参见Automatically disable SMT when needed to address vulnerabilities和Policy for disabling SMT。
Linux操作系统(GuestOS)常见问题与解决方案附录
检查fstab文件中的块设备信息是否存在?
如果实例中存在块设备,但块设备信息在fstab文件中不存在,重启系统时可能导致系统无法正常启动。您必须移除
/etc/fstab
文件中不存在的块设备信息。具体操作,请参见如何移除Linux实例“/etc/fstab”文件中不存在的块设备。检查fstab文件中块设备是否正确挂载?
如果未正确挂载块设备,重启系统时可能导致系统无法正常启动。具体操作,请参见Linux实例中存在未正确挂载的磁盘。
检查fstab文件内容格式是否正确?
如果
/etc/fstab
配置文件存在格式错误,重启系统时可能导致系统无法正常启动。具体操作,请参见Linux实例的“/etc/fstab”配置文件存在格式错误。使用fsck命令检查系统文件
如果文件系统损坏,可能会导致实例无法正常启动。具体操作,请参见Linux实例的文件系统检查与修复。
检查limits设置是否正确
Linux系统的
/etc/security/limits.conf
配置文件可以对系统资源进行限制,如果系统中nofile
参数值超过了nr_open
参数值,则可能导致无法远程连接实例。具体操作,请参见Linux实例调整limits文件中nofile参数值的方法。检查关键系统用户(即root账号)的密码是否存在
实例中关键的系统用户信息丢失,会导致无法登录Linux实例。具体操作,请参见Linux实例中关键的系统用户不存在。
检查系统关键文件格式
一些关键文件的格式如果不是Unix格式,可能会导致无法登录Linux实例。具体操作,请参见Linux实例中修改文件为Unix格式的方法。
检查SSH的访问权限配置是否正确
Linux实例中关于SSH的访问权限配置异常,会导致无法登录Linux实例。具体操作,请参见SSH的访问权限异常导致无法远程连接Linux实例。
检查SSH访问所需要的关键文件或目录是否存在
Linux实例中SSH访问所需要的关键文件或目录丢失,例如实例中缺少
sshd_config
配置文件,可能会导致无法登录Linux实例。具体操作,请参见检查Linux实例是否存在SSH服务所需的必备文件或目录。检查大页内存设置是否过大
当实例的大页内存设置过大,可能会导致无法登录Linux实例,需要调整
/etc/sysctl.conf
文件中大页内存的值。具体操作,请参见调整Linux实例大页内存的方法。检查操作系统是否OOM
如果存在OOM问题,可能会导致无法登录Linux实例。具体操作,请参见如何处理Linux实例中的OOM问题?。
检查系统防火墙是否打开
如果服务器开启了防火墙,并设置了屏蔽外界访问的规则,那么在远程连接该服务器时,可能会导致访问失败。具体操作,请参见管理 Linux 实例的系统防火墙。
检查TCP SACK是否开启
当Linux实例未开启TCP SACK时,可能会影响Linux实例的网络性能。具体操作,请参见Linux实例开启TCP SACK的方法。
检查UDP缓存是否溢出
在Linux实例内如果存在UDP缓存溢出的现象,可能会影响Linux实例的网络性能,导致无法登录Linux实例。具体操作,请参见Linux实例UDP缓存溢出导致无法远程连接。
检查SELinux是否开启
如果系统启用了SELinux服务,可能在远程连接实例时报错。具体操作,请参见Linux实例中由于SELinux服务开启导致SSH远程连接异常。
无法通过SSH或VNC登录实例
您可以卸载异常实例的系统盘,然后挂载到其他实例作为数据盘,在其他实例中进行相应的操作。具体操作,请参见卸载Linux实例的系统盘并挂载到其他ECS实例作为数据盘的方法。
连接实例时报错
使用root用户通过SSH登录Linux实例时,报
Permission denied, please try again
错误。具体操作,请参见通过SSH客户端登录Linux实例时提示“Permission denied, please try again”错误怎么办?。检查NAT环境内核参数是否正确
本地网络通过NAT共享的方式上网,并且Linux系统相关内核参数配置异常,导致无法通过SSH连接Linux实例,访问该实例上的HTTP服务也出现异常。具体操作,请参见Linux系统内核配置问题导致NAT环境访问实例出现异常。
检查进程是否启动以及常见业务端口是否处于监听状态
如果您无法访问Linux实例中的服务,可能的原因之一是该服务对应的进程未处于运行中。具体操作,请参见Linux实例启动常见服务并查询端口监听状态的方法。
检查DHCP配置是否正确
ECS实例默认使用DHCP为弹性网卡自动分配IP地址,并获得IP地址租约到期时间。如果网卡配置文件存在错误,或者网卡对应的dhclient进程未运行可能引发Linux实例的DHCP服务出现异常,导致实例网络不通。具体操作,请参见Linux实例中本地网卡的DHCP配置检查与修复。
检查网络相关进程是否存在
Linux系统内对应的网络进程不存在,且网络配置为DHCP,则会在IP地址的租约到期之后,出现无法续租导致网络中断的问题。具体操作,请参见Linux系统网络进程不存在。
检查网卡多队列是否开启
网卡多队列指实例规格支持的最大网卡队列数。单台ECS实例CPU处理网络中断存在性能瓶颈时,您可以将实例中的网络中断分散给不同的CPU处理,从而提升性能。具体操作,请参见网卡多队列。
检查TCP backlog是否溢出
在Linux实例内如果存在TCP backlog缓存溢出的现象,可能会影响Linux实例的网络性能,导致无法登录Linux实例。具体操作,请参见Linux实例TCP backlog缓存溢出导致无法远程连接实例。
CPU使用率是否过高
如果CPU持续保持高使用率,则会对系统稳定性和业务运行造成影响。具体操作,请参见Linux实例CPU使用率或负载较高问题的排查与处理。
磁盘无法写入文件
随着业务的发展和应用数据增长,您可以在线扩容指定云盘的容量,包括系统盘和数据盘。具体操作,请参见步骤一:扩容云盘容量或者离线扩容云盘。
基于弹性裸金属实例规格的ECS实例,系统生成crash dump文件失败如何解决?
问题原因及解决方案,请参见部分ECS实例生成crash dump文件失败如何解决?。
Linux操作系统内核回写时出现softlockup异常如何解决?
部分低版本的Linux操作系统内核在回写(writeback)文件缓存时,会出现softlockup异常。具体的解决方案,请参见Linux操作系统内核回写时出现softlockup异常的解决方案。
在ECS实例内删除cgroup出现softlockup异常如何解决?
具体的解决方案,请参见在ECS实例内删除cgroup出现softlockup异常的解决方案。
公共镜像自带FTP上传吗?
不自带,需要您自己安装配置。具体操作,请参见搭建FTP站点(Windows)和搭建FTP站点(Linux)。
为什么ECS默认没有启用虚拟内存或Swap说明?
Swap分区或虚拟内存文件,是在系统物理内存不够用的时候,由系统内存管理程序将那些很长时间没有操作的内存数据,临时保存到Swap分区或虚拟内存文件中,以提高可用内存额度的一种机制。
但是,如果在内存使用率已经非常高,而同时I/O性能也不是很好的情况下,该机制其实会起到相反的效果。阿里云ECS云盘使用了分布式文件系统作为云服务器的存储,对每一份数据都进行了强一致的多份拷贝。该机制在保证用户数据安全的同时,由于3倍增涨的I/O操作,会降低本地磁盘的存储性能和I/O性能。
综上,为了避免当系统资源不足时进一步降低ECS云磁盘的I/O性能,Windows系统实例默认没有启用虚拟内存,Linux系统实例默认未配置Swap分区。
如何在公共镜像中开启kdump?
公共镜像中默认未开启kdump服务。若您需要实例在宕机时,生成core文件,并以此分析宕机原因,请参见以下步骤开启kdump服务。本步骤以公共镜像CentOS 7.2为例。实际操作时,请以您的操作系统为准。
设置core文件生成目录。
运行vim /etc/kdump.conf打开kdump配置文件。vim命令使用详情,请参见Vim编辑器。
设置path为core文件的生成目录。本示例中,在/var/crash目录下生成core文件,则path的设置如下。
path /var/crash
保存并关闭/etc/kdump.conf文件。
开启kdump服务。
根据操作系统对命令的支持情况,选择开启方式。
方法一:依次运行以下命令开启kdump服务。
systemctl enable kdump.service
systemctlstartkdump.service
方法二:依次运行以下命令开启kdump服务。
chkconfig kdump on
service kdump start
方法三:如果您的服务器已安装云助手,可参考如何解决实例迁移后的宕机问题?开启kdump服务。
如何设置Linux系统的ECS实例的静态IP地址?
您需要远程连接ECS实例进行设置。具体操作,请参见如何在Linux实例中设置静态IP地址。
如何在Linux实例中自定义配置DNS?
具体操作,请参见如何在Linux实例中自定义配置DNS。
Linux操作系统配置IPv6地址后,安装了NTP服务的服务器时间无法同步,如何处理?
问题现象
在服务器上执行
ntpq -p
同步时间时,返回超时,如下图所示。解决方案
说明本方法适用于CentOS 7及以下、Ubuntu 20.04及以下、Anolis OS(ANCK\RHCK)、Alibaba Cloud Linux、Debian等系列操作系统。
远程连接Linux实例。
具体操作,请参见使用Workbench登录Linux实例。
运行以下命令,修改/etc/ntp.conf配置文件。
vi /etc/ntp.conf
按i键进入编辑模式。
在文件中添加
restrict -6 ::1
内容,如下图所示。修改完成后按Esc键,并输入
:wq
后按下回车键,保存并退出。运行以下命令,重启NTP服务。
systemctl restart ntp
为什么使用自定义镜像创建的实例,热插拔云盘/网卡会失败?
问题现象
热插拔云盘指实例处于运行中状态时挂载/卸载云盘;热插拔网卡指实例处于运行中状态时绑定/解绑弹性网卡。
阿里云支持热插拔云盘和网卡,但热插拔是否成功需要操作系统内核(Kernel)支持。如果操作系统内核不支持,则会出现以下问题:
挂载云盘或绑定弹性网卡后,在操作系统内部查看不到对应的设备。
卸载云盘或解绑弹性网卡失败。
解决方案
普通云服务器和裸金属服务器的热插拔需要内核支持的功能不同,建议内核都支持PCI(Peripheral Component Interconnect)、ACPI(Advanced Configuration and Power Management Interface)热插拔功能(除CentOS 5等低版本系统外,一般都默认开启)。您可以通过以下步骤查看内核是否开启PCI/ACPI热插拔功能。
远程连接Linux实例。
具体操作,请参见使用Workbench登录Linux实例。
执行如下命令,查看当前实例内核版本。
uname -r
返回信息如下所示,表示当前系统内核版本为
3.10.0-1127.19.1.el7.x86_64
。执行如下命令,查看
/boot
目录下的文件。ll /boot
返回信息如下所示,
config-3.10.0-1127.19.1.el7.x86_64
即为系统内核的配置文件。执行如下命令,查看系统内核配置文件。
cat /boot/config-3.10.0-1127.19.1.el7.x86_64
当以下配置项都是
y
,表示该功能已经编译进内核,操作系统支持对应的热插拔。CONFIG_HOTPLUG_PCI_PCIE=y CONFIG_HOTPLUG_PCI=y CONFIG_HOTPLUG_PCI_ACPI=y
当某个配置项是
is not set
,表示内核未编译该特性,需要重新编译内核以支持该特性。当某个配置项是
m
,表示编译成module,例如以下CONFIG_HOTPLUG_PCI_ACPI
是编译成module的,需要加载对应的module。CONFIG_HOTPLUG_PCI_PCIE=y CONFIG_HOTPLUG_PCI=y CONFIG_HOTPLUG_PCI_ACPI=m
以CentOS 5.x操作系统2.6的内核为例,
CONFIG_HOTPLUG_PCI_ACPI
对应的module为acpiphp.ko,如果需要加载,需要执行modprobe acpiphp
命令。如果加载失败,您可以升级高版本内核或停止实例后进行冷插拔。重要不建议随意自行升级云服务器的内核和操作系统版本。如果需要升级内核,请参见避免Linux实例升级内核系统无法启动的方法。
操作系统内核错误后可能出现实例关机,如何处理?
问题现象
当操作系统内出现非预期内核错误(kernel panic)时,加载第二内核(捕获内核)进行内存转储生成Kdump日志。由于与裸金属实例规格存在兼容性问题,在第二内核启动过程中磁盘识别失败,导致Kdump日志采集失败并且第二内核启动失败,实例处于关机状态,后续需要在控制台重新启动实例。
更多关于裸金属实例规格的信息,请参见实例规格族。
问题原因
裸金属实例使用操作系统自带的Kdump服务生成dump文件时可能失败。
ebm*6代系列裸金属实例,在选用如下镜像时会出现该问题。
CentOS 8.3及以下CentOS版本
Ubuntu 16/18
Debian 10
Alibaba Cloud Linux 2的
4.19.91-24.al7
之前的内核版本(4.19.91-24.al7
版本已修复)
ebm*7代系列裸金属实例,在选用Debian 10镜像时会出现该问题。
解决方案
CentOS等镜像
建议更换更高版本的操作系统。具体操作,请参见更换操作系统(更换系统盘)。
Alibaba Cloud Linux 2镜像
建议按照以下操作,升级内核版本到
4.19.91-24.al7
及以上。远程登录ECS实例。
具体操作,请参见使用Workbench登录Linux实例。
运行以下命令,查询内核版本。
uname -r
运行以下命令,升级内核版本。
sudo yum update kernel
运行以下命令,重启ECS实例,以使新的内核版本生效。
sudo reboot