ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

银河麒麟入门:理清Linux分层、排障与开发迁移

银河麒麟入门:理清Linux分层、排障与开发迁移 装过多台银河麒麟之后我最直接的一个感受是不少人把它当成一个完全陌生的新系统上手先慌其实它骨子里就是一套Linux。你在 Ubuntu、CentOS、Debian 上会用的那套东西——命令行、目录结构、权限模型、服务管理——到了银河麒麟上基本照搬真正需要重新学的只是包管理体系、桌面环境细节和那些被定制过的边角。这篇文章不打算写成一份命令手册而是想把从零认识一套 Linux 桌面系统这件事拆开哪些是通用的底层逻辑哪些是发行版之间的差异遇到具体毛病时应该按什么顺序去查。适合刚接触 Linux 的运维新人、需要把开发环境搬到 Linux 的程序员也适合手头被分配了一台预装银河麒麟工作机、想先搞明白它到底怎么回事的人。我不会只给命令清单每条命令都会说清楚它解决什么问题、为什么放在这个位置以及我自己踩过的坑。1. 内核是同一套外壳差很多先理清 Linux 和银河麒麟的关系很多人对 Linux 的困惑其实卡在概念层级上。你把内核和发行版这两层分清楚后面所有问题都会变得有迹可循。1.1 把内核、发行版、桌面环境拆成三层来看内核负责管硬件、管进程调度、管内存和文件系统它是唯一真正跟 CPU 打交道的那层。但它本身不会给你一个能点鼠标的界面也不带包管理器。发行版在内核外面包了一圈东西一套基础用户空间工具ls、grep、cp 这些、一个包管理器、一套配置约定最后再套上一个桌面环境。银河麒麟就是发行版这一层的产物。我的类比是内核是发动机发行版是整辆车桌面环境是内饰和仪表盘。你在银河麒麟上敲ls这个ls来自基础用户空间工具跟你在别的发行版上敲的是同一类东西你打开文件管理器点来点去那是桌面环境在干活。搞清这三层的分工你就明白为什么银河麒麟跟 Ubuntu 像不像这个问题本身问得不太对——要看你比的是哪一层。有个实操细节必须先确认不同版本分支的银河麒麟底层取用的包管理体系并不完全一样。动手装东西之前先跑一遍下面的命令把系统的真实身份摸清楚别凭印象猜。cat /etc/os-release uname -r which apt dnf yum zypper 2/dev/null/etc/os-release告诉你发行版名称和版本号uname -r告诉你内核版本最后一条命令告诉你这台机器有哪个包管理器可用。这三条信息拿到手后面查资料、找安装包才不会南辕北辙——我见过太多人拿着 rpm 的教程在一台 deb 系机器上硬敲敲到怀疑人生。1.2 目录约定是 Linux 的通用语Linux 的文件系统布局有一套约定跟 Windows 的 C 盘 D 盘完全不是一个思路。Windows 是按物理盘分区Linux 是一棵从/长出来的树所有盘、U 盘、网络共享都挂到这棵树上的某个目录里。Windows 习惯Linux 对应位置说明C:\Program Files/usr/bin、/opt系统级程序装在这/opt常给第三方大软件C:\Users\你/home/你你的家目录个人配置和文件都在这注册表/etc系统级配置全是纯文本文件C:\Windows\Temp/tmp、/var/tmp临时文件/tmp重启常被清空任务管理器top、htop、systemctl进程和服务分开管这套约定的价值在于任何一台 Linux不管什么发行版你都知道配置文件在/etc日志在/var/log用户数据在/home。这就是为什么换系统之后学习成本没有想象中高——你换的是包管理器和桌面不是整个世界观。1.3 三个新手最容易栽的认知坑第一个坑把背命令当成学 Linux。命令有几百条谁也记不住。真正要记的是思路我要做什么、这件事应该归哪一层管、哪里能查到。man 命令名、命令名 --help、/usr/share/doc这三个地方能解决绝大多数问题。第二个坑以为 root 能解决一切。权限不够就sudo改了没用就sudo加更多参数最后把系统配置改得一团糟还找不回原来的状态。root 是能改的权限不是该改的判断。第三个坑图形界面坏了就以为系统坏了。桌面起不来、登录卡住、界面闪退这类问题九成发生在桌面环境层底层系统往往好好的。这时候按CtrlAltF2切到字符终端用命令行进去看日志往往几分钟就能定位。提示初次接触一台新机器先花五分钟做完三件事——确认发行版和内核版本、确认自己有没有 sudo 权限、确认系统盘剩余空间。这三条信息在后面排查绝大多数问题时都要用到。2. 上手之前先把试错成本压下来虚拟机、真机和双系统的取舍我见过太多人第一件事就是拿主力机开刀分区一划错工作资料全没。这一节专门讲怎么把试错成本降到最低。2.1 第一套环境为什么强烈建议放虚拟机里虚拟机的好处不是方便而是可丢弃。分区搞坏了、把系统配置改崩了、想试试某个有风险的操作直接删掉重来五分钟一套干净环境。这是真机给不了的。资源分配上我常用的起步配置是 2 核 CPU、4GB 内存、60GB 磁盘。桌面版比服务器版吃资源得多2GB 内存跑图形界面会卡到你想砸键盘。磁盘选动态分配而不是固定大小能省下大量宿主空间。有几个虚拟机特有的坑值得提前说显示缩放问题。高分辨率屏幕上虚拟机里的界面可能小得看不清装完系统第一件事是装增强工具VirtualBox 的 Guest Additions 或 VMware 的 open-vm-tools分辨率才能自适应。3D 加速开关。桌面环境需要图形加速如果虚拟机里的窗口拖动发卡、动画撕裂去虚拟机设置里把 3D 加速打开再重启。剪贴板共享。装了增强工具之后才能双向复制粘贴不装的话你会在宿主机和虚拟机之间来回手敲命令效率极低。快照点要主动打。装完系统打一个装完开发环境再打一个。后面任何一步搞崩了回滚一分钟的事。2.2 银河麒麟和 Windows 共存时分区和引导怎么规划如果你确实要在真机上装双系统规矩只有一条先装 Windows再装 Linux。反过来做Windows 的引导程序会把 Linux 的引导覆盖掉虽然能修但没必要给自己找麻烦。分区方案我一般这么划以 500GB 的盘、分 120GB 给 Linux 为例挂载点建议大小用途/boot/efi300–500MBEFI 引导分区与 Windows 共用即可别重复建/40–60GB根分区系统和软件都在这/home剩余大部分个人数据和配置重装系统时可以保留swap内存大小的 1–2 倍休眠和内存不足时的缓冲内存够大可以小一些动手之前Windows 那边有两件事必须先处理一是关掉快速启动。这个功能让 Windows 关机时不完全释放文件系统Linux 挂载 NTFS 分区时会出现只读或者干脆挂载失败。在控制面板的电源选项里找启用快速启动取消勾选。二是确认磁盘加密状态。如果 Windows 开了设备加密或者 BitLocker调整分区前务必先备份恢复密钥并暂停加密否则分区表一动恢复密钥对不上数据就真拿不回来了。装完之后容易撞上一个经典问题时间差 8 小时。原因是 Windows 把主板硬件时钟当本地时间Linux 默认当 UTC 时间两边理解不一致。解决办法是在 Linux 里执行一条命令让它也按本地时间读硬件时钟timedatectl set-local-rtc 1 --adjust-system-clock timedatectl status至于有些场景是需要把机器整体换成 Windows那就属于重装范畴了。我的建议是动系统盘之前先用整盘克隆工具做一份完整镜像。这句话听起来像废话但真到数据没了的时候它就是唯一的退路。2.3 镜像校验和启动盘制作一个字节都不能错安装过程中各种莫名其妙的报错很多源头在镜像本身。下载完镜像第一件事是校验。sha256sum ./你的镜像文件.iso拿输出值跟官方公布的校验值逐位对比。不一致就重新下载别抱侥幸心理——压缩包解压报错、装到一半卡死、引导不进去都可能是因为这一个原因。写启动盘的工具有不少选择核心注意两点一是选对目标设备别把宿主机的数据盘当 U 盘写了二是写完之后最好校验一次写入结果。U 盘本身也别太老容量小于 8GB 的老盘经常写不下完整的桌面版镜像。提示如果安装过程中卡在分区步骤先回到手动分区页面看清每块盘的容量和现有分区布局别直接点自动分区。自动分区在已经装有 Windows 的盘上是比较容易误伤现有数据的环节。3. 高频命令背后的逻辑权限、用户、网络这三条主线日常运维摸来摸去八成的问题都落在权限、用户、网络这三条线上。这一节不讲命令大全讲每条线为什么要这么查。3.1 权限模型和 chmod 777 的代价Linux 每个文件有三组权限分别对应属主、属组、其他人每组有读r、写w、执行x三个位用数字表示就是 4、2、1。数字含义典型场景644属主可读写其他人只读普通文本、配置文件755属主可读写执行其他人可读可执行目录、可执行程序600只有属主可读写私钥、含密码的配置777所有人可读写执行几乎没有正当理由chmod 777之所以被反复批评不是因为它不好看而是它直接把最小权限原则扔掉了。任何进程、任何用户都能改写这个文件一个被入侵的低权限账号就能顺着它提权。更危险的是chmod -R 777 /这种写法会连带把sudo、passwd这些系统命令都变成人人可改等于把门锁全拆了。遇到权限不够的时候正确的做法是问三个问题这个操作是哪个用户在执行这个文件应该归谁所有它真正需要的最小权限是什么然后对症下药。ls -l 目标文件 # 先看现状 sudo chown 用户名:组名 目标文件 # 属主不对就改属主 sudo chmod 640 目标文件 # 再给最小够用的权限如果是 Web 目录之类的共享场景别图省事用 777用组权限来解决把服务账号加进同一个组目录设成 775 并加上 setgid 位新文件自动继承组。3.2 新建用户、改密码、找回 root 密码的完整链路先说建用户。系统里一般有两个语义相近的命令行为不一样sudo useradd -m -s /bin/bash zhangsan # 底层命令不会自动建家目录要加 -m sudo passwd zhangsan # 设置密码 sudo usermod -aG sudo zhangsan # 加进 sudo 组按需adduser是上层封装会交互式地问你密码、姓名等信息还会顺手把家目录建好。给人用的话我更推荐adduser脚本里批量建号才用useradd。改普通用户自己的密码很简单登录后直接passwd先输入旧密码再输两遍新密码。管理员帮别人改就直接sudo passwd 用户名不需要旧密码。真正要讲的是忘了 root 密码怎么进。这不是什么见不得光的操作是每个运维必须会的应急手段。思路是在引导阶段抢到内核参数的编辑权让系统直接进一个不需要密码的单用户 shell然后改密码。重启机器在引导菜单出现时按e进入内核参数编辑界面。找到以linux或linuxefi开头的那一行在行尾追加rw init/bin/bash。按CtrlX或F10启动进入一个 root 权限的 shell。执行passwd root设置新密码。如果系统启用了强制访问控制还需要执行touch /.autorelabel否则下次启动可能因为安全标签不匹配而进不去。执行exec /sbin/init或直接重启。提示这套流程必须在物理接触机器或者有控制台权限的前提下才能做同时也意味着任何能物理接触机器的人都能重置密码。所以机房门禁和磁盘加密不是可选项——真要保护数据加密才是最后一道防线。3.3 DNS 配置出问题时的排查顺序DNS 问题的典型症状是ping 8.8.8.8通但ping 某个域名报未知的主机。这说明网络层的连通性没问题卡在名字解析上。排查顺序我固定按下面这条链走第一步看解析结果到底从哪来。/etc/hosts的优先级通常高于 DNS 服务器如果那里有一条错误的静态记录你怎么改 DNS 都没用。第二步看解析器配置。/etc/resolv.conf里有没有有效的nameserver条目。这里有个高频坑这个文件在很多系统上是由网络管理服务动态生成的你手动改完网络一重连就被覆盖回去。正确的做法是通过网络管理工具去配置而不是直接编辑文件。cat /etc/resolv.conf resolvectl status 2/dev/null || nmcli dev show | grep DNS第三步验证 DNS 服务器本身通不通。直接用dig 指定DNS服务器 域名测试能通说明是本地配置问题不通说明是 DNS 服务器或出口策略问题。第四步看名字解析的优先级顺序。/etc/nsswitch.conf里的hosts:行决定系统先查文件还是先查 DNS被改动过会导致解析行为跟预期不一致。第五步检查本地缓存服务。如果系统跑了本地缓存解析服务缓存里存了错误记录也会导致解析异常重启服务清一下缓存往往立竿见影。把这五步形成肌肉记忆DNS 相关问题基本能在十分钟内定位到具体环节。3.4 串口、打印机这类外设从设备节点查起外设问题的排查逻辑是自下而上先确认系统有没有认出硬件再确认驱动有没有绑定最后才看应用层配置。查串口关键是找到设备节点ls -l /dev/ttyS* # 板载串口 ls -l /dev/ttyUSB* # USB 转串口 dmesg | grep -i tty | tail -20 # 看内核认到了什么热插拔 USB 转串口线之后再跑一次dmesg | tail能看到内核新识别出的设备名一般是/dev/ttyUSB0。如果同时插了好几根编号可能变成ttyUSB1、ttyUSB2靠编号认设备是不牢靠的做法。稳妥的方案是写 udev 规则根据设备的序列号固定成一个好记的名字。打印机是另一个高频痛点。桌面版系统里打印服务通常是 CUPS 在管排查也是从底层往上lpstat -p -d # 看打印机状态和默认打印机 systemctl status cups # 打印服务本身在不在跑 lpinfo -v # 列出系统能发现的打印设备如果lpinfo -v里根本看不到设备说明系统没认到打印机问题在驱动或连接层如果能看到但打印没反应问题多半在队列或驱动匹配上。找不到打印机最常见的三个原因型号太新没有对应驱动、网络打印机所在的网段不通、USB 连接但打印机处于休眠状态没被唤醒。挨个排除比反复点添加打印机有用得多。4. 那些让人抓狂的小毛病乱码、登录循环、账户名和激活这一节讲的全是看起来不大、但能耗掉你一整天的问题。它们的共同点是症状在表面原因在底下好几层。4.1 解压乱码编码问题比想象中顽固从 Windows 打包过来的压缩包解压之后文件名全是问号或者方块这是 Linux 用户遇到频率最高的乱码场景。原因很简单Linux 桌面默认用 UTF-8 编码而 Windows 上的压缩工具默认用 GBK 编码存文件名两边的字节序列对不上系统就按错误的方式去解读了。解法按场景分三种# 场景一zip 包用 7z 指定文件名编码 7z x 压缩包.zip -mcp936 # 场景二已经解压出乱码用 convmv 批量改名先加 --list 预览 convmv -f GBK -t UTF-8 -r --notest ./乱码目录 # 场景三文件内容乱码用 iconv 转码 iconv -f GBK -t UTF-8 原文件.txt -o 新文件.txt这里有个必须提高警惕的点convmv和iconv都是不可逆的破坏性操作。转错了、参数写反了原来的文件名或内容就被覆盖掉了。所以第一步永远是在副本上试确认结果对了再动原始文件。内容乱码还有一类原因不在编码而在终端系统语言环境设置成了非 UTF-8导致终端显示层解码错误。用locale命令看一眼当前的LANG值正常应该是zh_CN.UTF-8或en_US.UTF-8之类。改这个要动/etc/locale.conf或者系统的区域设置工具改完记得重新登录才生效。4.2 登录界面循环一条从权限查到磁盘的排查链输对了密码屏幕黑一下又回到登录界面这个现象在网上被问得特别多。它的成因不止一种但排查顺序是固定的按下面这条链走基本都能揪出来。第一站磁盘是不是满了。这是最容易被忽略也最常见的原因。根分区写满之后桌面环境启动时需要写入会话文件写不进去就启动失败于是被踢回登录界面。df -h du -sh /var/log/* | sort -h | tail -10日志目录往往是空间杀手。如果/var/log占了几十 GB多半是某个服务在疯狂刷日志先清日志再排查那个服务。第二站家目录的属主和权限。如果曾经用sudo跑过图形程序家目录下会生成属主是 root 的文件比如会话授权文件。当前用户读不了写不了会话建立失败。ls -la ~ | head -30 ls -ld ~ sudo chown -R 用户名:用户名 /home/用户名最后那条命令要慎用改之前先确认家目录里确实有属主错乱的文件别盲目全改。第三站临时目录权限。图形会话需要在临时目录里创建 socket 文件权限不对就建不出来。ls -ld /tmp标准状态应该是drwxrwxrwt那个结尾的t是粘滞位表示只有文件属主能删自己的文件。如果权限不对改成 1777 即可。第四站图形驱动。如果是刚更新完系统或者刚换过显卡重启后就进不去桌面那基本是驱动的问题。这时候按CtrlAltF2切到字符终端登录看日志cat ~/.xsession-errors journalctl -b -u display-manager --no-pager | tail -50日志里会明确告诉你是哪个组件崩了。定位到具体组件之后处理方式就很清晰了——回退驱动、重装桌面环境、或者修配置文件。4.3 改账户名和迁移家目录改账户名这件事图形界面里通常不给入口得走命令行。而且这不是改一个字段那么简单用户名在系统里到处都是引用改漏一处就会出现能登录但某些东西不对的怪现象。sudo usermod -l 新名字 旧名字 # 改登录名 sudo groupmod -n 新名字 旧名字 # 改同名用户组 sudo usermod -d /home/新名字 -m 新名字 # 改家目录并迁移数据执行之前务必做三件事确认这个用户没有正在运行的进程。名字改了而进程还挂着旧身份容易出现权限混乱。用ps -u 旧名字检查有的话先退出登录。检查有没有服务或定时任务引用这个用户名。系统服务配置文件、计划任务、数据库连接配置里都可能写死了用户名改完系统名之后这些地方要同步更新。确认家目录权限正确。迁移完成后ls -ld /home/新名字看一眼属主不对就立刻改回来。提示改用户名之前先用文本方式列一遍引用位置在家目录和/etc下搜旧名字把所有引用点记下来改完挨个对照确认。这一步花十分钟能省掉后面几小时的反复排查。4.4 激活状态和系统时间的隐性关联商用发行版通常有授权机制状态查询和续期这类操作先看系统自带的授权管理工具命令行和图形界面一般都提供了入口。真正要提醒的是两个容易被忽视的细节一是系统时间。授权校验通常要对比时间戳系统时间被改得离谱比如之前在 Windows 双系统里折腾过硬件时钟校验就可能失败。所以遇到明明在有效期内却提示未授权先跑timedatectl status看一眼时间对不对。二是换硬件之后要重新授权。授权往往跟硬件指纹绑定换了主板、网卡之后需要重新走一遍激活流程这不是系统出问题是正常的机制。5. 把开发者的活接过来跨平台编译、内核模块和整机备份前三节讲的是使用和维护这一节往深走一层面向需要在银河麒麟上真正跑起工程的人。5.1 VS 工程搬到 Linux 上编译要动的几处地方把 Windows 上用 Visual Studio 写的工程挪到 Linux第一次编译几乎不可能一次过。这些报错不是玄学来源基本固定我把最常见的几类列出来。报错现象根本原因处理方向找不到头文件文件名大小写不一致Linux 文件系统大小写敏感Windows.h和windows.h是两个文件路径相关编译错误Windows 用反斜杠Linux 用正斜杠统一改成/或使用跨平台路径库莫名其妙的语法错误源文件是 GBK 编码编译器按 UTF-8 解析转成 UTF-8含中文的源文件建议加 BOM链接不到符号缺少第三方库或链接顺序不对补齐开发包注意-l参数的顺序行尾符告警CRLF 与 LF 不一致统一成 LF配置编辑器自动转换工程组织的思路也要换。Windows 上靠.sln文件管依赖Linux 上一般用 CMake 或者 Makefile。迁移的时候不用一次性全改先把编译单元跑通再逐步替换平台相关的代码段——Windows 专有的 API 需要找跨平台替代方案这部分工作量才是大头值得单独排期。编译工具链的确认也不能省gcc --version g --version cmake --version make --version系统自带的编译器版本往往偏旧如果工程要求较新的 C 标准可能要另外装高版本工具链或者用容器/工具链管理的方式隔离出来别去覆盖系统自带的编译器那是给自己埋雷。5.2 内核模块拦截读写操作思路、边界和风险有安全审计或者文件加密需求的场景会涉及在文件操作层做拦截。基本原理是利用内核提供的文件操作结构体把目标文件的读写函数指针替换成自己的实现在转发给原函数前后做一些额外处理。这个方向的技术要点有这么几条一是接口形态的差异。传统上通过file_operations结构体来做但挂载式文件系统里的操作通常需要走file_operations而内核里还有一层address_space_operations处理页缓存层的读写。要做完整拦截两层都得考虑否则缓存命中的读操作会绕过你的逻辑。二是符号获取方式的变化。早期直接调用内核导出的符号查找函数就能拿到目标函数地址但较新的内核版本对该符号的导出做了限制直接引用会链接失败。常见的替代思路是通过注册内核探针在运行时捕获地址或者自己维护符号解析逻辑。这一块跟内核版本强绑定写一次就能到处跑的想法是不现实的。三是必须说明的风险和边界。这类模块一旦出问题轻则功能失效重则系统直接崩在启动阶段。所以只在你有完全控制权、且可以随时恢复的机器上做实验最好放在虚拟机里。开发阶段务必准备好恢复手段保留一个可引导的备用内核或者能在引导菜单里进单用户模式卸载模块。模块编译要严格对齐目标机器的内核版本和配置头文件路径一般在/lib/modules/$(uname -r)/build。涉及数据加解密逻辑时密钥管理方案要提前设计别把密钥硬编码进模块——那是把保险箱钥匙贴在保险箱上。# 加载和卸载模块的基本操作 sudo insmod 模块.ko lsmod | grep 模块名 sudo rmmod 模块名 dmesg | tail -30 # 模块的打印信息都在这出问题第一眼看这个dmesg是这个场景下最重要的调试窗口模块里的任何异常它都会吐出来。5.3 整盘备份和迁移别等出事才想起这件事整盘克隆工具的核心价值是块级复制它不看文件系统里的文件直接把磁盘扇区一个字节一个字节地搬过去所以引导记录、分区表、隐藏分区全都在。做系统迁移、批量部署、灾难恢复这是最直接的手段。流程上分三步第一步做源盘镜像。从启动盘引导进克隆工具选择设备到镜像把源盘打包成一个镜像文件存到外接硬盘上。压缩选项建议开启能省一半以上空间代价是时间变长。第二步恢复到目标盘。选择镜像到设备注意目标盘容量不能小于源盘。如果目标盘更大恢复完之后还需要扩展分区才能用上多出来的空间。第三步处理恢复后的适配问题。这一步最容易被忽略。换到不同硬件之后磁盘的 UUID 变了/etc/fstab里的挂载项会对不上表现为启动卡住或者进不了系统。blkid # 查看当前磁盘的实际 UUID cat /etc/fstab # 对照这里的记录引导记录也要重新写入如果引导进不去从启动盘引导后用修复工具重新安装引导程序。这两步做完系统才算真正迁移成功。提示备份的验证不能只看流程跑完了。恢复完之后一定要实际启动一次目标盘确认能进系统、能联网、常用软件能打开。没验证过的备份不叫备份。5.4 生态软件和开发环境装什么、从哪装、怎么装Linux 桌面能不能干活很大程度取决于你的常用软件有没有对应版本。这些年情况好很多办公套件、通讯工具、浏览器、设计软件陆续都有了 Linux 版本很多发行版还内置了应用商店直接搜索安装最省事。装软件的优先级我建议这样排系统自带的应用商店。图形化操作依赖自动处理最不容易出错。官方提供的安装包deb 或 rpm。去软件官方渠道下载别从来路不明的网盘链接拿包。系统包管理器安装。命令行一把梭适合熟悉之后批量处理。源码编译。最后的选择能不用就不用除非这个软件只有源码。用包管理器装本地包的时候有个高频坑直接装会报一堆依赖缺失让人以为包坏了。# deb 系 sudo dpkg -i 软件包.deb sudo apt -f install # 自动补齐缺失的依赖最后那条命令是关键它会根据已有的包状态自动解决依赖关系。第一次装 Linux 的人经常卡在这里以为需要一个个手装依赖其实一条命令就搞定了。开发和运行环境方面Python 的安装方式值得单独说一句。不要用源码编译的方式装 Python 然后去覆盖系统自带的那份因为系统里很多工具依赖系统的 Python动了它可能直接导致包管理器或者桌面组件失效。正确的做法有三种用系统包管理器装同版本用版本管理工具在用户目录下装独立环境用虚拟环境隔离项目依赖。核心原则就一条——系统自带的 Python 归系统用你的项目用你自己的。最后分享几点个人体会一套 Linux 系统真正的学习曲线不在于命令有多少条而在于你脑子里有没有那张分层地图。底层是内核上面是发行版再上面是桌面环境和应用软件。任何一个问题出现先判断它落在哪一层然后去那一层对应的日志和配置里找答案比什么命令都管用。还有一件事我反复跟身边的人强调动手之前先想好怎么退回去。改配置文件先备份动分区先做镜像装新环境先打快照。Linux 给了你极高的自由度代价就是它也不会拦着你把系统搞崩。留好退路的操作才叫操作没有退路的操作那叫赌。至于具体的发行版叫什么名字、桌面长什么样、应用商店里有多少软件这些都是会随时间变的东西。真正不会过期的是那条排查链路和那套分层思路。
返回列表