ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

银河麒麟V10 SP2运维实战:YUM源、时间同步、NFS与系统救援全指南

银河麒麟V10 SP2运维实战:YUM源、时间同步、NFS与系统救援全指南 简介本资源是一份面向Linux系统运维工程师与国产化信创环境实施人员的麒麟服务器实战排障手册聚焦银河麒麟高级服务器操作系统V10 SP2在生产部署中高频遇到的安装配置与运行问题。内容覆盖单用户模式进入、本地YUM源搭建、FTP/NFS/ISCIS服务配置、NTP时间同步、KVM虚拟化、Bond网卡绑定、VNC远程桌面、软RAID创建、防火墙管理及系统激活、密码重置、GRUB/BIOS密码恢复等核心场景兼具操作步骤与排错逻辑适合中级以上运维人员快速定位与解决实际问题。资源为单个PDF文件大小2.76MB结构清晰、图文结合、可读性强目录即见完整知识脉络。已有634人学习下载内容源自乙方交付甲方的标准化技术文档经实践验证具备强落地性与复用价值。1. 麒麟服务器运维不是“装完就跑”一份覆盖重装、密码恢复、本地源搭建、时间同步、NFS/KVM/Bond/VNC 全流程的实战手册你刚接手一台银河麒麟高级服务器操作系统 V10 SP2Kylin-Server-10-SP2-Release-Build09-20210524系统已激活但忘了 root 密码或者刚重装完发现 yum install 一堆报错提示“Could not resolve host”又或者客户要求在内网环境部署 NFS 共享存储却卡在showmount: clnt_create: RPC: Port mapper failure更别提 KVM 虚拟机启动失败、Bond 网卡绑定后双网卡不生效、VNC 连上黑屏、chrony 同步状态始终是^?……这些不是玄学是麒麟 V10 SP2 在真实政企/信创交付现场高频踩坑点。这份《常见问题总结》不是理论文档而是桂安俊工程师基于 2021 年 11 月实际交付项目整理的「血泪操作清单」——它把 16 类高频故障拆解成可复制、可验证、带参数、带路径、带报错对照的执行步骤。适合两类人一是刚从 CentOS/RHEL 转型麒麟的运维老手需要快速建立「麒麟语感」二是信创项目交付工程师面对甲方临时加的「今晚必须通电上线」需求能直接抄命令、改 IP、跑脚本。它不讲 Linux 基础原理只告诉你在哪改、改什么、为什么这么改、改错会报什么错、怎么回滚。2. 本地 YUM 源搭建从单机 file 源到跨网段 HTTP 源的完整闭环银河麒麟 V10 SP2 默认使用外网源但在无外网、高安全等级或批量部署场景下本地 YUM 源是刚需。这份手册提供了两种生产级方案file 方式适用于单台服务器离线维护HTTP 方式则支撑整个内网集群共享更新。二者核心差异不在命令本身而在路径权限、服务依赖和防火墙策略的组合校验。很多翻车案例根源不是命令写错而是/mnt挂载后未cp -r到持久目录导致重启后镜像丢失或是 HTTP 源配置了baseurlhttp://192.168.1.21/repo/却忘了systemctl restart httpd后没验证curl -I http://192.168.1.21/repo/repodata/repomd.xml是否返回 200。下面分步拆解。2.1 file 本地源单机离线安装的最小可行方案该方案本质是将 ISO 镜像内容固化为本地文件系统路径并通过yum的file://协议读取。关键在于「挂载→拷贝→配置→验证」四步闭环缺一不可。# 步骤1挂载 ISO 并拷贝到持久路径注意/mnt 是临时挂载点重启即失效 mkdir -p /mnt/iso mount -o loop Kylin-Server-10-SP2-x86-Release-Build09-20210524.iso /mnt/iso mkdir -p /opt/kylin-repo cp -r /mnt/iso/* /opt/kylin-repo/ umount /mnt/iso # 步骤2备份原 repo 并新建本地配置文件名必须以 .repo 结尾 cd /etc/yum.repos.d mkdir backup mv *.repo backup/ cat kylin-local.repo EOF [localrepo] nameKylin Server 10 SP2 Local Repo baseurlfile:///opt/kylin-repo gpgcheck0 enabled1 EOF # 步骤3清理缓存并验证源可用性重点看 repolist 输出是否含 localrepo yum clean all yum repolist | grep localrepo逻辑说明baseurlfile:///opt/kylin-repo中的三个斜杠是绝对路径标识符/opt/kylin-repo必须存在且包含repodata/目录由cp -r自动带入。gpgcheck0关闭 GPG 签名校验因麒麟官方 ISO 内部包未签名或签名密钥未预置若需开启校验需额外导入RPM-GPG-KEY-Kylin并设gpgcheck1。enabled1是开关设为 0 则该源被忽略。2.2 HTTP 共享源支撑 50 节点内网集群的稳定分发方案当多台服务器需共用同一套软件包时HTTP 源是标准做法。其难点不在httpd安装而在于 SELinux 上下文、目录权限、防火墙端口放行三者的协同。麒麟 V10 SP2 默认启用 SELinux若仅chmod 755 /var/www/html/repo而不修复上下文httpd进程将无法读取该目录导致浏览器访问http://IP/repo/返回 403 Forbidden。# 步骤1安装并配置 httpd麒麟 SP2 自带无需额外源 yum install -y httpd systemctl enable httpd systemctl start httpd # 步骤2准备 repo 目录并修复 SELinux 上下文关键 mkdir -p /var/www/html/repo cp -r /opt/kylin-repo/* /var/www/html/repo/ chcon -R -t httpd_sys_content_t /var/www/html/repo/ # 步骤3防火墙放行 80 端口必须 reload 才生效 firewall-cmd --permanent --add-port80/tcp firewall-cmd --reload # 步骤4验证 HTTP 可访问在服务端执行 curl -I http://localhost/repo/repodata/repomd.xml | head -1 # 应返回 HTTP/1.1 200 OK # 步骤5客户端配置所有需使用该源的服务器均执行 cd /etc/yum.repos.d mkdir backup-client mv *.repo backup-client/ cat kylin-http.repo EOF [httprepo] nameKylin Server 10 SP2 HTTP Repo baseurlhttp://192.168.1.21/repo gpgcheck0 enabled1 EOF yum clean all yum repolist参数说明chcon -R -t httpd_sys_content_t将/var/www/html/repo目录及其子目录的 SELinux 类型设为httpd_sys_content_t这是httpd进程读取静态内容的默认类型。若跳过此步sestatus -v查看 SELinux 状态时httpd进程的 AVC 拒绝日志会大量刷屏。baseurl中的 IP 地址192.168.1.21必须替换为 HTTP 服务端的实际内网 IP且该 IP 需能被所有客户端路由可达。2.3 避坑YUM 源配置的四大典型翻车现场现象、原因、解决一条一条对齐真实交付中的报错现象yum repolist显示0 packagesbaseurl路径确认无误原因ISO 挂载后未cp -r到持久目录/mnt/iso下内容在重启后消失file://指向空目录解决检查/opt/kylin-repo/repodata/repomd.xml是否存在且非空若不存在重新挂载 ISO 并执行cp -r现象浏览器访问http://192.168.1.21/repo/返回 403 Forbidden原因SELinux 上下文未修复或/var/www/html/repo目录权限不足如chmod 700解决执行ls -Z /var/www/html/repo确认类型为httpd_sys_content_t执行chmod 755 /var/www/html/repo若仍失败临时setenforce 0测试是否 SELinux 导致现象客户端yum install lrzsz报错Cannot download http://192.168.1.21/repo/...: Cannot connect to host原因客户端网络不可达服务端 IP或服务端防火墙未放行 80 端口或httpd服务未启动解决在客户端执行ping 192.168.1.21在服务端执行ss -tlnp | grep :80确认httpd监听执行firewall-cmd --list-ports确认 80/tcp 已放行现象yum install成功但安装的软件包版本与 ISO 中不符如 ISO 含kernel-4.19.90-*.rpm却装了kernel-4.19.113-*.rpm原因baseurl指向了错误路径如/repo/末尾多斜杠/repo//或repodata/目录损坏解决检查baseurl末尾无多余斜杠进入/var/www/html/repo/repodata/执行createrepo --update .重建元数据需先yum install createrepo3. 时间同步实战ntp、chrony、crondntpdate 三种模式的选型与落地麒麟 V10 SP2 默认预装chrony但很多老系统管理员习惯ntp而部分自动化脚本仍依赖ntpdate。三者并非互斥而是适用场景不同ntp适合稳定、低延迟的局域网时间服务器chrony更适应网络抖动大、间歇性断网的环境如移动办公终端crondntpdate则是轻量级定时强制校时方案。手册中给出的配置看似简单但实际部署中90% 的时间不同步问题源于防火墙 UDP 123 端口未放行、服务端未监听、或客户端未指定正确 server 地址。3.1 chrony 方案麒麟 SP2 官方推荐抗网络抖动能力强chrony是麒麟 V10 SP2 的默认时间服务其优势在于即使网络短暂中断也能通过 driftfile 记录时钟漂移率恢复后快速收敛。配置核心是服务端allow指令与客户端server指令的匹配。# 服务端配置IP: 192.168.1.100 # 编辑 /etc/chrony.conf确保以下行存在且未注释 cat /etc/chrony.conf EOF # 允许内网客户端同步 allow 192.168.1.0/24 # 使用硬件时钟作为参考可选 hwclockfile /etc/adjtime EOF systemctl restart chronyd # 验证监听状态 ss -uln | grep :123 # 客户端配置所有需同步的服务器 # 编辑 /etc/chrony.conf注释掉原有 server 行添加 sed -i /^server/d /etc/chrony.conf echo server 192.168.1.100 iburst /etc/chrony.conf systemctl restart chronyd # 验证同步状态输出含 ^* 表示成功 chronyc sources -v | grep \^\*逻辑说明iburst参数表示初始阶段发送 8 个包加速同步allow 192.168.1.0/24限定可同步的客户端网段提升安全性hwclockfile指向硬件时钟校准文件避免系统重启后时间跳变。chronyc sources -v输出中^*表示当前选定的主时间源^表示备用源^-表示未使用源。3.2 ntp 方案传统稳定适合对时钟精度要求极高的场景ntp在麒麟 SP2 中需手动安装其配置更显式但对网络稳定性要求更高。若ntpq -p输出中*号长时间不出现大概率是服务端未启动ntpd或防火墙阻断。# 服务端IP: 192.168.1.100 yum install -y ntp ntpdate # 编辑 /etc/ntp.conf确保有如下行 echo restrict default kod nomodify notrap nopeer noquery /etc/ntp.conf echo restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap /etc/ntp.conf echo server 127.127.1.0 /etc/ntp.conf echo fudge 127.127.1.0 stratum 10 /etc/ntp.conf systemctl enable ntpd systemctl start ntpd # 客户端 yum install -y ntp ntpdate # 编辑 /etc/ntp.conf注释原 server添加 sed -i /^server/d /etc/ntp.conf echo server 192.168.1.100 iburst /etc/ntp.conf systemctl restart ntpd # 验证等待 2-5 分钟* 号出现即成功 ntpq -p参数说明restrict指令控制访问权限nomodify notrap禁止客户端修改服务端时间server 127.127.1.0是本地时钟源stratum 10设为较低层级避免被其他 NTP 服务器当作权威源。ntpq -p中*表示当前同步源表示候选源-表示拒绝源。3.3 crondntpdate 方案轻量级定时强制校时规避服务长期运行风险对于不允许长期运行时间服务的合规场景如等保三级要求定期校时crondntpdate是最简方案。其本质是绕过守护进程每次执行独立校时命令。# 客户端执行无需安装 ntp仅需 ntpdate yum install -y ntpdate # 添加定时任务每10分钟校时一次并写入硬件时钟 (crontab -l 2/dev/null; echo */10 * * * * /usr/sbin/ntpdate 192.168.1.100 /sbin/hwclock -w) | crontab - # 手动测试 ntpdate 192.168.1.100 hwclock -w date # 检查系统时间是否已更新逻辑说明 /sbin/hwclock -w确保系统时间更新后立即写入 BIOS 硬件时钟避免重启后时间回退。crontab中的*/10表示每 10 分钟执行一次可根据业务要求调整为0 */2 * * *每两小时或0 2 * * *每日凌晨 2 点。3.4 避坑时间同步的三大隐形杀手现象chronyc sources -v输出全为^?无^*原因客户端server地址错误或服务端allow网段未覆盖客户端 IP或防火墙 UDP 123 端口未放行解决在客户端执行chronyc tracking查看System clock状态执行nc -uzv 192.168.1.100 123测试 UDP 连通性检查服务端firewall-cmd --list-ports现象ntpq -p显示reach值为 0delay为*原因服务端ntpd未启动或客户端server行未生效配置文件语法错误解决服务端执行systemctl status ntpd客户端执行ntpq -c rv查看配置加载状态检查/etc/ntp.conf是否有语法错误如缺少分号现象时间同步成功但date显示正确hwclock --show显示错误相差数小时原因系统时区设置与硬件时钟不一致麒麟默认硬件时钟为 UTC但系统显示为 CST解决执行timedatectl set-timezone Asia/Shanghai执行hwclock --systohc将系统时间写入硬件时钟重启后验证date与hwclock --show一致4. NFS 与 iSCSI 存储搭建企业级共享存储的双轨实践在麒麟服务器集群中NFS 用于文件级共享如日志集中存储、代码仓库iSCSI 则提供块级存储如虚拟机磁盘、数据库裸设备。二者配置逻辑迥异NFS 依赖rpcbind和nfs-server服务协同iSCSI 则需targetcli构建 target 并导出 LUN。手册中 NFS 配置简洁但实际交付中常因no_root_squash权限滥用或exports语法错误导致挂载失败iSCSI 部分虽未展开但其targetcli交互式配置易出错需严格遵循backstores → targets → luns → acls流程。4.1 NFS 服务端从目录创建到 export 权限的精细控制NFS 的核心是/etc/exports文件其语法看似简单但rw、no_root_squash、sync等选项组合直接影响安全性与性能。no_root_squash若滥用将使客户端 root 用户获得服务端 root 权限是重大安全隐患。# 步骤1创建共享目录并设置权限谨慎 mkdir -p /data/nfs-share chmod 755 /data/nfs-share # 非 root 用户可读root 可写 chown nobody:nobody /data/nfs-share # NFS 默认映射用户为 nobody # 步骤2编辑 exports 文件精确指定客户端 IP禁用通配符 * cat /etc/exports EOF /data/nfs-share 192.168.1.50(rw,sync,no_subtree_check,anonuid65534,anongid65534) /data/nfs-share 192.168.1.51(rw,sync,no_subtree_check,anonuid65534,anongid65534) EOF # 步骤3重载 exports 并启动服务 exportfs -ra systemctl enable rpcbind nfs-server systemctl start rpcbind nfs-server # 步骤4防火墙放行 NFS 相关端口麒麟 SP2 使用固定端口 firewall-cmd --permanent --add-servicenfs firewall-cmd --permanent --add-servicerpc-bind firewall-cmd --permanent --add-servicemountd firewall-cmd --reload逻辑说明anonuid65534和anongid65534将客户端匿名用户映射为服务端nobody用户UID/GID 65534避免no_root_squash带来的提权风险no_subtree_check提升挂载性能sync确保数据写入磁盘后再返回保障一致性。firewall-cmd --add-service比单独放行端口更可靠因 NFS 动态端口由rpcbind分配。4.2 NFS 客户端挂载与 fstab 自启的健壮写法客户端挂载需区分临时挂载与永久挂载。fstab中的_netdev选项至关重要它确保网络就绪后再挂载避免开机卡死。# 步骤1创建挂载点 mkdir -p /mnt/nfs-data # 步骤2临时挂载测试-t nfs4 指定 NFS v4 协议更安全 mount -t nfs4 -o vers4.2,hard,intr,rsize32768,wsize32768 192.168.1.100:/data/nfs-share /mnt/nfs-data # 步骤3写入 fstab 实现开机自启关键_netdev 选项 echo 192.168.1.100:/data/nfs-share /mnt/nfs-data nfs4 vers4.2,hard,intr,rsize32768,wsize32768,_netdev 0 0 /etc/fstab # 步骤4测试 fstab 配置不重启 mount -a df -Th | grep nfs参数说明vers4.2强制使用 NFS v4.2避免 v3 的安全缺陷hard表示挂载点不可卸载intr允许用 CtrlC 中断挂载rsize/wsize32768设置读写块大小为 32KB提升大文件传输效率_netdev告诉 systemd 等待网络服务启动后再执行挂载。4.3 iSCSI Target 配置targetcli 的标准操作链iSCSI 配置需targetcli工具其交互式界面易出错。标准流程为创建 backstore存储后端→ 创建 targetiSCSI 目标→ 创建 lun逻辑单元→ 设置 acl访问控制列表→ 启动 target。# 步骤1安装并启动 targetcli yum install -y targetcli systemctl enable target systemctl start target # 步骤2使用 targetcli 创建 target以下为交互式命令序列 targetcli EOF /backstores/block create kylin-disk /dev/sdb /iscsi create iqn.2021-01.com.kylin:storage /iscsi/iqn.2021-01.com.kylin:storage/tpg1/luns create /backstores/block/kylin-disk /iscsi/iqn.2021-01.com.kylin:storage/tpg1/acls create iqn.2021-01.com.kylin:client /iscsi/iqn.2021-01.com.kylin:storage/tpg1/portals create saveconfig exit EOF # 步骤3防火墙放行 iSCSI 端口默认 3260 firewall-cmd --permanent --add-port3260/tcp firewall-cmd --reload逻辑说明/dev/sdb是物理磁盘设备需提前fdisk -l确认iqn.2021-01.com.kylin:storage是 target 名称格式为iqn.YYYY-MM.reverse.domain:nameacl中的iqn.2021-01.com.kylin:client是客户端 initiator 名称需在客户端/etc/iscsi/initiatorname.iscsi中预先配置。saveconfig将配置持久化到/etc/target/saveconfig.json。4.4 避坑NFS/iSCSI 的五大致命配置错误现象showmount -e 192.168.1.100返回clnt_create: RPC: Port mapper failure原因rpcbind服务未启动或防火墙未放行rpc-bind服务解决执行systemctl status rpcbind执行firewall-cmd --list-services | grep rpc-bind现象客户端mount成功但ls /mnt/nfs-data报错Permission denied原因服务端/data/nfs-share目录权限不足或exports中未设置anonuid/anongid解决服务端执行ls -ld /data/nfs-share确保nobody用户有读写权限检查exports中anonuid是否匹配nobodyUID现象iSCSI 客户端iscsiadm -m discovery -t st -p 192.168.1.100无返回原因服务端target未启动或防火墙未放行 3260 端口或portals未创建解决服务端执行targetcli ls确认 target 状态执行ss -tlnp | grep :3260执行firewall-cmd --list-ports现象NFS 挂载后写入文件服务端ls -l显示所有者为nobody而非预期用户原因客户端未配置uid/gid映射或服务端exports未设置all_squash解决客户端挂载时加uid1000,gid1000参数或服务端exports中改为all_squash,anonuid1000,anongid1000现象fstab中 NFS 挂载项导致系统启动卡在A start job is running for /mnt/nfs-data原因缺少_netdev选项系统在网络未就绪时尝试挂载解决编辑/etc/fstab在 options 字段末尾添加, _netdev执行systemctl daemon-reload5. 系统救援与安全加固单用户模式、密码重置、防火墙、RAID 的硬核组合当服务器无法正常登录、服务崩溃或遭遇安全审计时单用户模式是最后的救命稻草而密码复杂度、防火墙规则、软 RAID 则是日常运维的基石。手册中单用户模式步骤看似简单但rw single init/bin/bash的拼写错误、grub 密码输入错误、或chroot后未exec /bin/bash都会导致进入假单用户。同样firewall-cmd的--permanent与--reload必须成对出现否则重启后规则丢失。5.1 单用户模式绕过登录认证的终极救援通道单用户模式本质是让内核启动时直接进入 root shell跳过 init 系统。其关键在于 grub 编辑时的参数追加位置与语法。# 步骤1重启服务器在 grub 菜单按 e 进入编辑 # 步骤2定位到以 linux 开头的行通常第二行在行尾添加 # rw single init/bin/bash consoletty0 # 注意必须在同一行末尾添加不能换行rw 和 single 间有空格 # 步骤3按 CtrlX 启动进入 bash shell # 步骤4重置 root 密码关键需 remount 为读写 mount -o remount,rw / passwd root # 步骤5强制同步并重启 exec /bin/bash sync exec /sbin/init逻辑说明mount -o remount,rw /是必须步骤因单用户模式下根文件系统默认为只读exec /bin/bash重新加载 shell 环境exec /sbin/init退出单用户正常启动系统。若忘记sync密码可能未写入磁盘重启后失效。5.2 密码复杂度策略用 PAM 模块强制合规麒麟 V10 SP2 默认密码策略宽松需通过pam_pwquality模块强化。手册中仅提及设置但未说明如何验证策略生效。# 步骤1安装并配置 pam_pwquality yum install -y libpwquality # 编辑 /etc/pam.d/system-auth找到 password requisite 行修改为 sed -i /password.*requisite.*pam_pwquality.so/s/$/ retry3 minlen10 dcredit-1 ucredit-1 lcredit-1 ocredit-1/ /etc/pam.d/system-auth # 步骤2验证策略尝试设置弱密码应失败 echo weak123 | passwd --stdin root 21 | grep weak # 应输出 BAD PASSWORD: The password is shorter than 10 characters参数说明minlen10要求最小长度 10dcredit-1要求至少 1 位数字ucredit-1要求至少 1 位大写字母lcredit-1要求至少 1 位小写字母ocredit-1要求至少 1 位特殊字符retry3允许重试 3 次。5.3 防火墙 firewall-cmd从基础放行到 zone 管理的进阶firewalld的核心是zone区域public是默认 zone但生产环境建议创建trustedzone 用于内网管理。# 步骤1创建 trusted zone 并添加内网网卡 firewall-cmd --permanent --new-zonetrusted firewall-cmd --permanent --zonetrusted --add-interfaceens33 firewall-cmd --permanent --zonetrusted --add-source192.168.1.0/24 # 步骤2为 trusted zone 放行全部服务 firewall-cmd --permanent --zonetrusted --add-servicessh firewall-cmd --permanent --zonetrusted --add-servicehttp firewall-cmd --permanent --zonetrusted --add-servicehttps firewall-cmd --permanent --zonetrusted --add-servicenfs firewall-cmd --permanent --zonetrusted --add-servicerpc-bind firewall-cmd --permanent --zonetrusted --add-servicemountd # 步骤3重载并验证 firewall-cmd --reload firewall-cmd --zonetrusted --list-all逻辑说明--add-interface将物理网卡绑定到 zone--add-source将 IP 段绑定到 zone--add-service是预定义服务名比--add-port更安全自动处理相关端口。firewall-cmd --list-all-zones可查看所有 zone 状态。5.4 软 RAID 创建mdadm 的企业级数据保护软 RAID 是成本最低的冗余方案。手册中未详述但mdadm创建 RAID1 需注意--metadata1.2兼容性及--spare-devices预留热备盘。# 步骤1准备两块同容量磁盘如 /dev/sdb, /dev/sdc # 步骤2创建 RAID1--metadata1.2 兼容旧 BIOS mdadm --create --verbose /dev/md0 --level1 --raid-devices2 --metadata1.2 /dev/sdb /dev/sdc # 步骤3格式化并挂载 mkfs.ext4 /dev/md0 mkdir /data/raid1 mount /dev/md0 /data/raid1 # 步骤4保存 RAID 配置关键否则重启后 md0 消失 mdadm --detail --scan /etc/mdadm.conf echo ARRAY /dev/md0 levelraid1 num-devices2 metadata1.2 /etc/mdadm.conf # 步骤5写入 fstab echo /dev/md0 /data/raid1 ext4 defaults 0 0 /etc/fstab逻辑说明--metadata1.2指定元数据格式兼容性最好/etc/mdadm.conf是 RAID 配置文件mdadm --detail --scan生成标准格式fstab中使用/dev/md0而非/dev/sdb因 RAID 设备名稳定。5.5 避坑系统救援与安全的四大高危操作现象单用户模式下passwd root执行后重启仍无法用新密码登录原因未执行mount -o remount,rw /密码写入只读文件系统失败或未执行sync数据未刷入磁盘解决进入单用户后第一句执行mount -o remount,rw /执行passwd后执行sync最后 本文还有配套的精品资源点击获取
返回列表