
1. 先弄明白麒麟V10SP1的数据盘到底是怎么回事银河麒麟桌面操作系统 V10 SP1 的系统重装保留数据盘本质上不是某个复选框的功劳而是你在动手之前有没有把这块盘的身份、挂载方式、归属关系摸清楚。很多人第一次重装都会下意识地认为数据盘就是独立分区只要安装时不勾格式化就行。这个判断方向是对的但真实场景往往比这复杂——数据盘里挂的东西不只是几个文档文件夹还牵着家目录绑定、用户 UID、应用配置、安全标签一连串问题。搞清楚这些重装才不会变成数据还在但打不开的尴尬局面。1.1 全盘安装默认切出来的那几块分区先用最朴素的方式看一眼麒麟全盘安装的默认结果。装完之后执行lsblk你能看到一块物理盘被切成了若干分区典型布局大致是这样分区典型大小挂载点作用分区1300MB~512MB/boot/efiEFI 引导UEFI 模式必需分区21GB~2GB/boot内核与 initramfs分区320GB~40GB/系统根目录装系统和软件swap内存 1~2 倍swap交换分区大分区剩余空间/data数据盘用户数据恢复分区视版本无或 recovery一键还原用的备份镜像这里面最容易被误伤的就是/data。它是整块盘里容量最大的一块很多人一看这么大肯定是我存东西的地方然后手动分区时手一抖就把它勾上了格式化。需要提醒一句不同版本、不同安装选项比如是否勾选全盘加密、是否使用 LVM切出来的分区数量会有差异。有的是/和backup放在 LVM 卷组里/data是独立普通分区有的版本把恢复分区做得比较隐蔽。所以在你自己的机器上以lsblk的实际输出为准别拿别人的截图套自己的机器。1.2 数据盘存在的意义还原系统不丢资料麒麟把/data单独拎出来核心动机是配合一键还原机制。系统盘/是可以被还原点覆盖的一旦系统出问题或者需要恢复出厂设置还原过程会把/分区刷回去但/data不动。用户的照片、文档、下载、代码仓库都放在那里所以还原完系统人还是你东西还在。理解了这一点你就能明白重装和还原在保数据这件事上是同一个逻辑让写操作只发生在系统分区数据分区保持原封不动。问题也随之而来。既然/data是设计给数据的那么用户家目录/home/用户名里的东西在麒麟上通常是经由/data来承载的。常见做法是/data下有一个home子目录然后通过 fstab 的 bind 挂载或者通过软链接把/home的内容指向/data/home。具体是哪种方式直接决定了你重装后要不要手动补挂载配置这一步没做好重装完你会看到一个空荡荡的家目录。提示不要凭记忆判断家目录的真实位置重装前务必用df -h /home和ls -la /home亲自确认一遍。1.3 重装时哪些分区必须动、哪些绝对不能碰把分区按动不动分成三类思路会清晰很多必须重新创建或格式化的/、/boot、/boot/efi。这三个是系统的骨架重装就是换掉它们。可以保留、但要重新挂载的/data。它是本次任务的主角保留数据、只补挂载配置。视情况处理的swap。可以复用原来的 swap 分区也可以让安装器新建问题不大。恢复分区则看你要不要继续用一键还原如果要建议保留原样。一个常见的错误认知是重装就是全盘重来。如果你打算保数据这个认知本身就是最大的风险源。真正要建立的观念是这是一次外科手术只切系统那几刀数据那块原地不动。后面所有的操作都是围绕怎么在安装器里精准地只切系统分区展开的。2. 动手前的信息抄录把旧系统的底账留下来我见过太多人重装到一半才发现我忘了数据盘是哪个分区我忘了挂载参数怎么写的。安装器一旦启动旧系统的/etc/fstab你就再也读不到了因为/已经被覆盖。所以这一节的所有操作必须在旧系统还能正常运行的时候完成。这是整个流程里唯一一段只能提前做、不能事后补的工作。2.1 用 lsblk 和 blkid 摸清磁盘拓扑先看结构再看标识。两条命令各有分工# 看分区树状结构和容量 lsblk -o NAME,SIZE,FSTYPE,MOUNTPOINT # 看每个分区的 UUID、TYPE、LABEL sudo blkidlsblk帮你确认哪块盘、哪个分区挂着/data容量多大blkid帮你拿到分区的 UUID。为什么要 UUID 而不是/dev/sda3这种设备名因为重装之后设备名的顺序可能变——插拔过硬盘、换过启动顺序、BIOS 识别差异都可能导致sda3变成sdb3。UUID 是分区创建时生成的只要分区不重新格式化就永远不变用 UUID 写 fstab 才稳。我的习惯是把这两条命令的输出原样重定向到一个文件再顺手复制到 U 盘或者另一台机器上lsblk -o NAME,SIZE,FSTYPE,MOUNTPOINT,UUID /data/backup/disk-info.txt sudo blkid /data/backup/disk-info.txt别小看这一步。等你重装完对着分区表发懵的时候这个文件就是你的地图。2.2 /etc/fstab数据盘的挂载方式全在这里/etc/fstab决定了系统启动时怎么挂盘。重装后新系统的 fstab 是干净的只会包含安装器自己写的那些条目你原来那条/data的记录不会自动出现。所以现在就把整个文件抄下来cat /etc/fstab重点看这几类行一行挂载/data的记录它的 UUID、文件系统类型、挂载选项。如果有 bind 挂载选项里写着bind比如把/data/home绑到/home这行最关键重装后必须补。如果有nofail、nosuid、nodev之类的选项照抄不要自己简化。麒麟的文件系统默认是 ext4但也有版本用 xfs 或者 btrfs 的情况。挂载选项里如果出现defaults,noatime这类组合原样保留最安全。不要凭印象改参数抄下来是最省事的做法。2.3 用户 UID/GID 和家目录真实路径这是最容易被忽略、出事之后又最折腾的一环。Linux 里文件的归属记录的是数字 UID 和 GID不是用户名。你重装系统创建用户时如果用户名没变、但 UID 变了那么/data下原来属于 UID 1000 的所有文件在新系统里可能就变成了归某个陌生数字所有你登录进去会发现文件全是灰色锁头或者干脆看不到。先把现状记下来# 看当前用户的 UID / GID / 家目录 id # 单独看家目录路径 getent passwd $(whoami)输出形如uid1000(kylin) gid1000(kylin) groups1000(kylin),...和/home/kylin。把 UID、GID、用户名、家目录路径四项一起记下来。然后在重装创建用户时尽量让新用户的 UID/GID 和旧系统保持一致。如果安装器不允许指定那就创建一个同名用户装完之后用chown统一改归属。两种方案都可行但提前知道旧 UID 是多少是前提。2.4 兜底备份不依赖任何单点前面三步都是信息备份这一步是数据备份。原则很简单任何涉及分区的操作都有失败的可能哪怕你信心十足也要有一份不放在本机/data上的拷贝。我的习惯是分三层层级备份内容目标位置说明关键数据文档、代码、密钥、配置文件移动硬盘或网络存储真正丢了会疼的东西配置信息fstab、磁盘信息、已装软件清单U盘或另一台机器用于重装后快速恢复整盘快照整个 /data 分区镜像大容量外置盘有条件的做最彻底整盘镜像可以用dd或者专门的磁盘克隆工具。dd命令简单粗暴但有效sudo dd if/dev/sda3 of/mnt/usb/data-disk.img bs4M statusprogress记得把if换成你实际的/data分区设备名of换成外置盘的路径。这个过程比较耗时容量越大越慢但换来的是最完整的兜底。如果你的数据量不大直接用文件同步工具把/data整个目录拷一份过去也够用。提示备份做完一定要拔下来验证一次确认文件能打开、内容完整。备份最怕的就是以为备好了。3. 安装器手动分区把格式化这个勾去掉现在可以动手重装了。核心原则只有一条安装器里选择手动分区只对系统分区做格式化/data分区只指定挂载点、绝不勾选格式化。听起来简单但界面上的措辞和选项位置每个版本略有差异容易看走眼。3.1 引导安装介质与分区识别用制作好的启动盘引导进入安装界面一路走到分区环节时务必选择手动分区或自定义分区不要选全盘安装或者自动分区。全盘安装会重新划分整块磁盘那才是真的把你数据盘一起干掉的操作。进入手动分区界面后先别急着操作观察一会儿安装器是否识别到了原来所有分区/data那个大分区显示的已用空间对不对如果显示已用 0要警惕——可能是安装器没读到文件系统也可能它已经被误处理了。分区设备名和你在旧系统里记录的是否对得上如果安装器识别不全先退出来检查硬盘连接和启动模式UEFI/BIOS 模式不一致会导致分区表读不全。宁可停下来查清楚也别在信息不全的情况下动手。3.2 手动分区逐项配置确认无误后逐块设置。这里给一份典型配置对照表实际操作以你机器的分区大小和类型为准分区挂载点操作是否格式化原 EFI 分区/boot/efi复用指定该挂载点建议格式化干净原 boot 分区/boot复用或新建格式化原根分区/复用指定该挂载点必须格式化原 swap 分区swap复用无需格式化原数据分区/data复用指定该挂载点坚决不格式化恢复分区无保留不动不处理关键在于最后两行。数据盘那一行你要做的是选中它把挂载点填成/data文件系统类型选对比如 ext4然后确认格式化此分区这个复选框是空的。有的安装器会默认勾上一定要手动取消。这一步做完再检查一遍上方的将要执行的操作摘要如果有任何一条写着格式化 /data或者删除分区 /data立刻退回去改。这是整个重装流程里最要命的一步多看两眼不亏。3.3 关于 /home 与 /data 的挂载点抉择这里有个分叉如果你的旧系统是/data/home通过 bind 挂到/home的模式那么安装时只挂/data就行/home让安装器在/分区里创建一个普通目录。等重装完成后你再手动把 bind 挂载补进 fstab。这样做的好处是安装流程干净坏处是重装后要记得补这一步否则家目录看起来是空的。另一种做法是安装时直接把/home挂到数据盘上的某个目录。这能省掉补挂载的步骤但风险是安装器可能对/home目录做初始化操作比如写入框架文件、重置权限反而动到了你的数据。我的建议是第一种安装时只挂/data/home由系统自建重装后再补 bind 挂载。控制权在自己手里比交给安装器自动处理要稳。3.4 引导器安装位置最后一步是引导器GRUB的安装位置。UEFI 模式下引导文件安装在 EFI 分区上传统 BIOS 模式下安装在磁盘的 MBR 上。这里要注意两点一是如果机器上有多个系统比如另一个 WindowsGRUB 覆盖引导记录后原来的引导菜单可能变化需要重新配置。二是如果你之前记录过 EFI 分区的位置最好让引导器装回同一个 EFI 分区避免出现两个 EFI 分区、启动项混乱的情况。确认引导器位置无误后就可以开始安装了。安装过程会格式化系统分区、写入新系统/data分区因为没被勾选格式化会安静地待在那儿等着你重装完去挂它。4. 重装后的收尾挂载、权限、校验安装完成、重启进入新系统这时候打开文件管理器多半会看到家目录是空的别慌这是正常现象——/data还没挂回来。接下来三件事按顺序做补挂载、修权限、验数据。4.1 fstab 补齐与 UUID 校对新系统的/etc/fstab里通常只有/、/boot、EFI、swap 这几行没有/data。把你在第 2 步抄下来的那条记录补回去# 先备份新系统的 fstab sudo cp /etc/fstab /etc/fstab.bak # 用编辑器打开 sudo vi /etc/fstab添加形如这样的行UUID 换成你数据盘的真实值UUIDxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /data ext4 defaults 0 2如果旧系统还有 bind 挂载比如把/data/home绑到/home再加一行/data/home /home none bind 0 0写完之后不要急着重启先用mount -a验证配置有没有语法错误sudo mount -a df -h | grep data如果mount -a报错说明 UUID 写错或者挂载选项有问题根据报错信息修正。这一步验证通过再考虑重启。重启是最后的确认手段不是排查手段。4.2 权限与所有权修复挂载成功之后进入/data看看文件在不在。如果一切正常你会看到熟悉的目录结构。但接下来还有个高频问题文件在但打不开、改不了提示权限不足。原因通常就是第 2.3 节提到的 UID 不一致。确认新用户的 UIDid $(whoami)如果新 UID 和旧 UID 不一样把数据盘的归属改过来。假设你的用户名是kylin旧 UID 是 1000# 改归属只改用户和组 sudo chown -R kylin:kylin /data/home/kylin-R递归处理数据量大时耗时较长耐心等它跑完。如果你的数据盘里有多个用户的数据逐个目录处理别一股脑把整个/data都改成你自己的那样可能影响其他用户。麒麟系统上还有一层安全机制KySec 之类迁移过来的文件可能带有旧系统的扩展属性标签表现为某些程序读取文件受限。这种情况可以用getfattr看一下文件的扩展属性确认是否需要重新打标或者通过系统的安全中心重新设置。遇到这类问题时先确认是不是权限本身的问题再往安全标签方向排查。注意chown和chmod 777是两种完全不同的思路。不要用chmod -R 777来图省事那会把数据盘的权限体系彻底打乱后续很难收拾。4.3 数据完整性与应用配置回迁权限修好之后做一次数据完整性校验。最直接的方式是随机抽几个目录进去翻一翻打开几个大文件确认没有损坏。如果之前做过备份可以用校验和对比关键文件# 对关键目录生成校验清单 find /data/documents -type f -exec md5sum {} \; /tmp/after.txt把备份盘里的对应清单before.txt拿来对比确认两个文件列表一致。这一步对普通文档来说有点重但对于代码仓库、数据库文件这类坏了就是坏了的数据值得做。应用配置的回迁是另一个维度。你之前用的一些软件配置可能散落在/home/用户名/.config、.local这些隐藏目录里。如果这些目录当初也被放在数据盘上重装后它们会随着挂载一起回来如果它们原来在系统盘的/home里那就随系统盘一起没了。所以重装前最好把常用软件的配置目录也列一份清单方便重装后逐项恢复。5. 真实翻车现场复盘光说正确流程不够把几种典型的翻车场景摊开讲你才知道哪些地方最容易出事。5.1 数据盘被当成 /home 自动格式化这是最高频的一种。表现是手动分区时把数据盘分区的挂载点设成了/home安装器一看这是 home 目录啊就顺手做了初始化把原内容清了或者重置了权限。重装完发现家目录空了。根因在于对挂载点语义的误解。安装器对/、/home、/boot这类有特殊含义的挂载点会做额外的处理对/data这种自定义挂载点则相对老实。所以数据盘就老老实实挂/data别图省事挂/home。5.2 只保留 /data 却忘了 /home 里的东西有些系统里一部分用户文件其实放在了系统盘的/home里比如某些软件缓存、临时导出文件并没有走数据盘。重装时只保了/data这部分就丢了。排查办法是重装前看一眼/home的挂载情况df -h /home如果输出显示/home属于根分区而不是/data那就说明家目录当时不在数据盘上重装前必须单独备份/home里的内容。5.3 LVM 与普通分区混用导致的挂载失败有的版本用 LVM数据盘可能在一个卷组里。重装时如果安装器重新扫描了卷组名字可能冲突比如旧卷组叫kylin-vg新系统也想用这个名字导致挂载失败或者要交互确认。遇到这种情况先确认卷组和逻辑卷的名字sudo vgs sudo lvs然后在 fstab 里用/dev/mapper/卷组名-逻辑卷名或者逻辑卷的 UUID 来挂载。LVM 的 UUID 和普通分区 UUID 不是一回事用blkid能看到对应的标识。混用场景下先把 LVM 结构理清楚再写 fstab别硬套普通分区的写法。5.4 双系统环境下引导被覆盖机器上如果还有另一个操作系统重装麒麟后 GRUB 会重建引导菜单另一个系统的启动项可能丢失。这不是数据丢失但会让人以为整个机器坏了。处理办法是在新系统里用引导修复工具重新扫描其他系统或者在 GRUB 配置里手动添加启动项。重装前记一下原来的分区布局能省不少排查时间。6. 让下次重装更省事的几个习惯如果你打算长期用这台机器与其每次重装都手忙脚乱不如把一些习惯养起来下次会轻松很多。6.1 给数据盘单独用一块物理盘这是最彻底的方案。系统装在一块 SSD 上数据放另一块盘上重装系统时数据盘连被误格式化的机会都没有。分区表都不在一块盘上安装器碰不到它。有条件的话这个方案最省心。代价是多一块盘的成本以及需要自己规划挂载。但换来的是重装随便折腾数据稳如老狗值。6.2 配置文件版本化把/etc/fstab、磁盘信息、已装软件清单这些环境底账定期导出一份放到数据盘或者云端。可以用一个简单的脚本搞定#!/bin/bash DEST/data/backup/configs mkdir -p $DEST cp /etc/fstab $DEST/fstab blkid $DEST/blkid.txt lsblk -o NAME,SIZE,FSTYPE,MOUNTPOINT $DEST/lsblk.txt dpkg -l $DEST/packages.txt 2/dev/null设个定时任务每月跑一次或者在每次装完新软件后手动跑一次。这样任何一次重装你都能快速回到知道当初长什么样的状态。6.3 定期记录分区快照分区结构是会变的——加过盘、扩容过、调整过分区大小。每次变动之后重新导一次lsblk和blkid相当于给磁盘格局拍一张照片。真到了要重装的那天翻出最近一张快照对照着操作心里就有底。说到底保留数据盘重装这件事难点不在操作本身而在于操作之前你有没有把信息准备齐全。安装器里的那几十秒操作只是整个流程的收尾真正花时间、真正决定成败的是前面那些看起来琐碎的抄录和备份。我在自己机器上重装过好几回每次最庆幸的都是当初把 fstab 和 blkid 的输出存了一份——它让我在安装界面里面对一堆分区编号时能毫不犹豫地指出这个挂 /data别动。