GParted Live 从硬盘 GRUB 启动 — 分区调整记录

作者:

GParted Live 从硬盘 GRUB 启动 — 分区调整记录

日期:2026-07-19
系统:openKylin 2.0 SP2 (nile),GRUB 2.12
目的:/ 分区 (40G) 空闲较多,/data 分区 (4G) 不够用,从 / 划一部分给 /data


磁盘分区布局

nvme0n1  953.9G
├─p1  260M   EFI (SYSTEM_DRV)
├─p2   16M   MSR
├─p3  400G   Windows-SSD (NTFS)
├─p4  500G   Data (NTFS)
├─p5    2G   WINRE_DRV (NTFS)
├─p6    1G   KYLIN-BACKUP (ext4)  ← ISO 放这里
├─p7    4G   /data (ext4)         ← 需要扩容
├─p8   40G   / (ext4)             ← 需要缩容
└─p9    5G   SWAP

最终 GRUB 配置

# /etc/grub.d/40_custom
menuentry 'GParted Live (ISO Boot)' {
    set isofile=/gparted-live.iso
    search --no-floppy --fs-uuid --set=root 344bea2d-4807-497a-b3a1-9e481fc17367
    loopback loop $isofile
    linux (loop)/live/vmlinuz boot=live findiso=/gparted-live.iso components noswap i915.force_probe=7d55
    initrd (loop)/live/initrd.img
}

踩坑记录

坑 1:NTFS 分区上的 ISO 无法启动

  • 现象Unable to find a medium containing a live file system
  • 原因:GRUB 有 ntfs.mod 能在 bootloader 阶段读取 NTFS,但内核接管后 initramfs 没有 ntfs-3g,无法挂载 NTFS 定位 ISO
  • 解决:ISO 必须放在 ext4 分区

坑 2:ISO 不能放在要操作的分区

  • 原因:ISO 所在分区的 loopback 会使其处于使用状态,GParted 无法操作
  • 解决:放到不参与调整的 p6(KYLIN-BACKUP)

坑 3:nomodeset 对 Intel 新 GPU 是反作用

  • GPU:Intel Meteor Lake-P Arc Graphics (8086:7d55)
  • 原因nomodeset 禁用 Kernel Mode Setting,Intel 新 GPU 必须开启 KMS 才能正常显示
  • 解决:去掉 nomodeset

坑 4:i915 驱动不认识 Meteor Lake

  • 现象:系统能启动但 GUI 无法显示
  • 原因:GParted Live 的内核版本可能还未将 7d55 这个 PCI ID 加入 i915 的默认支持列表
  • 解决:添加 i915.force_probe=7d55 强制 i915 认领该 GPU

操作步骤备忘

# 1. 下载 ISO 到硬盘
wget -O gparted-live-1.8.1-3-amd64.iso <url>

# 2. 挂载 p6 并复制 ISO
sudo mount /dev/nvme0n1p6 /mnt
sudo cp gparted-live-1.8.1-3-amd64.iso /mnt/gparted-live.iso

# 3. 配置 GRUB
sudo vim /etc/grub.d/40_custom   # 添加上面的 menuentry
sudo sed -i 's/GRUB_TIMEOUT=1/GRUB_TIMEOUT=5/' /etc/default/grub
sudo update-grub

# 4. 重启进入 GParted Live
sudo reboot

# 5. 在 GParted 中操作
# - 缩小 p8 (/) 从左边界向右
# - 扩展 p7 (/data) 右边界向右
# - 应用操作

相关 UUID

分区UUID
p6 (ISO 所在)344bea2d-4807-497a-b3a1-9e481fc17367
p8 (/)bf7fae4e-9707-4839-85ac-2d1c07e96eef
p4 (Data, NTFS)8AECA8EFECA8D6AB