Ubuntu双系统根分区空间不足?详解扩容原理与实操步骤 你装双系统的时候是不是也这样Windows 分了两百多GUbuntu 这边只给了根目录一百G结果编译几次代码、装两三个大型开发环境/分区就直接撑满。弹窗提示空间不足的时候第一反应是买块新硬盘再一查发现其实整块 SSD 还剩一大半没利用。这种局面的解法就是给 Ubuntu 扩容。我帮人调过不少双系统机器先说一个反直觉的事实Ubuntu 扩容从来不是直接在系统里拖拖拽拽就能完成因为根分区后面往往还压着交换分区或其他分区空间不连续系统运行中又没法动正在挂载的分区。这篇就把扩容的原理、准备工作、完整步骤和那些没人提醒你的坑一次性讲清楚。1. 扩容方案的底层思路为什么不能直接拖拽分区1.1 根分区为什么“卡死”了先理解磁盘分区的核心规则一个分区如果想要变大它后面必须有相邻的未分配空间。注意两个关键词一个是“相邻”一个是“后面”。举个书架的例子你要把一本书换成更厚的那它右边那一列必须有空位而且空位必须紧挨着它空位隔了几本书或者空位在它左边都换不了。双系统装机时典型的布局是这样的最前面是 EFI 引导分区ESP然后是 Windows 的系统盘接着是 Ubuntu 的根分区最后面压着一个 swap 交换分区。你如果想在 Windows 里把 C 盘缩出一块空间那块空间会出现在 C 盘和后面的恢复分区或 Ubuntu 根分区之间它并不会乖乖跑到 Ubuntu 根分区的正后方。也就是说这块空间虽然存在但位置不对根分区没法用上。很多新手在这里就会卡住打开 GParted 一看明明有很多未分配空间但右键根分区只有 unmount 选项没有 resize 选项或者 resize 之后确认按钮是灰色的。原因很简单未分配空间不在目标分区的尾部分区工具不会帮你“隔空取物”。1.2 为什么必须在 Live 环境操作扩展根分区这个动作本质上要同时修改分区表和文件系统。Linux 的文件系统不支持像某些工具那样在挂载状态下随便调整大小尤其是要缩小或移动分区必须保证目标分区处于卸载状态。根分区是你系统运行时必然挂载的swap 分区也通常处于启用状态所以常规系统里根本没法操作自己正在使用的根分区。解决方案就是用一个 Ubuntu Live USB 启动系统。Live 环境整个运行在内存里原系统内的磁盘分区都不会自动挂载这时候你想卸载、想移动、想调整哪个分区都行。这也是为什么我见到有人尝试用已经安装好的 Ubuntu 去调整其他分区成功率很低报错大多都是“分区正忙”。记住扩容必须进 Live 环境这是第一个大前提。1.3 GPT 和 MBR 对扩容的影响动手之前还要确认自己的分区表方案。2012 年之后的电脑基本都是 UEFI 引导 GPT 分区表这种方案下所有分区都是“主分区”没有数量限制扩容时自由度很高。而旧的 BIOS MBR 方案还存在主分区、扩展分区、逻辑分区的概念如果 Ubuntu 根分区恰好是一个逻辑分区它外面还套着一层扩展分区你扩展的时候不光要扩大逻辑分区还得先扩大外层扩展分区的边界操作步骤一下就多了。怎么快速判断在终端执行sudo parted -l看到输出里写着“Partition Table: gpt”就是 GPT写着“msdos”就是 MBR。现在新装的机器基本都不用担心这个但如果你是从老笔记本上拆下来的硬盘装双系统最好先心里有数。2. 动手前必须做完的准备工作2.1 关掉 Windows 那边的“锁”这是整个扩容流程里最容易被忽略、也最容易翻车的一步。Windows 对 NTFS 分区有几种“锁定”机制不处理干净GParted 要么拒绝操作要么扩容之后 Windows 直接进恢复模式。第一件事是关闭“快速启动”。这个功能听起来只是加速开机实际上它会让 Windows 关机时把 NTFS 分区标记为“休眠未完成”状态Linux 读写这种分区时会提示脏数据。去控制面板里打开电源选项找到“选择电源按钮的功能”点击“更改当前不可用的设置”然后取消勾选“启用快速启动”。第二件事是关闭休眠。管理员身份运行命令提示符执行powercfg /h off然后把电脑正常关机一次。这里说的正常关机是指真正关机不是点一下关机键让它又快速启动。如果不关闭休眠和快速启动GParted 大概率会在缩放 NTFS 分区时弹出一个“Unable to read the contents of the file system”的报错折腾半天什么也改不了。第三件事是关于 BitLocker 加密。如果你的 Windows 系统盘开启了 BitLocker 加密GParted 读到的只是一串密文改动后 Windows 会要求你提供恢复密钥没有密钥就彻底进不去系统。最稳妥的做法是在 Windows 设置里搜索 BitLocker选择“暂停保护”等扩容完成后下次登录系统时再重新启用。如果你已经存好了恢复密钥也可以不暂停靠密钥恢复但没必要冒险。个人建议宁可在 Windows 里多花两分钟暂停保护也不要拿系统的可启动性赌运气。2.2 做一份可靠的备份分区扩容是有风险的操作主要风险点是断电、误操作和分区表损坏。备份不是让你把整个磁盘 dd 一遍那个太耗时也不现实。真正有用的备份是两份一份是重要数据一份是分区表信息。数据备份用 rsync 就行。把 /home 目录同步到移动硬盘sudo rsync -aAXv --infoprogress2 /home/ /media/$USER/MyBackup/home/-a是归档模式-A保留 ACL-X保留扩展属性-v显示过程。如果你还有别的重要目录比如 /srv 或者自定义的 /opt 下的服务目录也一并加进去。备份的数据量取决于你 /home 里有多少东西几十 GB 的话十分钟内能跑完。分区表备份更简单一条命令sudo sgdisk --backup/media/$USER/MyBackup/partition-table.img /dev/nvme0n1这里的/dev/nvme0n1是你实际磁盘设备名可能有人是/dev/sda。备份完把文件放在 U 盘或者移动硬盘里万一分区表被弄坏可以用sgdisk --load-backup恢复这比用 TestDisk 一点点找分区快得多。2.3 制作 Ubuntu Live USB 并准备工具Ubuntu Live USB 是这次操作的主战场。具体做法下载一个 Ubuntu 22.04 或 24.04 的 LTS 桌面版镜像用 Rufus 或者 balenaEtcher 写入一个至少 8GB 的 U 盘。Rufus 里要注意选择“写入为 UEFI 模式”而不是“写入为 BIOS 模式”否则有些机器 U 盘启动后会进不了引导菜单。制作好之后插在目标机器上开机按 F12、F2 或 Esc 进入启动菜单选择从 U 盘启动选“Try Ubuntu”。进入桌面之后GParted 已经预装好了线路已经足够但如果你的 Live 镜像版本较旧可以在终端里顺手执行一下sudo apt update sudo apt install -y gparted如果你还要处理 LVM 或者 Btrfs建议把 lvm2 和 btrfs-progs 也装上sudo apt install -y lvm2 btrfs-progs这一步做不做都不影响前面的分区调整但后面处理文件系统时会省去很多麻烦。3. 核心操作流程从缩小 Windows 到扩展根分区3.1 先看懂你当前的分区布局正式开始之前先用lsblk -f和sudo parted -l把当前布局记录下来。我拿一个典型的双系统机器举例lsblk -f输出大概长这样NAME FSTYPE SIZE MOUNTPOINT nvme0n1 ├─nvme0n1p1 vfat 512M /boot/efi ├─nvme0n1p2 ntfs 150G /media/.../Windows ├─nvme0n1p3 ext4 100G / └─nvme0n1p4 swap 8G [SWAP]这个布局非常典型ESP 在最前Windows 系统盘在第二Ubuntu 根分区在第三swap 在最后。如果根分区后面不是 swap 而是未分配空间那恭喜你直接右键根分区就能扩展简单得多。但大部分时候你面对的是一整块被分区填满的磁盘所以才需要后面的操作。有些机器 Windows 的 C 盘后面还跟着一个恢复分区布局会变成这样nvme0n1p1 vfat 512M /boot/efi nvme0n1p2 ntfs 150G Windows nvme0n1p3 ntfs 800M 恢复分区 nvme0n1p4 ext4 100G / nvme0n1p5 swap 8G [SWAP]恢复分区通常 500M 到 1G 左右是 Windows 升级更新时自动生成的一段系统恢复环境。它夹在 C 盘和其他分区之间会导致你缩完 C 盘后未分配空间不在你想要的位置。遇到这种情况最干净的方案是在 Windows 磁盘管理里直接删除这个恢复分区因为恢复分区本质上只是 Windows 的应急工具箱系统盘还在普通用户几乎不会用到它如果实在不放心备份好关键数据后删除完全没问题。后面我的实操记录里就是用这个方案处理的。3.2 第一步缩小 Windows 系统盘在 GParted 里右键 Windows 系统盘也就是那个 NTFS 分区通常容量最大选择“Resize/Move”。这里有两种方式调整大小直接修改“New Size”数值或者把“Free space following”改成你想要释放的空间大小。如果你打算给 Ubuntu 额外腾出 100GB就在“Free space following”里填 102400 MiB实际数据量按 100GB 算就行。你会发现这个窗口里还有“Align to MiB”的选项保持默认的“MiB to cylinder”对齐方式不要乱改。分区对齐出错会影响 SSD 性能GParted 默认对齐已经很稳妥不需要你手动干预。点击“Resize/Move”之后GParted 并没有立刻执行而是把这个操作加入等待队列。你还要继续做后续的调整等所有步骤都规划好后再统一点击“Apply All Operations”。这样做的意义是你可以在真正动手之前把所有操作在视图里预览一遍避免过程中途发现顺序不对。这里有一个很关键的判断如果 C 盘后面有恢复分区夹着直接缩 C 盘释放出来的空间仍然在恢复分区前面。后面要怎么办要么删除恢复分区要么先把恢复分区右移到空白区域的末尾。删除恢复分区需要你在 Windows 里用 diskpart 操作或者直接在 GParted 里右键删除分区表不会被锁的话可行。右移恢复分区的操作跟移动普通分区一样右键 Resize/Move把分区拖到右边留出空白但这会增加一个移动操作风险随之升高。我的建议是删除恢复分区一步到位。3.3 第二步处理挡路的 swap 交换分区缩完 Windows 分区后磁盘上会多出一块未分配空间但如果你按照我前面说的典型布局这块空间大概率出现在 Windows 分区和 swap 分区之间或者出现在 Windows 分区后面。无论哪种情况只要根分区后面还压着 swap你就得先把 swap 挪走。swap 的处理有两种思路我推荐第二种。方法A移动 swap 分区到新的空白区域。右键 swap 分区选择 Resize/Move目标是把 swap 整体移动到磁盘末尾或者某个合适位置让根分区后面直接出现连续未分配空间。这种方法的优点是保留 swap 分区的 UUID系统重启后仍然能识别同一个 swap不需要改 fstab。缺点是移动分区要复制整个 swap 的内容虽然 swap 通常只有 4G 到 16G速度不慢但多一步操作就多一分风险。方法B直接删除 swap在根分区扩展完后再重新创建。swap 分区的本质只是辅助存储内容在重启后全部清空删掉重建完全不影响系统。操作顺序是右键 swap 分区选择 Delete确认后空白空间就和原来的根分区相邻了接下来先扩展根分区最后在剩余空白空间右键新建一个大小一致的 swap 分区。这样做 swap 的 UUID 一定会变所以需要额外修改 fstab但整体流程反而清晰很多。后面 3.6 节会专门讲这一步别漏掉。3.4 第三步扩展根分区现在根分区后面应该是黑压压的一片未分配空间。右键根分区选择“Resize/Move”把“New Size”直接拉到允许的最大值或者把“Free space following”改为 0就是让它吃下所有空白空间。点击 Resize/MoveGParted 会把扩展分区和扩展文件系统的操作一并排在队列里。如果你用的是 ext4 文件系统GParted 会自动调用 resize2fs 来扩展文件系统整个过程是自动的。如果 GParted 没自动扩展文件系统或者你担心命令细节在 Live 终端里也可以手动执行sudo e2fsck -f /dev/nvme0n1p4 sudo resize2fs /dev/nvme0n1p4这里/dev/nvme0n1p4换成你的实际根分区设备名。e2fsck -f是强制检查文件系统检查通过后再执行 resize2fs。很多老教程会提醒你先检查再扩容我实际测试下来只要分区没有异常直接在 GParted 里操作就行但遇到 resize2fs 报错时先手动 e2fsck 再扩容往往能解决问题。在点击左上角的“Apply All Operations”之前建议再扫一眼操作列表确认顺序是先缩小 Windows → 再删除或移动 swap → 最后扩展根分区 → 新建 swap如果需要。顺序不对会造成不必要的分区移动比如如果你先把根分区扩展到最大那后面新建 swap 的空间就会被吞掉。一切确认无误点击 Apply中间弹出的所有警告都仔细读一下特别是“这可能需要几分钟”之类的提示耐住性子等。3.5 特殊情况LVM、Btrfs和加密卷怎么处理如果你当初安装 Ubuntu 时选择了“使用 LVM”或者“加密整个系统”那么根分区不是一个普通的 ext4 分区而是一个逻辑卷。用 lsblk 会看到类似这样的结构nvme0n1p4 ext4 200G / # 实际看到的是 /dev/mapper/ubuntu--vg-ubuntu--lv这种情况下 GParted 虽然能看到物理卷所在的分区但直接对分区做 resize 不够的必须先把逻辑卷激活再扩展物理卷、逻辑卷和文件系统。在 Live 终端里操作sudo vgscan sudo vgchange -ay然后确认物理卷所在的设备名例如/dev/nvme0n1p5执行sudo pvresize /dev/nvme0n1p5 sudo lvextend -l 100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv sudo resize2fs /dev/mapper/ubuntu--vg-ubuntu--lvpvresize扩展物理卷大小lvextend把逻辑卷扩展到整个卷组的自由空间resize2fs最后扩展文件系统。每一步都要确认成功再往下走逻辑卷本身的灵活性要比裸分区好很多。加密卷的核心操作也是这个流程只是你要先在 Live 环境用 LUKS 工具解锁具体步骤会多几分钟但思想完全一致。如果你用的是 Btrfs 文件系统事情反而更简单。Btrfs 在线扩容是原生支持的只要底层分区扩展了你进入系统后执行sudo btrfs filesystem resize max /它会自动把文件系统撑到整个分区大小不需要卸载操作。GParted 里扩展完分区剩下的事情一条命令搞定。3.6 更新 swap 的 UUID 和引导配置如果你用了“删除 swap 再重建”的方法新 swap 分区的 UUID 跟原来的不一样Windows 无所谓但 Ubuntu 开机时会去找旧的 UUID找不到就报错或者跳过 swap。所以必须进入系统更新配置。重启进入 Ubuntu 后先用blkid查看新 swap 分区的 UUIDsudo blkid /dev/nvme0n1p5输出里的UUIDxxxx-xxxx就是新的 UUID。编辑/etc/fstabsudo nano /etc/fstab找到原来 swap 那一行把 UUID 改成新的。除了 fstab还要检查/etc/initramfs-tools/conf.d/resume这个文件它存的是休眠恢复时使用的 swap 分区 UUID如果你用到了休眠功能必须同步更新否则休眠后一睡不醒。改完之后执行sudo update-initramfs -u把新的配置写进启动镜像。这一步做完swap 问题才算彻底了结。4. 实操记录一次带恢复分区的典型扩容过程为了让前面这些步骤更具体我记录一次真实的扩容过程。某台双系统机器配置为512GB SSDWindows 11 和 Ubuntu 22.04 双系统用户希望把根分区从 200GB 扩展到 250GB 左右Windows 系统盘从 200GB 缩到 150GB。分区布局设备文件系统原始大小说明nvme0n1p1vfat512MEFI 系统分区nvme0n1p2ntfs800MWindows 恢复分区nvme0n1p3ntfs200GWindows 系统盘 C:nvme0n1p4ext4200GUbuntu 根分区 /nvme0n1p5swap8G交换分区算下来总容量接近 450G加上扇区对齐和隐藏分区跟 512G 标称容量是吻合的。用户长期出差不需要恢复分区确认后决定删掉它。实际操作顺序第一步在 Windows 里关闭快速启动和休眠执行powercfg /h off关闭 BitLocker 保护。关机开机按 F12 进启动菜单选 U 盘启动进 Ubuntu Live。第二步启动 GParted右键 nvme0n1p2恢复分区选择 Delete。这个操作之后原来恢复分区的空间被标记为未分配。第三步右键 nvme0n1p3Windows 系统盘选择 Resize/Move把 “Free space following” 设为 51200 MiB也就是释放约 50GB。点击 Resize/Move。此时磁盘上出现了两块未分配空间一块是原恢复分区约 800MB一块是缩 C 盘释放的约 50GB它们连在一起了吗并不连中间还隔着 Windows 系统盘。这是因为恢复分区在 C 盘之前删除它产生的空间在 C 盘左侧缩 C 盘产生的空间在 C 盘右侧。想让两块未分配空间合并必须把 C 盘整体向右移动把左边的空间补到右边来。这里有个细节我一开始以为删除恢复分区之后就可以直接把 C 盘缩出的空间和恢复分区空间合并到一块。但分区调整是按它们实际位置走的C 盘左边的未分配空间永远不会跟 C 盘右边的未分配空间相邻。于是又右键 C 盘选择 Resize/Move在窗口里把分区整体向右拖动让它紧贴磁盘右边界这样左边 800MB 的空间就释放到 C 盘右边与之前的 50GB 未分配空间合并了。总共多出约 50.8GB 连续未分配空间。看到这里你应该明白处理恢复分区不删也没太大问题只要把 C 盘先缩再右移就能把空间“搬运”到右侧但操作次数变多风险自然上升。能删就删省心。第四步右键 nvme0n1p5swap选择 Delete。删除后根分区后面就直接面对一整块约 58GB 的未分配空间。第五步右键 nvme0n1p4根分区选择 Resize/Move把 New Size 拉到最大。点击 Resize/Move然后点击 Apply All Operations。GParted 开始执行先是移动分区位置、再扩展 ext4 文件系统。整个过程大概花了七八分钟主要时间都花在文件系统扩展上。第六步在磁盘尾部剩余空间右键选择 New文件系统选 linux-swap大小保持 8GB创建新 swap 分区。这一步系统自动分配了新的 UUID。点击 Apply 完成。第七步重启回 Ubuntu。执行sudo blkid找到新 swap 的 UUID改 fstab 和 resume 配置执行sudo update-initramfs -u然后df -h确认根分区已经变成约 258GB。整场操作真正花在“点鼠标”上的时间不到二十分钟大头全在等待文件系统读写和备份。过程中没有出任何问题但前半部分那些“分区为什么移到右边”的分析是真正值钱的避坑经验拿出来分享给你。5. 如果不想动根分区另一种更稳妥的扩容思路5.1 把释放出来的空间做成独立 /home 分区不是每个人都必须走“扩展根分区”这条路。如果你的根分区确实还有空间只是 /home 数据太大撑满了那么把释放出来的空间做成一个独立的 /home 分区是更稳妥的选择。这个方案完全不需要动 swap也不需要中途删除或重建交换分区风险小很多。具体做法缩完 Windows 拿到未分配空间后在 GParted 里右键未分配空间选择新建格式化为 ext4大小可以给到所有可用空间并留一个挂载点标记为/home。但如果你是在 Live 环境里创建分区GParted 不会自动挂载它所以更常见的流程是先创建分区、格式化然后回到系统里手动迁移数据。在 Ubuntu 系统里执行sudo mkdir /mnt/newhome sudo mount /dev/nvme0n1p6 /mnt/newhome sudo rsync -aAXv --infoprogress2 /home/ /mnt/newhome/rsync 同步完成之后再用blkid查新分区的 UUID在/etc/fstab里加一行UUIDxxxx-xxxx /home ext4 defaults 0 2然后重启。重启后系统会自动把新分区挂载到 /home旧 /home 里的数据还在原来分区里可以留作备份。等确认新 /home 一切正常再回 Live 里格式化旧的 home 分区把空间腾出来。这个方案的另外一个好处是以后如果再想调整 / 或者 /home 的大小两个分区之间井水不犯河水操作弹性更大。5.2 什么时候选哪种方案用一张表总结对比维度扩展根分区独立 /home 分区操作难度较复杂需要处理 swap 和分区移动简单只缩 Windows 新建分区风险等级中高风险分区移动多低风险不碰现有分区结构根分区空间根分区直接变大根分区空间不变/home 数据不需要迁移需要 rsync 迁移一次适用场景根分区经常满、装软件和编译环境多根分区够用只是 home 数据爆炸如果你装 Ubuntu 主要是为了做开发、跑编译、装一堆开发环境那根分区空间不足是硬伤早晚要扩展到根分区方案一更对症。如果你只是拿 Ubuntu 当日常上网和写文档的机器软件没装多少空间都被下载文件和照片占满那方案二又快又稳。5.3 虚拟机和其他扩展场景的延伸双系统扩容的方法论稍微延伸一下还能解决很多类似问题。虚拟机里跑 Ubuntu磁盘空间不够的时候先在宿主机里把虚拟磁盘镜像加大然后在客户机里执行sudo growpart /dev/sda 1 sudo resize2fs /dev/sda1growpart 负责扩展分区resize2fs 负责扩展文件系统跟咱们前面在 Live 环境里做的事情本质上一样。如果你用的是 LVM流程就是 pvresize 加 lvextend 加 resize2fs 三步曲。了解底层的“先扩展分区再扩展文件系统”这个顺序比死记命令有用得多。6. 常见问题与排查方案实录6.1 操作前的排查速查表问题现象根本原因解决办法Live USB 无法启动Secure Boot 阻止了未签名引导进 BIOS 暂时关闭 Secure BootGParted 无法缩放 NTFS 分区Windows 快速启动/休眠锁定分区关闭快速启动执行 powercfg /h off扩容后 Windows 要求恢复密钥BitLocker 未暂停保护提前暂停保护或准备恢复密钥扩容后卡在 initramfs 界面swap UUID 变化导致 fstab 指向错误Live chroot 修改 fstabupdate-initramfs缩 C 盘时提示空间不足NTFS 文件用了碎片或坏块先在 Windows 里清理文件再重试resize2fs 报错文件系统有异常先执行 e2fsck -f 再 resize2fsGParted 提示分区正忙目标分区仍被挂载右键 unmount或在 Live 环境操作6.2 几个容易忽略的细节分区操作过程中千万不要断电这是最低要求。我见过有人在笔记本电量告警的情况下点 Apply结果分区表还没写完就黑屏了最后只能靠分区表备份抢救回来。操作之前一定要接电源。移动 C 盘分区会让 Windows 认为磁盘发生变化启动时可能出现较长的“正在准备”画面这属于正常现象耐心等它进去就行。如果卡太久再用 Windows 安装盘修复引导。GParted 的预览功能值得多说一句。所有操作排进队列后底部状态栏会显示每个操作的细节包括源分区、目标分区、大小变化。你可以在 Apply 之前逐条检查有没有误删分区根分区的扩展是否跟在 swap 删除之后未分配空间位置是否正确多花一分钟检查能少掉好多麻烦。在 Live 环境下update-grub和update-initramfs不能直接对已卸载的系统执行需要先挂载根分区和 EFI 分区再 chroot 进去。很多人做完分区扩展直接重启发现 Ubuntu 无法引导就是因为引导配置没有更新。完整操作如下sudo mount /dev/nvme0n1p4 /mnt sudo mount /dev/nvme0n1p1 /mnt/boot/efi for d in /dev /dev/pts /proc /sys /run; do sudo mount --bind $d /mnt$d; done sudo chroot /mnt update-grub update-initramfs -u exit如果你只是扩展了根分区没有动 swapUpdate 引导这步通常可以省略但既然都已经 chroot 进去了顺手跑一遍没坏处。另外分区扩容后第一次启动 Ubuntu文件系统自适应和缓存重建会占用一些时间开机稍微慢一点是正常的。如果机器开机后显示了The disk drive for / is not ready yet or not present之类的信息大概率是 fstab 配置出了问题而不是分区扩展失败。最后提醒一个很基本但很多人中招的点做任何分区修改之前先确认 U 盘已经卸载别让 Live 系统的自动挂载功能干扰你。用lsblk看一眼当前挂载点把移动硬盘和 U 盘都卸载干净再开始。我个人在实际操作中的体会是双系统扩容真正难的从来不是命令而是对整个分区排布的理解。你把每个分区的前后关系、每个操作的影响范围都理清楚了剩下的就是照着 GParted 的界面点击而已。还有一个我自己一直在用的习惯每次扩容前都会用 sgdisk 把分区表备份到 U 盘顺手将 /home 里带中文文件名的目录单独复制一份这两个动作在几次意外中断里帮过大忙。如果你打算折腾先把这两件事做了再动手稳。