news 2026/10/1 9:23:03

银河麒麟V10 SP1重装保留数据盘:手动分区与fstab挂载避坑

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
银河麒麟V10 SP1重装保留数据盘:手动分区与fstab挂载避坑

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 blkid

lsblk帮你确认哪块盘、哪个分区挂着/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)

输出形如uid=1000(kylin) gid=1000(kylin) groups=1000(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 bs=4M status=progress

记得把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 上。这里要注意两点:

一是如果机器上有多个系统(比如另一个 Windows),GRUB 覆盖引导记录后,原来的引导菜单可能变化,需要重新配置。二是如果你之前记录过 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 换成你数据盘的真实值):

UUID=xxxxxxxx-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 不一致。确认新用户的 UID:

id $(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,别动"。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/1 9:22:25

C#集成YOLOv8与TensorRT+ByteTrack:跨语言目标追踪落地实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/1 9:21:47

Linux键盘输入全解析:从termios到evdev的完整链路

先把话说在前头:Linux下“读取键盘输入”这件事,看起来就是调一个scanf或者getchar的事,但一旦你开始较真——比如要读方向键、要监听按键时长、要在终端里做“按下立即响应”的交互,或者干脆想写一个按键记录工具,你就…

作者头像 李华
网站建设 2026/10/1 9:20:56

服务器安全实战:攻击面盘点、日志审计与入侵排查

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/1 9:19:56

Jev 模型接入 TraeCode 与 Windows 本地部署实战指南

1. 从热搜词里读懂 Jev 到底是什么1.1 一个被搜索词“拼”出来的技术画像先把热搜词摊开看一遍:jev、jev模型官网、jev模型是什么、jev模型开源吗、jev模型申请、jev密钥、jev本地部署、jev windows 部署、jev使用、jev ai、jev聊天助手 github、jev在codex中使用、…

作者头像 李华
网站建设 2026/10/1 9:19:50

ESP32智能家居实战:基于WiFi+BLE的一站式搭建方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/1 9:19:46

光谱预处理方法:5类高频技术实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华