
1. 先把版本和授权这两件事捋清楚银河麒麟这套系统我在过去几年里前前后后装过不下二十台机器从早期的 V10 到 V10 SP1、SP2再到服务器版的 SP3踩过的坑基本都能写成一本书。很多人第一次接触银河麒麟最容易干的事就是拿着一个从网上随便下的镜像往机器里灌装完发现应用商店打不开、软件装不上、驱动对不上然后就开始骂系统烂。实际上绝大多数所谓的“系统烂”根源都在装之前没弄清三件事你的硬件架构是什么、你拿到的镜像是桌面版还是服务器版、你的机器走的是哪种授权模式。把这三点确认清楚后面 80% 的疑难杂症根本不会出现。银河麒麟目前主流的几个分支桌面操作系统 V10含 SP1、SP2 等更新包版本、服务器操作系统 V10有基于 RPM 体系的版本也有基于 DEB 体系的版本、以及用于特定行业的定制版本。桌面版和服务器版在包管理、默认服务、图形环境上差别非常大桌面版预装 UKUI 桌面环境和一堆图形化工具服务器版通常是最小化安装、默认没有图形界面。你要是把服务器版的 ISO 装到办公电脑上会发现连浏览器都要自己装这不是系统问题是你选错了镜像。还有个特别常见的误解很多人以为银河麒麟只有一个架构。实际上它支持 x86_64、aarch64ARM64、以及部分国产处理器平台不同架构的软件包完全不通用。你在 x86 机器上下的 deb 包拿到飞腾或者鲲鹏的机器上就是一堆乱码错误。所以装系统之前第一件事永远是进 BIOS 或者用uname -m确认架构第二件事是确认镜像文件名里那串标识到底对应哪种硬件。1.1 桌面版和服务器版到底差在哪桌面操作系统 V10 的定位是办公终端默认带 UKUI 桌面、文件管理器、应用商店、控制面板、打印管理器、输入法框架这些组件包管理体系是 DEB APT。服务器操作系统 V10 的定位是后端服务默认最小化安装包管理体系根据版本不同可能是 RPM DNF也可能是 DEB APT这个必须实际进系统用cat /etc/os-release看一眼才准。我见过太多人在服务器版上敲apt install结果提示 command not found然后一脸茫然其实那台机器是 RPM 体系的。桌面版和服务器版在配置文件路径上也有差异。桌面版大量配置放在~/.config下面UKUI 相关配置在~/.config/ukui服务器版的网络配置如果是 NetworkManager 管理的nmcli能用如果是传统的 network-scripts那就得改/etc/sysconfig/network-scripts/ifcfg-xxx。这两种方式混着改会出问题比如用nmcli改完之后又去手改 ifcfg 文件NetworkManager 下次启动会把你的手改覆盖掉。我的建议是装系统前先明确用途。如果是普通办公、开发终端直接上桌面版省心如果是跑服务、做容器宿主老老实实上服务器版别为了图方便装个桌面版然后关掉图形界面那样既浪费资源又容易在升级时出幺蛾子。桌面版和服务器版的内核参数、电源管理策略、默认防火墙规则都不一样这些差异平时看不出来一到压力测试或者长时间运行就暴露了。1.2 关于激活和授权说点实在的银河麒麟是商业发行版桌面版和服务器版都需要授权。预装在品牌整机上的机器授权通常已经写入固件或者随机器附带授权文件开机即用。企业批量采购的一般会拿到官方的授权文件或者走内部授权服务按官方文档导入即可。个人用户想体验正规途径是去官方渠道申请试用镜像和试用授权或者使用官方提供的社区体验版本。这里我必须把话说重一点网上那些所谓的“激活密钥”“永久激活工具”不要碰。第一是合规问题第二是安全问题这类工具十有八九捆绑了挖矿程序或者后门你在一个需要长期跑业务数据的系统上装这种东西等于把大门钥匙交给陌生人。我处理过一台机器用户装了个来路不明的激活脚本结果系统里多了个定时任务每隔十分钟往外发一次数据。清掉之后重新走正规授权一切正常。省那点钱代价可能是整个内网的安全。授权文件导入之后怎么确认生效桌面版一般在控制面板的系统信息里能看到授权状态命令行可以用kylin-activation之类的工具查询不同版本命令名可能略有差异用compgen -c | grep -i kylin找一下就知道。服务器版通常在安装过程中就要求输入授权信息或者安装后用官方提供的授权管理命令导入。授权到期前系统一般会有提醒别等到期了才发现业务中断。1.3 架构选型对后续所有操作的影响架构这件事值得单独拎出来讲。x86_64 和 aarch64 的差异不只是“能不能跑”而是从软件源、驱动、到编译参数的全链条差异。举个最实际的例子你在 x86 机器上用apt install nginx一条命令搞定的事在 ARM 机器上如果官方源里没有对应的 arm64 包那就得自己编译而编译又依赖一堆开发库这些库还得是 arm64 版本。链条一长出问题的概率就上去了。另一个坑是显卡和无线网卡驱动。国产平台上的显卡适配情况和 x86 完全不同有些型号在 x86 上即插即用到 ARM 平台上就得装厂商提供的专用驱动包而且驱动包还分内核版本。我遇到过一次一台飞腾平台的机器装完系统分辨率只有 1024x768查下来是显卡驱动没匹配上换了官方源里对应内核版本的驱动包才正常。所以拿到一台机器我固定的动作顺序是uname -m看架构cat /etc/os-release看发行版和版本号uname -r看内核版本lspci和lsusb看关键硬件型号。这四条信息记下来后面无论查资料还是提工单都能少走很多弯路。很多人反馈问题只说“银河麒麟装不上驱动”没有这四个信息谁也帮不了你。2. 账号、权限、登录相关的那些事账号和权限问题是银河麒麟使用中反馈量最大的一类。原因也很简单Linux 的权限模型对习惯了图形化操作的用户来说确实有点门槛而银河麒麟为了安全默认又收得比较紧。root 密码忘了怎么办、怎么让 root 能登图形界面、普通用户密码怎么改、账户名怎么改这几个问题几乎每个运维都会碰到。我下面按实际操作顺序讲都是我自己验证过的路径。2.1 root 密码忘了用单用户模式找回来root 密码丢失是最常见也最急人的场景。银河麒麟桌面版和服务器版都基于 GRUB2 引导所以思路是通用的在引导阶段拦截拿到一个 root shell然后改密码。具体操作是在开机看到 GRUB 菜单时如果菜单一闪而过开机时连续敲方向键或者 Esc 就能停住选中要启动的内核条目按e进入编辑模式。找到以linux或linux16开头的那一行把行尾的ro改成rw然后在行尾追加init/bin/bash改完之后按Ctrl X或者F10启动。这样系统会直接进入一个 bash shell此时根文件系统是可读写的。接着执行passwd root按提示输入两次新密码。如果提示认证令牌操作错误或者无法写入说明根分区还是只读的先手动重新挂载mount -o remount,rw /改完密码之后如果是启用了 SELinux 的系统部分版本默认开启需要创建一个标记文件让系统下次启动时重新打标签touch /.autorelabel然后重启exec /sbin/init或者直接reboot -f。重启之后用新密码登录 root 就行。注意这个方法本质上是物理接触即可提权所以机房门禁和 BIOS 密码才是真正的安全边界。生产环境一定要给 BIOS 设密码并限制启动项顺序否则任何能碰到机器的人都能这么干。2.2 让 root 能登录图形界面银河麒麟桌面版默认禁止 root 直接登录图形界面这是安全策略。但有些场景确实需要比如单机调试、老系统维护。开启方法要改两处只改一处会出现输入了正确密码又弹回登录界面的情况。第一处是显示管理器配置。银河麒麟 V10 桌面版一般用 lightdm配置文件在/usr/share/lightdm/lightdm.conf.d/目录下常见的是60-kylin.conf之类的文件名。用 root 权限编辑在[Seat:*]段落下加上greeter-show-manual-logintrue allow-guestfalse如果这个文件是只读的或者被标记为不可修改可以复制一份到/etc/lightdm/lightdm.conf.d/下再改优先级更高。第二处是 root 的家目录配置文件。编辑/root/.profile找到类似mesg n || true这一行改成tty -s mesg n || true不改这一行的话root 登录图形界面后可能黑屏或者一闪而过。改完之后重启 lightdm 服务systemctl restart lightdm登录界面就会出现“手动登录”或者用户名输入框直接输 root 和密码即可。提示用完记得改回去。长期开着 root 图形登录等于把最高权限暴露在了一个图形环境里任何图形程序的漏洞都可能被放大。2.3 普通用户密码和账户名的修改改普通用户密码分两种情况。用户自己改直接敲passwd先输当前密码再输两遍新密码。管理员帮别人改用passwd 用户名这样不需要知道原密码直接设新密码。这条命令在银河麒麟上完全通用桌面版服务器版都一样。改完之后有个细节要注意如果这个用户有正在运行的图形会话密码改了之后当前会话不会立刻失效但下次登录必须用新密码。另外如果用户配置了密钥登录或者自动挂载加密家目录密钥环的密码也要同步更新否则下次登录会一直弹密钥环解锁窗口。改账户名比改密码麻烦因为 Linux 里用户名会散落在/etc/passwd、/etc/shadow、/etc/group、家目录名、以及各种配置文件里。正确的顺序是usermod -l 新用户名 旧用户名 usermod -d /home/新用户名 -m 新用户名 groupmod -n 新组名 旧组名第一条改登录名第二条把家目录一起改掉第三条如果同名用户组存在也要跟着改。执行前必须确保这个用户没有登录也没有任何进程在跑否则会报“用户正在使用中”。可以用ps -u 用户名检查或者干脆进单用户模式操作。改完之后检查/etc/passwd里的家目录路径对不对再看家目录属主是不是新用户名ls -ld /home/新用户名一眼就能看出来。还有一点很关键如果这个用户被配置在/etc/sudoers里或者属于某些附加组改完名字之后这些配置不会自动更新得手动去改。sudoers 里写的是旧用户名改完就失效了。所以我个人的习惯是能新建用户就新建非必要不改名改名的隐性成本比想象中高。3. 软件安装与包管理实战软件安装是银河麒麟日常使用中出现问题第二多的环节。核心原因是很多人不区分包管理体系把 Debian 那一套和 RedHat 那一套混着用。我在下面把判断方法、常用命令、离线安装这几个高频场景拆开讲尤其是离线装 nginx 这类刚需场景我会给一套我自己反复用过的流程。3.1 先判断你的系统是 DEB 还是 RPM 体系进系统第一件事敲cat /etc/os-release which apt dnf yum dpkg rpm如果apt和dpkg存在说明是 DEB 体系装包用apt install 包名本地包用dpkg -i xxx.deb。如果dnf或yum存在说明是 RPM 体系装包用dnf install 包名本地包用rpm -ivh xxx.rpm。银河麒麟桌面版基本都是 DEB 体系服务器版两种都有可能以实际输出为准。DEB 体系的常用命令我整理了一张表平时对着用就行操作命令更新软件源索引sudo apt update安装软件sudo apt install 包名卸载软件保留配置sudo apt remove 包名彻底卸载含配置sudo apt purge 包名安装本地 deb 包sudo dpkg -i xxx.deb修复依赖sudo apt -f install查看已装软件dpkg -l查看软件版本apt policy 包名清理无用包sudo apt autoremoveRPM 体系对应的就是dnf install、rpm -qa | grep 关键词、dnf remove这些逻辑一样。注意apt install之前一定先apt update。银河麒麟的软件源里有些包版本更新比较频繁不更新索引可能装到旧版本或者提示“无法定位软件包”。如果apt update报错先看/etc/apt/sources.list里的源地址是不是可达内网环境还要确认有没有配代理。3.2 离线安装 nginx 的完整流程内网机器不能上外网这是非常典型的场景。离线装 nginx 有两条路一条是下载 deb 包和依赖拷过去另一条是源码编译。前者快但要解决依赖后者慢但可控。我一般优先用前者。第一步在一台同版本、同架构、能上网的银河麒麟机器上准备包。最省事的做法是用 apt 的下载功能sudo apt update sudo apt install --download-only -y nginx下载的包会放在/var/cache/apt/archives/下面。但 nginx 的依赖不止它自己--download-only会把依赖一起拉下来所以这个目录里会有一堆 deb 文件。把整个目录打个包拷到目标机器tar czf nginx-offline.tar.gz -C /var/cache/apt/archives .第二步在目标机器上解包并安装mkdir -p /opt/nginx-offline tar xzf nginx-offline.tar.gz -C /opt/nginx-offline cd /opt/nginx-offline sudo dpkg -i *.deb如果dpkg -i报依赖缺失不要慌先看缺哪个包。因为所有依赖都在这个目录里很多时候是安装顺序问题多执行一次sudo dpkg -i *.deb就能把顺序问题绕过去。实在还有缺失的用sudo dpkg --force-depends -i xxx.deb强制装装完再用sudo apt -f install尝试补离线环境下这条可能会失败所以尽量保证包齐全。第三步验证和配置。装完执行nginx -v systemctl status nginx curl -I http://127.0.0.1能看到版本号、服务是 active、返回 200 或 403 就说明跑起来了。配置文件在/etc/nginx/站点配置在/etc/nginx/conf.d/或者sites-available日志在/var/log/nginx/。如果服务起不来先看journalctl -u nginx -n 50的输出八成是端口被占或者配置语法错误nginx -t可以专门用来测配置语法。如果目标机器连 apt 源都没有纯裸机那就走源码编译。需要提前准备gcc、make、pcre-devel、zlib-devel、openssl-devel这些开发包同样要先离线拷过去装好。编译参数我常用的是./configure --prefix/usr/local/nginx \ --with-http_ssl_module \ --with-http_gzip_static_module \ --with-http_stub_status_module make sudo make install编译这条路好处是版本自己说了算坏处是升级要重新编译。生产环境如果机器数量多我更建议在内网搭一个本地 apt 源用dpkg-scanpackages生成索引后续所有机器都从本地源装维护成本会低很多。3.3 应用商店、安装包提取和版本查询银河麒麟桌面版自带应用商店图形界面点点就能装。但商店里的软件源和命令行源是两套配置有时候商店能搜到、命令行搜不到或者反过来。商店对应的配置文件一般在/etc/apt/sources.list.d/下有个专门的 list 文件。商店打不开的话先确认网络、再确认这个源文件里的地址是否可达。有些软件只有商店里有命令行装不了这时候可以“提取安装包”。方法是先通过商店下载安装然后去缓存目录找 deb 包。apt 系下载的包在/var/cache/apt/archives/商店下载的包可能在/var/cache/kylin-software-center/之类的目录。找到 deb 之后用dpkg-deb -x xxx.deb 解包目录 dpkg-deb -e xxx.deb 控制信息目录就能把内容提取出来方便在别的机器上手动部署或者研究它的安装脚本干了什么。查软件版本有几个层次。查包管理器记录的版本用dpkg -l | grep 名称或apt policy 名称查程序自身报的版本用程序名 --version查正在运行进程对应的二进制版本可以ls -l /proc/$(pidof 程序名)/exe看真实路径再对路径执行--version。这三个结果不一致是常事尤其是手动编译装过之后覆盖了系统包的情况。排查问题时以--version和实际运行路径为准。3.4 Qt、JDK17、微信、Crossover 这些常见软件的落地开发环境这块Qt 在银河麒麟上建议优先用系统源里的版本sudo apt install qtbase5-dev qtcreator之类版本虽然不一定最新但和系统库匹配最好。自己下官方 run 安装包也能装但要注意它会自带一套 Qt 库可能导致系统里出现两套 Qt 库打架程序启动时报找不到符号。真要用官方的装完记得配好LD_LIBRARY_PATH和QT_PLUGIN_PATH。JDK17 的安装相对干净。x86_64 平台直接下官方的 tar.gz 包解压到/usr/local/然后在/etc/profile.d/下建一个jdk.shexport JAVA_HOME/usr/local/jdk-17 export PATH$JAVA_HOME/bin:$PATHsource /etc/profile.d/jdk.sh之后java -version验证。注意银河麒麟的 ARM64 平台要下对应架构的 JDK 包下错了会报“无法执行二进制文件”。微信在银河麒麟桌面版上要通过应用商店安装 Linux 原生版本不要试图装 Windows 版再用兼容层跑体验很差。装完之后有个高频需求是把聊天记录存到数据盘因为系统盘通常不大。原生微信的设置里有文件管理路径选项直接改到数据盘目录即可如果没有这个选项可以先退出微信把原目录整体搬迁到数据盘再在原位置建软链接mv ~/文档/xwechat_files /data/xwechat_files ln -s /data/xwechat_files ~/文档/xwechat_filesCrossover 这类 Windows 兼容层软件能用但别期待太高。Office 这类重度软件跑起来问题不少轻量的小工具还行。安装时优先选官方适配银河麒麟的版本版本不匹配容易在创建容器时报错。虚拟机方向如果需要完整的 Windows 环境用 VMware Workstation 或者 VirtualBox装的时候要提前准备kernel-devel、gcc、make、dkms这些否则内核模块编译不过去。Secure Boot 开着的话还要给模块签名嫌麻烦就在 BIOS 里关掉 Secure Boot。4. 桌面环境与文件管理疑难UKUI 桌面环境是银河麒麟的标志性组件日常用起来和主流桌面差别不大但出问题的时候如果不知道怎么绕过图形界面就会很被动。这一节集中讲桌面环境崩溃恢复、home 目录异常、字体、数据盘路径这几个高频问题。4.1 home 目录看不到文件怎么办“家目录里文件不见了”这个反馈我收过很多次绝大多数不是真丢了而是三种情况之一权限被改坏了、文件管理器设置了隐藏、或者家目录被挂载点覆盖了。先看权限。用ls -la ~看不到东西的时候切到 ttyCtrl Alt F2登录执行ls -ld /home/你的用户名 ls -la /home/你的用户名 | head如果属主变成了 root那就是权限问题用 root 执行chown -R 用户名:用户名 /home/用户名改完切回图形界面Ctrl Alt F1或 F7一般就恢复了。这种情况常见于误用了sudo操作家目录下的文件。再看是不是隐藏了。文件管理器里按Ctrl H切换显示隐藏文件很多以点开头的配置文件平时不显示容易让人误以为文件丢了。检查“显示隐藏文件”选项有没有被勾掉。最后看挂载覆盖。如果家目录被单独分区或者单独磁盘挂载而挂载失败挂载点目录会显示为空。用findmnt /home或者mount | grep home看有没有挂载记录再看df -h /home的可用空间是不是变成了系统盘的容量。挂载失败通常是/etc/fstab里的 UUID 写错了或者磁盘掉线了。这种时候千万不要在家目录里新建文件一旦挂载恢复新建的文件会被覆盖掉看起来就像“又丢了一次”。4.2 ukui-panel 不见了或者卡死ukui-panel是桌面底部的任务栏面板。它崩了之后症状是任务栏消失窗口还能开但没法切换、没法看时间。恢复办法很简单开个终端Ctrl Alt T如果这个快捷键也失效就用Ctrl Alt F2切 tty执行ukui-panel --replace 执行完任务栏就回来了。如果想更彻底一点先杀掉旧进程再拉起killall ukui-panel ukui-panel 如果每次开机都崩那多半是配置文件损坏。把面板配置备份后删掉让它重建mv ~/.config/ukui/panel.conf ~/.config/ukui/panel.conf.bak killall ukui-panel ukui-panel 配置重建之后之前自定义的面板布局会丢需要重新拖一下但至少能稳定用了。整个桌面环境如果都挂了可以试试重启显示管理器sudo systemctl restart lightdm这一下会把当前所有图形会话断掉所以先保存好工作。4.3 字体文件夹在哪怎么装字体银河麒麟的字体目录和标准 Linux 一致系统级在/usr/share/fonts/用户级在~/.local/share/fonts/或者~/.fonts/老版本支持。装字体最简单的做法是把 ttf、otf 文件拷到用户级目录然后刷新缓存mkdir -p ~/.local/share/fonts cp *.ttf ~/.local/share/fonts/ fc-cache -fv fc-list | grep -i 字体名fc-list能列出来就说明认到了。如果列不出来检查文件权限字体文件必须是可读的。系统级安装需要 root 权限拷到/usr/share/fonts/下对应子目录比如truetype再sudo fc-cache -fv。从其他系统迁字体文件的时候要注意授权问题商用字体必须有合法授权才能在工作环境使用这一点不要图省事。装完之后重启一下应用才能生效有些程序会缓存字体列表。如果某个程序里字体显示乱码先确认它要的那个字体名在fc-list里存在再确认程序自己的字体配置有没有指向别的路径。4.4 把微信文件、家目录迁到数据盘系统盘容量小是国产整机的通病把用户数据迁到数据盘几乎是标配操作。最规范的做法是挂载数据盘到/data然后做软链接。假设数据盘是/dev/sdb1sudo mkdir -p /data sudo mount /dev/sdb1 /data为了开机自动挂载用 UUID 写进/etc/fstabsudo blkid /dev/sdb1 sudo vim /etc/fstab加上一行UUIDxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /data ext4 defaults 0 2改完用sudo mount -a测试没有报错才算写对。fstab写错会导致系统启动进 emergency mode所以改之前先备份改完一定测试。然后迁移数据比如微信文件目录mv ~/文档/xwechat_files /data/ ln -s /data/xwechat_files ~/文档/xwechat_files整个家目录迁到数据盘也可以但更麻烦涉及权限、SELinux 标签、桌面配置。我一般建议只迁大目录文档、下载、图片、微信数据、IDE 缓存、Docker 数据这些。迁 IDE 缓存要注意软链接生效前必须先关掉 IDE否则缓存文件句柄还指着旧路径容易出诡异问题。提示软链接迁移之后备份脚本、同步工具里的路径都要跟着改。我就吃过这个亏备份任务还指着老路径结果数据盘迁移之后备份一直是空的过了一个月才发现。4.5 chmod 777 到底能不能用网上很多教程遇到权限问题就让你chmod -R 777这是典型的饮鸩止渴。777 意味着任何用户都能读写执行短期内问题消失了长期看是给自己埋雷。Web 目录被 777 之后只要有一个程序有漏洞攻击者就能往里写文件并执行。可执行文件被 777 之后任何用户都能替换它。正确的权限方案是分类设置。目录用 755普通文件用 644需要执行的脚本用 755Web 上传目录如果确实需要写权限把它单独设成 775 并把 Web 服务用户加进所属组而不是开 777。命令大概是sudo chown -R www-data:www-data /var/www/html sudo find /var/www/html -type d -exec chmod 755 {} \; sudo find /var/www/html -type f -exec chmod 644 {} \;如果只是临时排查用完必须改回来。已经误操作过 777 的目录最好用find批量恢复或者从备份恢复权限。权限被改坏之后最明显的症状就是 SSH 直接拒绝密钥登录家目录或.ssh权限过于宽松时 sshd 会拒绝这时候用chmod 700 ~/.ssh、chmod 600 ~/.ssh/authorized_keys、chmod 700 ~就能修好。5. 外设、共享与网络问题这一块的问题往往出在“系统本身没问题配置没做对”。打印机能不被发现、Samba 共享连不上、SSH 版本低被扫描、串口设备找不到都是配置和使用习惯的问题。我按排查顺序来讲。5.1 打印机发现不了的排查顺序打印机问题是银河麒麟桌面版反馈最多的外设问题。排查按这个顺序走先确认物理连接和驱动服务再看网络协议最后看驱动匹配。第一步确认 CUPS 服务在跑systemctl status cups没起来就sudo systemctl start cups并sudo systemctl enable cups。CUPS 是打印服务的底座它不跑什么打印机都加不上。第二步看系统有没有识别到设备。USB 打印机用lsusb看厂商和型号网络打印机先ping 打印机IP通了再确认打印机开了 IPP631 端口、LPD515或者 RAW9100。用nc -zv 打印机IP 631测端口通不通。第三步加打印机。图形界面在“设置 - 打印机”里点添加或者在浏览器里开http://localhost:631用 CUPS 网页界面添加。添加时最关键的是驱动选择能选到对应型号的 PPD 就选选不到就试通用驱动。奔图、惠普、爱普生这些常见品牌官方一般有 Linux 驱动包装上之后型号列表里就有了。如果打印机加上了但打印没反应先把任务清空重来cancel -a lpstat -tlpstat -t能看队列状态和最近的任务。日志在/var/log/cups/error_log追着看能定位到是驱动问题还是通信问题。我遇到过一台网络打印机TCP 9100 通但发任务没反应最后发现是打印机那边开启了“仅接受 IPP 打印”换成 ipp 协议添加就好了。5.2 Samba 共享文件夹的配置要点银河麒麟和 Windows 混用的环境里Samba 是最常见的文件共享方式。装sudo apt install samba然后备份并编辑/etc/samba/smb.conf在文件末尾加共享段[share] path /data/share browseable yes writable yes valid users zhangsan create mask 0644 directory mask 0755给 Samba 单独设密码sudo smbpasswd -a zhangsan这个密码和系统登录密码是两套别混。重启服务sudo systemctl restart smbd nmbd sudo systemctl enable smbd nmbd网络层面防火墙要放行 137、138、139、445 端口。Windows 那边访问用\\IP地址如果连不上先ping再telnet IP 445测端口。连上了但提示无权限检查valid users里的用户名是不是和smbpasswd添加的一致以及共享目录的本地权限用户能不能进。注意Windows 新版本默认可能禁用了 SMB1而老配置里如果强制 SMB1 会连不上。在smb.conf的[global]段里设置server min protocol SMB2基本能解决大部分兼容问题。另外共享目录不要设成 777用chown把属主给到相应用户再配合 Samba 用户认证就够安全了。5.3 SSH 升级和串口设备查询内网安全扫描经常报 SSH 版本低要求升级。升级 SSH 是有风险的操作因为改坏了就再也连不上去了。我的做法是先保持当前会话不要断开另开一个会话做操作升级前备份/etc/ssh/整个目录优先用官方源里的新版包源里没有才考虑源码编译。源码编译升级的流程大致是装gcc make zlib-devel openssl-devel pam-devel下载新版源码./configure --prefix/usr --sysconfdir/etc/ssh --with-pammake之后先别make install而是把新生成的sshd二进制拷到/usr/sbin/sshd.new然后停服务、备份旧的、替换、启动。启动前一定用sshd -t -f /etc/ssh/sshd_config检查配置语法通过之后再重启。如果新版本和旧配置文件有参数不兼容sshd -t会直接报出来。串口设备查询在工控场景很常用。插上 USB 转串口线之后dmesg | grep -i tty ls -l /dev/ttyUSB* /dev/ttyS*dmesg里能看到设备识别和分配的设备名通常是/dev/ttyUSB0。要看更详细的信息用udevadm info -a -n /dev/ttyUSB0如果每次插拔设备名都变可以写 udev 规则按序列号固定名字。串口调试还需要权限普通用户默认不在dialout组里加进去sudo usermod -aG dialout $USER重新登录生效。然后用minicom或者screen /dev/ttyUSB0 115200测试通信。5.4 上网受限和网络配置排查“系统能连上但上不了网”这个描述太笼统我一般拆成四层查链路层、IP 层、DNS、认证。链路层看网卡状态ip link是否有 UP有没有获取到 IPip addr看。DHCP 没拿到就sudo dhclient 网卡名手动获取一次或者用nmcli管理。银河麒麟桌面版默认用 NetworkManager服务器版可能是 network-scripts 或者 Netplan先用nmcli device status判断用的是哪套。IP 层看路由ip route默认网关在不在能不能ping 网关IP。能 ping 通网关但 ping 不通外网那就是路由或者出口的问题。DNS 层用nslookup或dig测域名解析解析不了就检查/etc/resolv.conf。注意 NetworkManager 管理的系统里直接改/etc/resolv.conf会被覆盖正确做法是在连接配置里加 DNSnmcli connection modify 连接名 ipv4.dns 223.5.5.5 114.114.114.114 nmcli connection up 连接名最后一层是认证。很多单位的内网需要客户端认证没认证的话 IP 能拿到但流量出不去。表现就是 ping 网关通、ping 外网 IP 不通。这种情况得装单位指定的认证客户端配置好账号密码。6. 系统维护与日常工具最后这一节讲几个零散但高频的点命令速查、刻录、图片转 PDF、虚拟机、还有那个让人抓狂的“登录界面循环”。6.1 常用命令速查表银河麒麟的日常运维下面这些命令基本够用。我按用途分类整理用途命令查发行版版本cat /etc/os-release查内核版本uname -r查架构uname -m查磁盘分区lsblk -f/fdisk -l查磁盘占用df -h/du -sh 目录查内存free -h查进程ps aux查端口占用ss -lntp查服务状态systemctl status 服务名查日志journalctl -u 服务名 -n 100查网络配置ip addr/ip route查已装软件dpkg -l查文件权限ls -l/stat 文件压测网络ping/mtr/curl -I这套命令在银河麒麟上通用服务器版桌面版都能跑。存一份在手边排查问题的时候能省很多时间。6.2 刻录和图片转 PDF 这类小工具K3B 是 KDE 系的刻录工具在银河麒麟上能装sudo apt install k3b装完如果启动报缺少解码器按提示补对应的包就行。刻录数据光盘基本是拖拽加点击没什么难度刻录系统 ISO 记得选“刻录镜像”模式不要用数据模式拖文件否则刻出来的盘不能引导。图片转 PDF 有两个常用方案。ImageMagick 的convert最直接convert 01.jpg 02.jpg 03.jpg 输出.pdf但convert会把图片重新编码画质有损、文件偏大。要求无损又要小的用img2pdfsudo apt install img2pdf img2pdf 01.jpg 02.jpg -o 输出.pdfimg2pdf不重新编码直接把 JPEG 塞进 PDF 容器速度快、体积小。扫描件转 PDF 我强烈推荐这个。注意img2pdf只吃 JPEG 和无损格式PNG 也支持如果是 WebP 之类要先转格式。6.3 虚拟机、双系统与引导在银河麒麟上装虚拟机VMware Workstation 和 VirtualBox 都能用前提是把编译环境配好。装之前sudo apt install gcc make linux-headers-$(uname -r) dkmslinux-headers必须和当前运行的内核版本严格对应装错了模块编译不过。如果装完报“内核模块未加载”先sudo /etc/init.d/vmware start或者sudo modprobe vboxdrv手动加载看报错再对症处理。Secure Boot 开启时必须给模块签名否则加载会被拒绝。嫌麻烦就在 BIOS 里关掉 Secure Boot。装 Windows 双系统的顺序是先装 Windows再装银河麒麟让 GRUB 最后接管引导这样它能自动扫描到 Windows 并加进菜单。反过来先装麒麟再装 WindowsWindows 会覆盖引导记录需要用麒麟的安装 U 盘进救援模式重装 GRUB。分区上UEFI 模式要有一个 EFI 分区两个系统共用传统 BIOS 模式没这个要求。磁盘顺序如果有两块盘建议把两个系统装在各自独立的盘上引导菜单在 BIOS 里切这样最不容易互相干扰。系统 U 盘制作官方镜像用dd写入即可sudo dd ifkylin.iso of/dev/sdX bs4M statusprogress oflagsync/dev/sdX一定要确认是 U 盘设备名写错盘就麻烦了。写完如果 BIOS 里认不到检查是不是 UEFI 和 Legacy 模式对不上或者换一个 U 盘重写有些 U 盘主控在 dd 写入后会有兼容问题。6.4 登录界面循环进不去桌面“输完密码又弹回登录界面”这个问题很经典原因通常有四个家目录权限错误、磁盘满、.Xauthority属主不对、显卡驱动异常。权限错误最常见前面 4.1 讲过用 tty 登录后chown -R修。磁盘满的话df -h一看就知道通常是/或者/home分区满了清理日志和缓存即可sudo journalctl --vacuum-size200M sudo apt clean.Xauthority属主问题ls -l ~/.Xauthority sudo chown 用户名:用户名 ~/.Xauthority显卡驱动异常的话日志里会有明显报错。看~/.xsession-errors和/var/log/lightdm/下的日志。前段时间我就碰到过一台机器装完显卡驱动之后登录循环最后查到是新驱动的 GL 库和系统里原有版本冲突卸载新驱动恢复默认就好了。排查这类问题的通用思路是先切 tty 确认能命令行登录能登说明账号权限基本正常再看磁盘空间再看日志最后才是驱动。按这个顺序走大部分登录循环都能定位到原因。7. 常见问题速查表把上面这些内容压成一张表方便遇到问题时快速定位。这张表是根据我自己和身边同事实际遇到的问题整理的不覆盖全部场景但能解决八成常见故障。症状最可能的原因快速处理root 密码忘了无GRUB 加init/bin/bash进单用户重置root 无法登图形界面lightdm 限制改 lightdm 配置和/root/.profile家目录看不到文件权限被改 / 挂载失败chown修权限 / 检查findmnt /home任务栏消失ukui-panel 崩溃ukui-panel --replace 双击 deb 无反应缺图形化安装器sudo apt install gdebi或命令行dpkg -i软件装不上源不通 / 架构不匹配apt update确认uname -m与包架构一致离线装 nginx 缺依赖包不全 / 顺序问题同源同架构机器--download-only拉全套登录界面循环权限 / 磁盘满 / 驱动tty 登录查df -h、~/.xsession-errors打印机加不上CUPS 未跑 / 协议不符systemctl status cups换 IPP 协议添加Samba 连不上防火墙 / 认证放行 445smbpasswd -a加用户硬盘不见了驱动 / 分区表 / 挂载覆盖lsblk -f、blkid逐层确认上网受限DNS / 认证nmcli改 DNS装单位认证客户端chmod 777 后 SSH 拒登权限过宽.ssh700authorized_keys600家目录 700修改账户名后 sudo 失效sudoers 未同步手工改/etc/sudoers或加新用户重建我个人的习惯是每处理完一个新问题就往这张表里加一行。时间长了它就成了自己的知识库比任何文档都好用。最后分享一个小经验。银河麒麟这类国产系统版本迭代比较快很多网上搜到的教程是针对旧版本的照抄很容易踩坑。遇到问题的第一反应不要是搜教程而是先执行cat /etc/os-release和uname -r把版本信息拿到手再去搜或者直接去官方文档和官方社区找对应版本的内容。我见过太多人拿着一份 V10 早期的教程去操作 SP1 的系统结果命令路径全变了白白折腾半天。版本信息就是排障的地图先把地图拿到手后面才走得顺。