麒麟操作系统这几年在信创项目里出现得越来越频繁,不管是政务、金融还是能源行业的交付现场,Kylin V10 系列基本是绕不开的。但很多人第一次拿到 ISO 镜像的时候会有点懵——它和常见的 Ubuntu、CentOS 安装流程不完全一样,尤其是分区那一步和引导配置,稍不注意就会卡在某个环节反复重装。这篇内容我打算把 Kylin V10 从零安装的完整过程拆开讲一遍,包括虚拟机环境和物理机环境的差异、分区方案怎么定、安装完之后的初始化配置,以及几个我自己踩过的坑。适合刚接触麒麟系统的运维、交付工程师,也适合想在自己电脑上装一套练手的技术爱好者。
1. 装之前先想清楚:你到底要装在什么环境里
很多人一上来就问"麒麟怎么装",这个问题其实没法直接回答,因为安装方式取决于你的目标环境。我见过太多人拿着物理机的安装步骤去套虚拟机,结果卡在磁盘识别那一步;也见过有人在服务器上按桌面版的思路分区,最后系统起来了但数据盘挂不上。所以第一步不是下载镜像,而是先明确你的安装场景。
1.1 虚拟机安装和物理机安装的本质区别
虚拟机安装(比如 VMware Workstation、VirtualBox)和物理机安装最大的差异在于磁盘控制器类型和引导模式。虚拟机默认给的磁盘通常是 SCSI 或 NVMe 控制器,而麒麟的安装器对某些控制器驱动加载顺序比较敏感。我在 VMware 里装 Kylin V10 的时候遇到过一次安装器识别不到磁盘的情况,后来把磁盘类型从 NVMe 改成 SATA 就正常了。这不是麒麟独有的问题,很多国产系统在虚拟化平台上都有类似表现。
物理机安装则要关注引导模式是 UEFI 还是 Legacy BIOS。现在新出的服务器基本默认 UEFI,但一些老设备还在用 Legacy。这两种模式对应的分区方案完全不同——UEFI 需要单独的 EFI 分区,Legacy 则需要 bios_grub 或者直接装在 MBR 上。如果你搞混了,最典型的症状就是装完之后重启进不了系统,直接跳到 BIOS 或者报"no bootable device"。
还有一个容易被忽略的点:虚拟机的网络模式。NAT 模式下安装过程没问题,但装完之后如果你要配静态 IP 做服务器用,需要额外注意网关和 DNS 的设置。桥接模式相对省事,虚拟机和物理机在同一网段,后续调试方便很多。
1.2 镜像从哪来,怎么选版本
麒麟操作系统的镜像获取渠道主要是官网。这里要提醒一句,银河麒麟和中标麒麟是两个不同的产品线,虽然都叫麒麟,但底层和包管理有差异。目前主流的是银河麒麟高级服务器操作系统 V10 和桌面操作系统 V10。服务器版偏向命令行和稳定性,桌面版带图形界面,适合办公场景。
版本号方面,V10 下面有很多小版本,比如 V10 SP1、SP2、SP3 等。选版本的原则很简单:跟着你的项目需求走。如果甲方指定了某个版本,那就严格按那个版本来,不要自作主张升级。如果是自己练手,建议选最新的 SP 版本,驱动兼容性和安全补丁都更完善。
下载的时候注意架构:x86_64 和 ARM64 是两个完全不同的镜像。现在很多国产服务器是飞腾、鲲鹏这类 ARM 架构的 CPU,你拿 x86 的镜像去装肯定装不上。下载页面上一般会标注清楚,看清楚再下。
提示:下载完成后务必校验 ISO 的完整性。我遇到过一次镜像下载不完整导致安装到一半报错的情况,重新下载才解决。用 sha256sum 对比官网提供的校验值,这一步别省。
1.3 硬件和资源的最低要求
虽然麒麟官方有最低配置说明,但实际使用中我建议比官方要求高一档。桌面版至少给 4GB 内存、50GB 磁盘空间,服务器版如果跑服务,内存建议 8GB 起步。虚拟机的话,CPU 核心数给 2 到 4 个,磁盘类型优先选 SATA 或 VirtIO(KVM 环境下),兼容性最好。
有一个细节值得单独说:磁盘空间分配。如果你只是体验一下,20GB 够用;但如果打算长期使用或者装开发环境,建议直接给 100GB 以上。因为麒麟系统本身加上常用软件就会占掉不少空间,后期扩容虽然可以,但操作起来比较麻烦,不如一开始就给足。
2. 安装介质的制作:U 盘和虚拟光驱的实操细节
安装介质这一步看起来简单,但出问题的概率不低。我见过有人直接把 ISO 文件复制到 U 盘里,结果插上去根本引导不了——这是最常见的误区。ISO 是光盘镜像,需要"写入"而不是"复制"。
2.1 U 盘启动盘制作:工具选择和写入模式
制作 U 盘启动盘的工具很多,Windows 下常用的是 Rufus、UltraISO,Linux 下可以用 dd 命令。我的习惯是用 Rufus,因为它对 UEFI 和 Legacy 两种模式的支持都比较清晰,写入的时候会让你选分区方案。
关键点在于写入模式的选择。Rufus 会问你用"ISO 镜像模式"还是"DD 镜像模式"。对于麒麟的镜像,我实测下来 DD 模式成功率更高。ISO 模式有时候会因为引导文件的处理方式导致启动失败。如果你用 DD 模式写入后 U 盘在 Windows 下显示为"未格式化"或者容量变小,这是正常的,说明写入成功了,不要手贱去格式化它。
用 dd 命令的话,操作是这样的:
# 先确认 U 盘的设备名,千万别搞错 lsblk # 假设 U 盘是 /dev/sdb,写入镜像 sudo dd if=Kylin-Server-V10.iso of=/dev/sdb bs=4M status=progress # 写入完成后同步缓存 sync注意:dd 命令的 of 参数后面跟的是整个设备(/dev/sdb),不是分区(/dev/sdb1)。写错了会覆盖你硬盘上的数据,操作前一定用 lsblk 确认清楚。
2.2 虚拟机挂载 ISO:看似简单但有个坑
虚拟机安装就省事多了,直接把 ISO 挂到虚拟光驱就行。但这里有个坑:虚拟机启动时可能不会自动从光驱引导。你需要在虚拟机设置里确认启动顺序,把 CD/DVD 调到硬盘前面。VMware 的话,开机时快速按 ESC 或者进 BIOS 设置调整启动顺序。
另外一个经验是,安装过程中不要断开 ISO 挂载。有些人在系统装到一半的时候去改虚拟机配置,结果安装器找不到安装源直接报错。装完系统重启之前,把光驱里的 ISO 卸载掉或者调整启动顺序回硬盘优先,否则又会从光驱引导进安装界面,形成循环。
2.3 物理机 BIOS 设置:引导模式和 Secure Boot
物理机安装前需要进 BIOS 做几项设置。首先是引导模式,确认是 UEFI 还是 Legacy,这个决定了你后面怎么分区。其次是Secure Boot,麒麟系统对 Secure Boot 的支持情况因版本而异,如果安装过程中报签名相关的错误,可以先把 Secure Boot 关掉,装完再根据需要开启。
还有一项是硬盘模式,有些服务器默认是 RAID 模式,如果你不打算做 RAID,需要改成 AHCI,否则安装器可能识别不到单块硬盘。这个在浪潮、华为等国产服务器上比较常见,进 BIOS 的存储配置里找。
3. 分区方案:整个安装过程中最需要动脑子的地方
分区是麒麟安装里最容易出问题的环节。自动分区虽然省事,但它给出的方案往往不符合实际使用需求,尤其是服务器场景。我建议至少了解手动分区的逻辑,哪怕最后用自动分区,也知道它在做什么。
3.1 UEFI 和 Legacy 两种模式下的分区差异
先把这个搞清楚,因为分区方案完全取决于引导模式。
UEFI 模式下,磁盘需要 GPT 分区表,并且必须有一个 EFI System Partition(ESP),通常 200MB 到 500MB,格式为 FAT32,挂载点 /boot/efi。这个分区是引导用的,不能省。
Legacy 模式下,磁盘用 MBR 分区表,不需要 EFI 分区,但需要一个 1MB 到 2MB 的 bios_grub 分区(如果是 GPT 磁盘的话),或者直接把引导信息写在 MBR 里。
判断当前是什么模式,可以在安装器启动后看引导菜单的样式,或者在安装过程中看分区工具是否要求 EFI 分区。更稳妥的办法是进 BIOS 直接确认。
3.2 服务器场景的推荐分区方案
服务器上我一般这样分:
| 挂载点 | 建议大小 | 文件系统 | 说明 |
|---|---|---|---|
| /boot/efi | 500MB | FAT32 | UEFI 引导分区 |
| /boot | 1GB | ext4 | 内核和引导文件 |
| / | 50-100GB | ext4 或 xfs | 系统根目录 |
| /var | 50GB 以上 | ext4 或 xfs | 日志和业务数据 |
| /home | 剩余空间 | ext4 或 xfs | 用户数据 |
| swap | 内存的 1-2 倍 | swap | 交换分区 |
这个方案的核心思路是把 /var 单独分出来。因为服务器上日志增长很快,如果 /var 和 / 在一起,日志写满会导致整个系统出问题。/var 独立分区后,即使写满也只影响日志服务,不会拖垮系统。
swap 的大小现在争议比较多。传统说法是内存的 1.5 到 2 倍,但如果你的服务器内存很大(比如 128GB),分 256GB 的 swap 纯属浪费。我的做法是:内存小于 16GB 时给 2 倍,16GB 到 64GB 给等量,超过 64GB 给 32GB 就够了。
3.3 桌面场景可以简化,但别全自动
桌面版的话,分区可以简单一些:/boot/efi 500MB,/ 给 100GB,/home 给剩余空间,swap 给内存的 1 倍。这样系统和用户数据分开,重装系统的时候 /home 里的数据还能保留。
自动分区的问题在于它有时候会把所有空间都给 /,不单独分 /home 和 /var。对于只是临时用一下的场景无所谓,但如果你打算长期使用,手动分一下更稳妥。
提示:分区操作是不可逆的,执行之前确认磁盘上没有重要数据。如果是全新磁盘或者虚拟机磁盘,随便折腾;如果是物理机上已有的数据盘,务必先备份。
4. 安装过程逐屏拆解:每一步在做什么
分区搞定之后,剩下的安装过程基本就是下一步下一步,但有几个界面需要留意,选错了后面会麻烦。
4.1 语言、时区和键盘布局
语言选中文或者英文都行,不影响系统功能。时区一定要选对,选Asia/Shanghai,否则系统时间会差 8 小时,导致日志时间戳混乱、定时任务执行时间不对。键盘布局默认英语(美国)就行,除非你有特殊输入需求。
这里有个小细节:系统时间同步。安装过程中如果网络可用,安装器可能会自动同步时间。如果网络不通,装完之后记得手动配置 NTP 或者 chrony,不然时间漂移会引发一堆莫名其妙的问题,比如证书验证失败、集群节点通信异常等。
4.2 软件包选择:最小安装还是带 GUI
服务器版安装时会让你选软件包组。我的建议是选最小安装,然后按需装软件。最小安装的系统干净、攻击面小、资源占用低。需要什么再通过 yum 或 dnf 装,这样你能清楚知道系统里有什么。
桌面版就没这个选择了,默认带图形界面。如果你想要一个轻量的桌面环境,可以在安装完成后自己换,但那是另一个话题了。
有一个包组值得注意:开发工具。如果你后续要编译软件,安装时勾上"开发工具"会省事很多,否则装完之后还得手动装 gcc、make 这些。不过现在很多场景用容器或者预编译包,不一定需要本地编译环境,看你的实际需求。
4.3 网络配置:装的时候就配好,省得后面折腾
安装过程中会有一个网络配置界面,很多人直接跳过,想着装完再配。我的建议是装的时候就配好,尤其是服务器。因为装完之后如果网络不通,你还得进系统用命令行配,多一道手续。
静态 IP 的配置需要填:IP 地址、子网掩码、网关、DNS。DNS 可以填 114.114.114.114 或者你公司内部的 DNS 服务器。如果是虚拟机 NAT 模式,网关通常是 192.168.x.1 这种,具体看虚拟机的网络设置。
主机名也在这里设置。服务器的主机名建议有规律,比如kylin-web-01、kylin-db-01这种,方便识别。别用默认的 localhost,后期管理会乱。
4.4 root 密码和用户创建
root 密码要符合复杂度要求,麒麟默认的密码策略比较严格,太简单的密码不让设。建议用大小写字母加数字加特殊字符的组合,长度 12 位以上。
除了 root,安装器还会让你创建一个普通用户。这个用户默认有 sudo 权限(如果勾选了的话)。日常操作建议用普通用户,需要提权的时候用 sudo,这是基本的安全习惯。
注意:密码一定要记牢,尤其是 root 密码。麒麟系统如果忘记 root 密码,恢复起来比 Ubuntu 麻烦一些,需要进单用户模式或者用 LiveCD 修复。别问我怎么知道的。
5. 装完之后别急着用:这几项初始化必须做
系统装完重启进入桌面或者命令行,很多人就以为完事了。实际上还有几项初始化配置没做,不做的话后面用起来会各种别扭。
5.1 更新系统和安装常用工具
第一件事是更新系统。麒麟的软件源配置和 CentOS 类似,用 yum 或 dnf 操作:
# 更新所有软件包 sudo yum update -y # 或者用 dnf sudo dnf update -y如果软件源不可用(内网环境常见),需要先配置本地源或者内网镜像源。这个在交付现场很常见,甲方给一个内网的 yum 源地址,你把它写进/etc/yum.repos.d/下的配置文件里就行。
常用工具方面,我一般会装这些:vim、wget、curl、net-tools、bash-completion、lsof、htop。这些在最小安装里都没有,装完之后操作会顺手很多。
5.2 配置静态 IP 和 DNS(如果安装时没配)
如果安装时跳过了网络配置,装完之后可以改配置文件。麒麟 V10 的网络配置文件和 CentOS 7 类似,在/etc/sysconfig/network-scripts/下面:
# 编辑网卡配置文件,文件名可能是 ifcfg-ens33 之类的 sudo vim /etc/sysconfig/network-scripts/ifcfg-ens33 # 修改以下内容 BOOTPROTO=static ONBOOT=yes IPADDR=192.168.1.100 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 DNS1=114.114.114.114 # 重启网络服务 sudo systemctl restart network改完之后用ip addr和ping验证一下。如果网络不通,先检查网卡名对不对,再看网关和 DNS 有没有写错。
5.3 关闭不必要的服务
服务器上默认会启动一些用不到的服务,比如防火墙、SELinux(看你的安全要求)、蓝牙等。防火墙和 SELinux 是否关闭取决于你的安全策略,如果内网环境且没有特殊要求,可以关掉省事;如果是对外服务,建议保留并配置规则。
# 查看防火墙状态 sudo systemctl status firewalld # 停止并禁用防火墙(按需) sudo systemctl stop firewalld sudo systemctl disable firewalld # 查看 SELinux 状态 getenforce # 临时关闭 sudo setenforce 0 # 永久关闭需要改配置文件 sudo vim /etc/selinux/config # 把 SELINUX=enforcing 改成 SELINUX=disabled提示:生产环境不建议直接关闭防火墙和 SELinux,应该配置具体的规则和策略。这里说的关闭仅适用于测试环境或者内网隔离环境。
5.4 配置时间同步
时间同步这件事,单机用可能感觉不到,但一旦涉及集群、证书、日志分析,时间不一致就是灾难。麒麟 V10 默认可能装了 chrony,配置一下:
# 编辑 chrony 配置 sudo vim /etc/chrony.conf # 添加或修改 NTP 服务器 server ntp.aliyun.com iburst # 重启服务 sudo systemctl restart chronyd sudo systemctl enable chronyd # 验证 chronyc sources -v如果内网有 NTP 服务器,优先用内网的,外网 NTP 只作为备用。
6. 几个我实际踩过的坑和对应的解法
这一节说几个安装和使用过程中真实遇到的问题,都是文档里不会写的,但实际交付中很容易碰到。
6.1 安装完重启进不了系统
这个问题的原因通常有三个:引导模式不匹配、引导顺序不对、EFI 分区有问题。排查顺序是:先进 BIOS 看引导模式是 UEFI 还是 Legacy,再看启动顺序里硬盘是不是第一位,最后检查 EFI 分区是否存在且格式正确。
如果是 UEFI 模式装的系统,但 BIOS 里设的是 Legacy,那肯定进不去。反过来也一样。这种情况不用重装,改 BIOS 设置就行。但如果是 EFI 分区被删了或者格式不对,那就得用 LiveCD 修复引导,比重装麻烦。
6.2 虚拟机里装完网络不通
VMware 里最常见的原因是网络适配器模式选错了。NAT 模式下虚拟机能上网但外部访问不了;桥接模式下虚拟机和物理机同网段,但需要路由器分配 IP。如果你配了静态 IP 但和物理机不在同一网段,那肯定不通。
还有一个原因是网卡没启动。麒麟安装完之后,网卡默认可能是 down 的状态,需要手动 up 或者改配置文件里的 ONBOOT=yes。用ip link看一下网卡状态,如果是 DOWN,用ip link set ens33 up启动。
6.3 软件源报错导致装不了软件
内网环境最常见的问题就是 yum 源不可用。报错信息通常是"Could not resolve host"或者"Failed to connect"。解决方法是配置内网源或者挂载本地 ISO 作为源。
用 ISO 做本地源的步骤:
# 挂载 ISO sudo mount -o loop /path/to/Kylin.iso /mnt # 创建 repo 文件 sudo vim /etc/yum.repos.d/local.repo # 内容如下 [local] name=Local ISO baseurl=file:///mnt enabled=1 gpgcheck=0 # 清理缓存并测试 sudo yum clean all sudo yum makecache sudo yum install vim -y这个方法在离线交付场景里非常实用,建议记下来。
6.4 桌面版登录闪退
这个问题我在某些显卡的机器上遇到过,原因是显卡驱动和桌面环境的兼容性问题。临时的解决办法是进命令行模式(Ctrl+Alt+F2),然后重装或者更新显卡驱动。如果是虚拟机,把 3D 加速关掉通常能解决。
还有一个可能是home 目录权限问题。如果 /home 分区挂载有问题或者权限不对,桌面环境启动时会因为读不到用户配置而闪退。检查 /home 目录的权限和挂载状态。
7. 关于麒麟系统后续使用的一些个人体会
装完系统只是第一步,后面还有软件安装、服务配置、安全加固一堆事。麒麟 V10 的包管理用的是 yum/dnf,和 CentOS 8 之后的版本比较接近,如果你有 RHEL 系的经验,上手会很快。但也有一些差异,比如某些系统路径、服务名称、配置文件位置和标准 CentOS 不完全一样,遇到问题的时候别想当然,先查一下麒麟自己的文档。
另外,麒麟的社区生态相比 Ubuntu、CentOS 还是小一些,遇到冷门问题的时候搜到的资料可能不多。我的经验是,很多问题可以借鉴 RHEL/CentOS 的解法,因为底层都是 Linux,原理相通。但涉及麒麟特有的组件(比如安全加固模块、审计工具)时,还是要以官方文档为准。
最后说一句关于版本选择的事。如果是生产环境,不要追新,选经过验证的稳定版本。如果是自己学习,可以试试最新版,体验一下新特性。但不管哪个版本,装完之后做好快照或者备份,折腾坏了能快速恢复,这个习惯能省很多时间。