所以我有一台双启动笔记本电脑(Win10 和 ubuntu),它基于 UEFI 启动并有 2 个物理 ssd。在尝试缩小我的 ubuntu 分区(下面的 sda6)并启动 ubuntu 后,ubuntu 内核开始加载,过了一会儿,我被放在一个 busybox 救援 shell 中(因为 fsck 想要在调整大小后运行,作为 init 钩子脚本)
遗憾的是,fsresize 和其他实用程序不在分布式 busybox 中,因此我从 USB live gparted 棒启动并访问了一些其他工具,如 gdisk、lsblk、testdisk、parted 等。
分区布局如下:
root@debian:~# lsblk 名称 MAJ:MIN RM 大小 RO 类型 安装点 loop0 7:0 0 463.4M 1 循环 /usr/lib/live/mount/rootfs/filesystem.squashfs /run/live/rootfs/filesystem.squashfs sda 8:0 0 238.5G 0 磁盘 ─sda1 8:1 0 260M 0部分 ─sda2 8:2 0 16M 0部分 ├─sda3 8:3 0 105.9G 0 部分 ─sda4 8:4 0 23.5M 0 部分 ─sda5 8:5 0 47.1M 0 部分 ─sda6 8:6 0 131.4G 0部分 └─sda7 8:7 0 800M 0部分 sdb 8:16 0 465.8G 0 磁盘 └─sdb1 8:17 0 465.8G 0部分 sdc 8:32 1 3.7G 0 磁盘 └─sdc1 8:33 1 3.7G 0 部分 /usr/lib/live/mount/medium /运行/直播/中 sr0 11:0 1 1024M 0 rom mmcblk0 179:0 0 14.6G 0 磁盘 └─mmcblk0p1 179:1 0 14.6G 0 部分
其中 /dev/sda6 是有问题的 ubuntu 分区。
我尝试从 gparted usb live cd 使用 fsck 进行恢复过程:
root@debian:~# fsck.ext4 /dev/sda6 e2fsck 1.47.0 (2023 年 2 月 5 日) 文件系统大小(根据超级块)为 35389440 个块 该设备的物理大小为34451766块 超级块或分区表可能已损坏! 中止?是
网络上的解决方案之一是使用 resize2fs 调整分区大小,但这不起作用:
root@debian:~# resize2fs -f /dev/sda6 resize2fs 1.47.0(2023 年 2 月 5 日) 将 /dev/sda6 上的文件系统大小调整为 34451766 (4k) 个块。 resize2fs:尝试调整 /dev/sda6 大小时无法读取块位图 请运行“e2fsck -fy /dev/sda6”来修复文件系统 中止调整大小操作后。
我也尝试使用其他超级块 (32768...等等) 进行 fsck,但它们都引发了相同的错误。
因此我检查了分区表,结果显示:
root@debian:/home/用户# gdisk /dev/sda GPT fdisk (gdisk) 版本 1.0.10 分区表扫描: MBR:保护 BSD:不存在 APM:不存在 GPT:存在 找到具有保护性 MBR 的有效 GPT;使用 GPT。 命令(?获取帮助):p 磁盘 /dev/sda:500118192 个扇区,238.5 GiB 型号:SanDisk SD9SB8W2 扇区大小(逻辑/物理):512/512 字节 磁盘标识符 (GUID):0AE22A81-8CBF-4E26-BD23-C0B1279204CA 分区表最多可容纳 128 个条目 主分区表从第 2 扇区开始,到第 33 扇区结束 第一个可用扇区是 34,最后一个可用扇区是 500118158 分区将按 2 扇区边界对齐 总可用空间为 15338 个扇区(7.5 MiB) 编号 起始(扇区) 结束(扇区) 大小 代码 名称 1 2048 534527 260.0 MiB EF00 EFI 系统分区 2 534528 567295 16.0 MiB 0C01 Microsoft 保留... 3 567296 222707711 105.9 GiB 0700 基本数据分区 4 222709090 222757289 23.5 MiB 0700 5 222757290 222853679 47.1 MiB EF00 EFI 系统分区 6 222853680 498467812 131.4 GiB 8300 7 498479104 500117503 800.0 MiB 2700 基本数据分区 命令(?获取帮助):
我看到分区 6 的结束不在第 7 部分的开始之前,所以我删除了该分区并重新创建它,现在第 6 部分在第 7 部分之前结束(498479103)
在此分区更改之后,fsck 继续抛出相同的错误。
在 dmesg 中,有关于 /dev/sda6 上的几何结构不良的错误
我有备份,所以这不是什么大问题,令我惊讶的是,testdisk 可以读取、访问并将我的所有数据(高级->文件系统选项)复制到/dev/sdb1(同一系统中的其他磁盘)
磁盘 /dev/sda - 256 GB / 238 GiB - CHS 31130 255 63 分区起始结束扇区大小 1 P EFI 系统 2048 534527 532480 [EFI 系统分区] 2 P MS 保留 534528 567295 32768 [Microsoft 保留分区] 3 P MS 数据 567296 222707711 222140416 [基本数据分区] [OS] 4 P MS 数据 222709090 222757289 48200 [HIVE-CONFIG] 5 P EFI 系统 222757290 222853679 96390 [EFI 系统分区] > 6 P Linux 文件系统数据 222853680 498467812 275614133 7 P Windows 恢复环境 498479104 500117503 1638400 [基本数据分区] [ 类型 ] >[ 图像创建 ] [ 退出 ] 创建图像
gparted 或 parted 拒绝对该分区执行某些操作,因为该分区有错误。
没有正在使用的卷组。至少原始 fstab 没有提及这些。
有谁知道一个神奇的解决方案来解决这个问题而不需要完全重新安装,比如重建文件系统?或者重建超级块?
对于有类似问题的人: