磁盘名称为/dev/sdd,分区表如下:
分割 | 类型 | 标签 | 尺寸 | 用过的 | 第一区 | 最后扇区 | 扇区数 |
---|---|---|---|---|---|---|---|
/dev/sdd1 | 未知 | 微软保留 | 15.98MB | ---- | 三十四 | 32767 | 32734 |
/dev/sdd2 | NTFS | 金士顿(数据分区) | 270.63GiB | 252.94GiB | 32768 | 567590911 | 567558144 |
/dev/sdd5 | ext4 | Ubuntu 根目录 | 44.09GiB | 19.18GiB | 567590912 | 660049919 | 92459008 |
/dev/sdd7 | ext4 | 旧 Ubuntu 根目录 | 49.71GiB | 21.77GiB | 660049920 | 764305407 | 104255488 |
/dev/sdd6 | ext4 | Ubuntu /主页 | 61.61GiB | ?* | 764305408 | 893501439 | 129196032 |
/dev/sdd4 | linuxswap | 20.58GiB | --- | 893501440 | 936650751 | 43149312 | |
/dev/sdd3 | 脂肪32 | 埃菲 | 513.00MB | 3.40MiB | 936650752 | 937701375 | 1050624 |
* 这个值不再显示,但我记得我家大约有 20-30GiB。
我需要增加 /dev/sdd2 的大小,因为这是我存储 steam 库的地方。我发现我可以减少交换分区,因为我不再使用休眠模式,而且旧的 ubuntu 根目录有大约 20Gb 的可用空间,所以我从使用 Kubuntu 的 USB 启动的 Kde 分区管理器执行了以下步骤:
将分区“/dev/sdd4”从 20.58GiB 缩小到 4.53GiB(这实际上是在转到 USB Live Image 之前完成的,我用 swapoff 关闭了交换,然后缩小了分区,然后我无法继续缩小,因为我处于想要更改的同一系统中)。
将分区“/dev/sdd6”向右移动 16.05GiB
将分区“/dev/sdd7”向右移动 16.05GiB
将分区“/dev/sdd5”向右移动 16.05GiB
将分区“/dev/sdd2”从 270.63GiB 增大到 286.68GiB
将分区 '/dev/sdd7' 从 49.71GiB 缩小到 23.16GiB
将分区“/dev/sdd7”向右移动 26.56GiB
将分区“/dev/sdd5”向右移动 26.56GiB
将分区“/dev/sdd2”从 286.68GiB 增大到 313.24GiB
等了几分钟后,我查看结果,结果说最后的操作出现了错误(我不记得具体是哪一个了,但我认为前半部分没有错误,而后半部分出现了错误,遗憾的是我没有这个日志的记录)。
但结果却是丢失了整个 /dev/sdd6 文件系统(我的 /home 目录)这是操作之后的分区表照片:
看来交换分区确实缩小了,但未分配的空间仍保留在原来的位置。其他分区仍然可以访问,并且数据正常(数据 ntfs 分区和两个根分区)。
但由于某种原因,/home 分区现在被标记为“未知”,我无法挂载它/将文件系统更改为 ext4/执行任何操作。
此时,我使用 DD 制作了一个备份(.img 文件),以防万一。
当我尝试启动到我的常规 Kubuntu(GRUB 运行良好)时,我只进入了一个具有“紧急模式”和“root”用户的终端。
我尝试运行“fsck”并得到:
root@pc:~# fsck /dev/sdd6
fsck from util-linux 2.37.2
e2fsck 1.46.5 (30-Dec-2021)
ext2fs_open2: Bad magic number in super-block
fsck.ext2: Superblock invalid, trying backup blocks...
fsck.ext2: Bad magic number in super-block while trying to open /dev/sdd6
The superblock could not be read or does not describe a valid ext2/ext3/ext4
filesystem. If the device is valid and it really contains an ext2/ext3/ext4
filesystem (and not swap or ufs or something else), then the superblock
is corrupt, and you might try running e2fsck with an alternate superblock:
e2fsck -b 8193 <device>
or
e2fsck -b 32768 <device>
然后,经过一番谷歌搜索后,我运行了以下命令:
root@pc:~# mke2fs -n /dev/sdd6
mke2fs 1.46.5 (30-Dec-2021)
Creating filesystem with 16149504 4k blocks and 4038656 inodes
Filesystem UUID: 54d63d54-bc82-4017-96a0-012e76d54fc1
Superblocks backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424
然后我尝试再次运行“fsck”,但使用带有 -b 选项的超级块。没有任何结果。
我能做什么?Windows 10(位于另一个磁盘中,运行良好)使用 photorec 工具检测分区,它允许我恢复文件,但它只是一堆没有目录结构的 txt/png/wav/etc... 文件,对我来说没用。
我在分区中没有太多重要的“常规”文件(例如照片、pdf、视频或音频),但有很多配置文件、bash 历史文件、应用程序首选项等......
至于 testdisk,它在扫描时检测到一些非常奇怪的东西(我稍后会上传照片,但它就像两个非常相同的 /dev/sdd2 分区在开头,但具有不同的起始/结束扇区)并且当我写入它建议的新分区表时,/home 仍然无法访问。
有什么可以尝试的吗?我可以使用未改动的 Root 分区并使用另一个分区或磁盘安装空的 /home 来恢复我的 Kubuntu 安装吗?还是我应该从头开始安装所有内容?除此之外,我仍然希望恢复我的 /dev/sdd6 分区,就像发生这种情况之前一样。
谢谢!!!
答案1
谢谢您的回答,我解决了这个问题,我会把它写在这里,如果有人遇到同样的问题可以尝试一下。
我做的事情其实很简单。正如我所说,当我意识到自己搞砸了时,我立即备份了整个磁盘,使用:
dd if=/dev/sdX of=/path/to/other/disk/backup.img
所以在尝试了各种疯狂的方法之后(虽然很恐慌,但做这种事很难保持冷静...),我睡着了。第二天,我坐下来,用以下方法恢复了图像:
dd if=/path/to/other/disk/backup.img of=/dev/sdX
然后,我只需从 LiveUSB 运行 testdisk,它就可以正常工作。只需按照程序的说明进行操作,并仔细检查它在分区表中找到的每个分区。它就可以正常工作,现在我的系统恢复原样。
谢谢,祝你好运!