十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

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

国产操作系统落地实践:从选型到部署避坑指南

国产操作系统落地实践:从选型到部署避坑指南 国产操作系统这几个字在IT圈已经喊了很多年但直到最近两年我才真正觉得它到了“能干活”的阶段。身边不少朋友一听到这个词第一反应是一个抽象的概念等打开虚拟机装上统信UOS或者银河麒麟才发现它其实是一套基于Linux生态衍生出来的桌面和服务器系统能办公、能开发、也能部署业务服务只是需要接受一套不太一样的操作习惯。这篇文章我打算用一次真实的项目落地经历来聊这件事包括主流的几款国产操作系统到底什么来头、迁移前要想清楚的现实问题、从安装到日常运维的具体步骤以及一堆只有踩过坑才能总结出来的细节。这次项目其实不算大帮助一家中型公司把部分办公终端和两台内部服务器从原有的Windows/CentOS环境切换成国产系统。因为我在这类事情上踩过太多坑所以整个过程还算顺手但过程中依然有不少值得记录的地方。如果你正在被“系统国产化替代”这件事困扰或者只是单纯想了解一下国产Linux系统现在到底能不能用这篇文章应该能帮你在动手前少走一段弯路。1. 先厘清一件事国产操作系统到底指什么1.1 不是凭空出现的系统而是基于Linux生态的本地化发行版很多人有个误解觉得“国产操作系统”应该是完全从零写出来的一个独立系统其实目前真正进入生产环境的几款主流产品绝大多数都是基于Linux内核和GNU工具链构建的发行版。你可以把它理解成一套基于开源上游代码再叠加了自研桌面环境、商业组件、合规认证和本地化适配的系统。这套做法的好处很明显就是不需要重复“发明轮子”内核安全补丁能跟上上游更新节奏软件包管理也能复用apt、dnf等成熟的包管理器。从技术路线上来说统信UOS和Deepin走的是Debian系桌面环境主要是自家的DDE银河麒麟桌面版更接近Ubuntu风格服务器版则有单独的基于CentOS源码演进的产品线openEuler是华为捐给开放原子基金会之后独立发展起来的服务器操作系统结构上跟RHEL/CentOS这类商业发行版比较接近。还有中科方德、凝思等相对垂直的产品会出现在电力、金融、工控这些特定行业里。这不是在讲理论而是希望你意识到一个事实你不是在跟一个“凭空冒出来的新物种”打交道而是在学习一套以Linux为基础的存量技术栈。原来会用Ubuntu、CentOS的人切换过去的学习成本远远低于从Windows迁移到Mac。反过来如果你一点Linux基础都没有那学习的重点其实不在“国产”两个字上而在Linux操作系统的基本原理和命令行操作。1.2 主流发行版适合什么人怎么选我这次项目主要接触的是统信UOS和openEuler同时也帮客户测试过银河麒麟。为了让你快速建立坐标系先给一个简单的对照表。发行版技术方向桌面环境包管理主要出现场景统信UOSDebian系DDEdeb/apt政企办公终端、窗口业务银河麒麟Ubuntu/CentOS系UKUI/MATEdeb/apt或rpm/dnf政务项目、传统服务器openEuler类似RHEL的产品路线GNOME/KDE可选rpm/dnf数据中心、云原生、IT基础设施DeepinDebian系DDEdeb/apt个人尝鲜、社区版很多国产系统的上游如果你是个人用户想先在一台老电脑上体验Deepin或者统信UOS家庭版最合适图形界面做得最容易上手如果是企业服务器不考虑历史包袱的话openEuler的社区活跃度和文档完整度目前比较有优势如果客户那边特别强调过“银河麒麟”这三个字那作为乙方也没得选老老实实在麒麟生态里做适配就行。这里有个很容易被忽略的细节同一个品牌下面可能存在桌面版和服务器版两者的包管理、系统初始化方式可能完全不同。比如银河麒麟桌面版是apt服务器版却可能是dnf操作上的肌肉记忆不能直接套用。下单前一定要先跟厂商或渠道确认清楚交付的是哪个版本而不是看到“麒麟”两个字就觉得都一样。2. 迁移前必须想清楚的三个现实问题2.1 软件兼容性到底会打几折讲个真实感受国产操作系统这几年进步最大的地方是“日常办公能用了”但还远远谈不上“所有Windows软件都能跑”。决定迁移前不要先问系统好不好用而是先列一份软件清单把你所在的业务里每天都会点开的应用全列出来然后逐个确认三条路有没有官方Linux版、有没有可接受的Web替代方案、有没有适配良好的国产替代软件。拿这次客户公司来说他们的核心痛点集中在三块Office文档、浏览器插件、以及一台只支持Windows驱动的扫描仪。Office这块WPS Office的Linux版做得很成熟基本能和微软Office互通数据处理量中等的情况下没有明显问题浏览器这块Chrome、Firefox的原生版本都很稳定但客户业务系统里的某个老ActiveX控件无法在Linux下运行最后只能保留一台Windows虚拟机专门用来操作这个控件扫描仪驱动是彻底无解厂商没出Linux版驱动只能更换设备。这种结果在真实项目里非常典型。你不能指望用一个系统替换解决所有问题而是要先找出那10%无法兼容的“钉子户”单独设计过渡方案否则迁移项目会卡在最后5%的收尾上迟迟无法终验。2.2 免费版和商业授权怎么权衡我在社区里经常看到有人问“国产系统是不是免费”答案没那么简单。以统信UOS为例它有面向个人用户免费申请使用的版本也有面向企业的专业版后者通常通过年费形式提供商业授权包含原厂技术支持、合规资质文档和稳定的更新源。银河麒麟也类似的逻辑商业版的技术支持和党政项目里的合规材料才是核心价值所在。如果你是在自己的电脑上折腾免费版完全够用但企业场景尤其是需要供应商背书的场景省授权费会带来后续验收和运维的各种麻烦。我在项目里就见过客户为了省每年几千块钱的技术服务费自己装免费版结果系统出现内核级兼容问题后找不到责任人最后整个项目停滞了好几个月。认购商业授权不是“多花钱”而是把风险转嫁给有能力的厂商或代理商。2.3 硬件驱动和外设是最大的隐性成本软件能忍一忍硬件是真的卡脖子。Linux内核虽然自带大量开源驱动但总有小众设备得不到支持。打印机、高拍仪、身份证读卡器、银行U盾、行业锁、扫描仪这些外设往往需要厂商单独提供Linux驱动而很多厂商的态度是“量不够不开发”。给客户做迁移评估时我习惯把硬件分成三档第一档是显示器、键鼠、声卡、网卡这类通用设备基本不用操心第二档是显卡NVIDIA和AMD都有闭源驱动方案网上资料也很多按步骤装问题不大第三档是行业外设这块必须在项目启动前逐个打电话给厂商确认是否支持国产Linux环境不能只看官网有没有列驱动还要确认内核版本和系统版本是不是匹配。否则设备买回来了装到系统上无法识别非常被动。3. 实操从镜像到跑起来的完整流程3.1 下载镜像、制作启动盘和首装注意事项正式安装之前先从官网下载对应架构的ISO镜像。大多数情况下选择x86_64但如果跑在飞腾、鲲鹏、龙芯这类国产CPU上要下载对应的aarch64或mips64el版本。这一步很容易被人忽略我把安装包拷贝到飞腾服务器上执行安装时才发现架构选错了白白浪费了一个小时。制作启动盘推荐用Ventoy体验非常好。你不需要反复格式化U盘只要安装Ventoy到U盘上然后把所有ISO文件直接拷进去开机时选择要引导的条目即可。遇到同一个U盘既要装Ubuntu又要装国产系统的情况这种方案比dd刻录方便得多。进入安装界面后有两点要特别留意。第一部分国产系统对新硬件的UEFI Secure Boot支持还不完善如果安装界面前卡死或直接黑屏重启后进BIOS把Secure Boot关掉大概率能解决。第二有的系统安装过程中会提示“正在探测硬件”实际上是显卡驱动加载失败此时可以在GRUB引导项上按e进入编辑模式在linux那一行末尾加上nomodeset等系统装好后再补装显卡驱动。# Ventoy安装到U盘后查看U盘设备名 lsblk # 假设U盘是/dev/sdb继续在图形界面操作即可3.2 磁盘分区与安装策略如果只是体验直接让安装器自动分区就行简单省事。但生产环境我强烈建议手工分区。拿办公室终端举例一块256GB的SSD我会这么分/boot分配1GB存放内核和引导文件不需要太大/分配80GB用于系统本身和安装日常软件/data分配剩余空间存放用户数据和项目文件方便系统重装时保留数据swap根据内存大小分配如果内存在8GB以上swap给8GB已经足够。需要注意的是部分国产系统默认使用的文件系统可能是ext4或xfs安装器上一般默认已经选好不需要特意修改。但如果你有大量小文件读写的场景可以研究一下ext4的更适合还是xfs更适合不要人云亦云。在服务器侧还要考虑要不要用LVM。LVM的好处是以后扩容方便不需要重新格式化分区。我在openEuler上给数据库服务器做LVM时特意给根目录和业务数据分区各划分了一个逻辑卷后面磁盘容量不够时只用lvextend命令加一块新物理卷就能在线扩充不用停机。# 创建物理卷、卷组和逻辑卷 pvcreate /dev/sdb1 vgcreate vg_data /dev/sdb1 lvcreate -L 500G -n lv_data vg_data mkfs.xfs /dev/vg_data/lv_data3.3 首次进系统用户配置、网络和软件源系统安装完成后第一次开机要做几件小事。首先创建日常使用的普通用户尽量避免直接使用root跑图形界面这是从Linux时代就一直保持的好习惯。然后配置网络办公环境一般用DHCP就能通服务器则要配置静态IP顺带把主机名调整成符合资产管理规范的名称。接下来最关键的一步是配置软件源。很多国产系统默认的更新源可能响应速度一般或者部分软件包版本偏旧。你需要找到系统自带的软件源管理工具把仓库地址切换成公司内网的镜像源或国内访问较快的公共源。以统信UOS为例它的源写在/etc/apt/sources.list中openEuler的dnf源则在/etc/yum.repos.d/openEuler.repo中。切换完源一定先执行一次缓存更新和系统升级确保内核和桌面环境都是最新补丁状态再开始装软件。这一步能避免后面遇到大量“仓库里都找不到这个包”的问题。# Debian系 / UOS sudo apt update sudo apt upgrade -y # openEuler sudo dnf makecache sudo dnf update -y3.4 装驱动、装WPS、装常用办公工具办公终端最刚需的其实是三类办公套件、浏览器、通讯工具。WPS Office可以从官网下载Linux版deb包安装后如果遇到字体跟Windows不一致导致排版错乱的问题需要补齐中文字体。开源方案可以安装fonts-wqy-zenhei和fonts-wqy-microhei办公场景要求更高的话需要单独导入正版授权的商用手写字体和黑体、宋体字体文件。浏览器建议直接用系统自带商店安装或下载deb包安装Firefox和Chrome的Linux版现在都很稳定。至于通讯工具如果企业内部使用钉钉、企业微信、飞书这几款已经都有Linux原生客户端了微信虽然一直没官方Linux版但统信和麒麟的应用商店里有可用的适配版本实测消息收发和文件传输没有明显问题。显卡驱动这块我的建议是如果只是办公看视频不要折腾独显驱动。NVIDIA闭源驱动在部分国产系统上安装后反而容易出现登录循环、桌面闪退的问题。如果真的需要跑图形渲染或深度学习推理优先选择官方提供的驱动仓库并用dkms方式安装这样每次内核升级时驱动会自动重新编译不容易坏。# 查看当前显卡设备 lspci | grep -i vga # 在UOS上安装wps sudo apt install ./wps-office_*.deb4. 办公与开发环境搭建的实战记录4.1 办公日常文档、浏览器和远程会议给客户做了一台UOS桌面终端后我让行政同事实际用了两周反馈比较有价值。文档处理上WPS对复杂图表和宏的兼容程度大约能覆盖平时90%的需求剩下10%是特别复杂的财务模型和老旧的宏模板这类文件建议还是回到Windows环境处理。PDF阅读、压缩解压、截图、看图这类基础工具Linux生态都有成熟的替代。浏览器插件是另外一个坑。很多政企内部系统打开后要求安装某个ActiveX控件或IE内核插件这在Linux上完全跑不了。我这次的处理办法是业务部门保留一台Windows远程虚拟机专门跑那些必须插U盾、必须用IE插件的系统。运维侧做好访问控制其他终端通过远程桌面客户端连接这台虚拟机既解决了兼容性问题又不会破坏整体安全策略。视频会议软件值得表扬一下腾讯会议和钉钉会议的Linux版做得比较克制会议功能完整屏幕共享流畅极少出现花屏。当然耳机和麦克风的权限设置要在系统设置里放行第一次使用会议软件时如果发现对方听不到声音先去检查系统隐私设置而不是直接怀疑硬件坏了。4.2 开发机配置从Python到Node到容器如果你是开发人员国产操作系统其实比Windows更舒服因为开发工具链大多起源于Linux。我自己的开发机用的就是Deepin平台日常做Web后端开发完全没问题。Python环境建议用pyenv管理多版本避免系统级Python被项目依赖弄乱。Node.js建议用nvm安装开发前端项目时切换大版本很频繁。Java开发用OpenJDK 11或17配合Maven或Gradle基本和Ubuntu上的体验一致。数据库图形客户端可以用DBeaverRedis客户端用Another Redis Desktop Manager后端开发最常用的工具在Linux生态里都有原生支持。容器的使用也最接近生产环境。Docker在统信UOS、麒麟、openEuler上都能直接安装只要内核版本不太老跑Nginx、Redis、MySQL容器都没有问题。下面这段命令是我在openEuler上安装Docker的过程# 添加docker-ce仓库并安装 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install -y docker-ce docker-ce-cli containerd.io sudo systemctl enable --now docker # 验证容器是否正常 docker info如果你所在的公司强制要求使用国产化软件供应链还可以留意一下容器镜像仓库的国产化替代方案比如Harbor、Harbor的企业版以及各种国产K8s发行版。这些在社区里都有适配文档可以直接复用。4.3 服务器场景最小化安装跑通Nginx和数据库服务器侧的国产化替代其实比桌面更顺畅因为服务器端的软件几乎不看图形界面Linux系统本身就能支撑绝大多数后端服务。我在客户机房用openEuler做了两台稳定运行的内网服务器一台跑Nginx反向代理和静态资源一台跑MariaDB数据库。装好最小化系统后第一件事是配置主机名、静态IP和防火墙规则。然后安装Nginx把它作为内网应用统一入口。数据库服务器则要注意数据目录的独立分区权限和定期备份策略。# openEuler安装nginx sudo dnf install -y nginx sudo systemctl enable --now nginx firewall-cmd --permanent --add-servicehttp firewall-cmd --reload这里要提醒一个比较容易踩坑的点很多国产系统出于安全考虑默认防火墙是开启状态从外部访问服务前一定要先放行端口否则本地curl正常、远端连不上排查一圈才发现是防火墙的问题。5. 我踩过的坑与排查办法5.1 安装阶段开机直接黑屏或卡死在Logo这个现象十有八九是显卡驱动和UEFI Secure Boot的组合问题。第一次碰到时我一头雾水后来总结出一个通用解法安装时如果卡死先重启进入BIOS关闭Secure Boot同时在内核引导参数加上nomodeset等系统安装完成、联网更新完内核和驱动后再重新开启Secure Boot测试。对于使用NVIDIA显卡的机器开机后大概率还要安装官方驱动。5.2 软件安装阶段依赖地狱和“找不到包”国产系统上安装第三方提供的deb/rpm包时最常见的报错是缺依赖。比如下载一个WPS最新版的deb包双击安装提示缺某个低级字体库这时不要慌。对于Debian系执行sudo apt --fix-broken install能自动下载大部分依赖对于rpm系使用sudo dnf install -y ./xxx.rpm也能自动解决依赖关系。如果某个包在仓库里找不到大概率是系统软件源版本不够新先update再看。# Debian系强制修复依赖 sudo dpkg -i ./xxx.deb sudo apt --fix-broken install -y # rpm系安装并自动解决依赖 sudo dnf install -y ./xxx.rpm5.3 字体和显示问题文档乱码、分辨率不对办公场景里最让人头疼的就是字体。Linux系统没有微软雅黑、宋体这些字体打开Windows传过来的Word文档往往错位、乱码。解决办法是给系统补中文字体优先使用开源免费字体比如文泉驿系列和思源系列这类字体商业使用风险较小。如果是企业办公场景需要跟Windows文档完全一致建议购买正版字体授权后统一安装。分辨率不对基本是显卡驱动没有正确加载尤其高清屏或特殊显示器。先查看当前分辨率列表再用xrandr手动修改或者直接更新显卡驱动。我用xrandr让一台联想一体机的1920x1080分辨率恢复正常。# 查看显示输出信息 xrandr # 如果某输出支持更高分辨率可手动指定 xrandr --output eDP-1 --mode 1920x10805.4 问题排查速查表症状可能原因快速定位命令解决思路开机桌面一直转圈显卡驱动冲突journalctl -xe进recovery模式卸载闭源驱动有线网络不通网卡驱动未加载dmesg | grep eth确认内核模块是否可用打印机不工作驱动没装或缺少依赖lpstat -p -d装厂商驱动或更换兼容机装软件缺少依赖源版本太旧apt update或dnf update先更新源再装磁盘空间满了日志或缓存过大du -sh /var/log清理过期日志和包缓存远程连接被拒绝防火墙未放行firewall-cmd --list-all放行对应端口6. 多机部署与管理从一台到几十台6.1 批量部署PXE网络安装还是逐台装机如果只是三五台机器用U盘一台台装还能接受一旦超过二十台手工会浪费大量时间。我这次帮客户一次性装了二十多台办公终端最后采用的是PXE网络安装方案。思路是先配置一个DHCP和TFTP服务器把安装内核、初始ramdisk和ISO镜像放到HTTP目录下客户端开机从PXE引导加载Kickstart无人值守描述文件就能自动完成分区、安装和基础软件部署。搭建PXE服务不是这篇文章的重点各家发行版的官方文档都有详细教程。这里要说的是Kickstart描述文件里一定要提前写明软件源地址和时区否则无人值守会卡在交互界面。另外大规模部署前一定先在两台不同型号的测试机上跑通流程因为不同型号机器网卡名称不同文件系统识别也不同容易在启动和分区阶段出岔子。如果你不想为了部署单独维护一套PXE基础设施也可以使用商业工具市面上有的系统部署管理软件可以同时管理Windows和国产Linux终端采用Image模式分发镜像按需定制模板。缺点是额外成本高需要连续多年续费适合预算充足的单位。6.2 配置管理与补丁更新批量部署之后配置管理是运维中最紧急的事项。我比较推崇Ansible因为它无代理架构只要目标机器支持SSH就够了。你可以用它统一分发配置文件、批量安装软件包、批量执行系统更新。- hosts: all tasks: - name: 更新软件包 apt: upgrade: safe update_cache: yes when: ansible_os_family Debian - name: 安装监控代理 apt: name: prometheus-node-exporter state: present补丁更新在政企环境里有讲究不是随意执行dnf update就可以。一般流程是先在测试环境验证内核对业务的影响再分批推送生产环境。如果业务连续性要求高建议在系统里配置只从内网镜像源拉取更新保证所有主机更新包版本一致避免不同主机补丁不一致引发的问题。6.3 与现有Windows网络共存老的办公环境里往往会存在Windows域控制器、文件共享服务。国产Linux系统加入域环境目前主要靠SSSD或Winbind来对接Samba和Kerberos。让办公终端使用域账号登录文件共享用Samba挂载权限校验走域控制器是比较成熟的方案。我这次给客户做的环境里办公文件服务器仍然是一台Windows Server国产Linux终端通过挂载共享目录访问业务文档实测访问速度与Windows客户端没有显著差异。关键点在于SMB版本协商、用户权限映射这些细节如果共享目录权限一直不对可以检查smbclient命令的登录过程是否正常再逐步排查挂载参数。# 挂载Windows共享目录 sudo mount -t cifs //192.168.1.10/share /mnt/share -o usernamealice,uid1000,gid1000,iocharsetutf8 # 开机自动挂载可写入/etc/fstab注意用cred文件避免明文密码7. 选型建议按场景而不是按标签选7.1 桌面终端先看用户习惯再看系统配置给桌面用户选型我从来不看谁的宣传口号更亮眼而是看三个要素桌面环境是否顺手、应用商店的软件包是否完整、厂商技术支持响应是否及时。从用户习惯考虑统信UOS和Deepin的桌面环境跟Windows逻辑接近开始菜单、任务栏、控制面板都有对应概念普通用户上手迁移最快。银河麒麟的桌面环境UKUI在交互上也有类似Windows的设计思路不过细节优化因人而异。从应用生态考虑建议安装前就在应用商店搜索一遍用户高频软件包括输入法、浏览器、办公软件、通讯工具、PDF编辑器看看是否都有可用版本。应用商店里没有的再上官网或社区去找deb包。如果发现有两个用户的核心软件完全没有Linux版那这个选型就要慎重可能要先加大虚拟机方案的比例而不是硬碰硬替换。7.2 服务器与云环境稳定性、兼容性、社区活跃度服务器操作系统选型我会更谨慎因为它直接影响业务连续性。对于新采购的服务器openEuler是不错的选择社区版本迭代活跃、文档开放程度高、容器和虚拟化上的反馈也很多。对于已有一些CentOS 7存量环境的团队迁移到openEuler时的学习成本相对低很多因为命令风格和运维习惯十分接近。银河麒麟服务器版则在传统政企项目中有大量案例可查生态伙伴数量也比较多。无论选择哪家服务器选型都要关注内核版本和长期支持周期。数据处理、虚拟化、容器平台等基础组件在对应系统上的兼容性最好拉一个表格做对比逐项确认。不要让某个组件在项目中期才发现官方不支持那会非常尴尬。7.3 先试点后铺开给自己留一条回退路线给企业做替换我一直坚持“小步快走、保留后路”。先挑一个外围部门、几台非核心终端跑一个月记录遇到的问题和处理成本再扩大到更多终端。第一批试点机不要装满核心业务不要设置不可逆的硬盘加密或网络准入策略。等试点数据出来了再跟决策层对齐能接受多少比例的兼容性方案要不要保留部分Windows虚拟机服务器业务怎么分批切换。这套启动方式虽然看起来步子慢但能让你在出问题的时候从容调整而不是等到最后一天发现一堆应用跑不起来只能把系统又Ghost回Windows。根据我的经验国产操作系统的迁移项目里技术占六成沟通和预期管理占四成。你一边要处理好系统和软件的适配一边也要让使用者和决策者对可能出现的兼容性问题有充分心理预期。把这两件事都做好了项目落地并没有想象中那么可怕。
返回列表