我的 150 GB 主分区被损坏了!

我的 150 GB 主分区被损坏了!

我一直在使用 Ubuntu 16.04;现在距离 EOL 仅剩四个月,我正在探索替代方案(因为 Linux 显然永远不会支持真正的升级)。我正在考虑的替代方案之一是 Kubuntu 20.04;我之前使用的是 Kubuntu 14.04,然后将 DTE 换成了 16.04。

今天,我使用 Kubuntu 20.04 Live“试用 Ubuntu”选项来执行一项从 SSD 运行时无法完成的任务:调整/home分区大小。几周以来,我一直收到“空间不足”消息,下载与游戏更新相关的内容以及下载 Linux 发行版 .iso 文件(每个文件都有几 GB 或更多)。清空垃圾箱不再起作用,我的上方(“左侧”)有一个分区,是/homeKubuntu 16.04 试用安装后留下的。150+ GB 分区中有大约 2 GB 的可用空间/home

使用 20.04 Live 试用版上的 KDE 分区管理器,我选择缩小旧的 Kubuntu 分区(多年未使用,甚至可能无法启动),将其移动/home到释放的空间,然后扩展/home以填充驱动器末尾新释放的空间。设置分区几何图形、移动分区和为更大的空间重置几何图形时,一切都顺利进行了 45 多分钟——但在“扩展文件系统”期间,我被告知“发生错误——中止”。现在,我的整个 150 GB/home分区都无法访问。KDE 分区管理器现在报告我的分区/home应该在 160 GiB“未分配”,其后有 1.84 TiB 未分配空间(在 256 GB SSD 上),以及 150.36 GiB(我的旧分区的大小/home),带有挂载点/run,位于扩展分区之外,而扩展分区应该在扩展分区中。

我确信我的数据仍然存在 - 移动操作已成功完成 - 但如果没有,我的 16.04 将无法启动/home。我根本不是 CLI 专家,但sudo fsck /dev/sda9甚至不会承认它的/sda9存在(其他分区都没问题)。这个分区和我的其他分区一样,处于ext4格式化状态。目前,我拥有的唯一工具是 Kubuntu 20.04 Live 下载中包含的工具。我的旧 Parted Magic 副本位于损坏的分区中,而我的笔记本电脑上没有副本。我不能只从备份中恢复;尽管事情应该是这样的,但备份数百 GB 既不容易也不免费。

分区中的大部分数据是游戏、游戏的 Wine 前缀、下载的文件(主要是游戏,但也有 Linux .iso 文件)——但其中还有大约 100,000 个单词的部分小说,我最近没有写过,但我非常不想丢失它们。

我该如何修复它?

到目前为止,我尝试使用fsck-- 它根本不承认那里有一个分区。KDE 分区管理器会读出我告诉你的内容 -- 我可能能够编辑 20.04 Live 会话的屏幕截图,但我怀疑它不会获得任何东西。我的机器上有可用的 Firefox 和有线互联网连接,但 USB 未设置为持久性,因此我安装的任何东西都会在下次重启时消失。USB 棒上有 1.43 GiB 的“可写”分区,但它没有用于持久性,我不知道如何将其设置为持久性。

KDE 分区管理器的屏幕截图

$ sudo blkid
/dev/sda1: LABEL="Boot" UUID="5244bd6b-56d2-4966-bc64-b5d145e681ec" TYPE="ext4" PARTUUID="000e3de9-01"
/dev/sda5: LABEL="Kubuntu64" UUID="b401b3f9-9dc6-4c3d-80fe-aabaf5f327cc" TYPE="ext4" PARTUUID="000e3de9-05"
/dev/sda6: LABEL="Dropbox" UUID="9ddd5013-36af-4d63-a492-710a4069af68" TYPE="ext4" PARTUUID="000e3de9-06"
/dev/sda7: UUID="8cd256cb-e942-425b-acce-e189f0bcf4c9" TYPE="ext4" PARTUUID="000e3de9-07"
/dev/sda8: LABEL="Kubuntu64 16.04" UUID="42b5719f-9dc4-4f92-88d2-c1ec48f25395" TYPE="ext4" PARTUUID="000e3de9-08"
/dev/sdb1: LABEL="Seagate 1T-C" UUID="5E5C65065C64D9F3" TYPE="ntfs" PARTUUID="8623c7fc-01"
/dev/sdb5: LABEL="Seagate 1T-D" UUID="88CCAB91CCAB77D8" TYPE="ntfs" PARTUUID="8623c7fc-05"
/dev/sdb6: LABEL="Seagate 1T-E" UUID="3680C08C80C05451" TYPE="ntfs" PARTUUID="8623c7fc-06"
/dev/sdb7: LABEL="Seagate 1T-F" UUID="E6ACC7B2ACC77B95" TYPE="ntfs" PARTUUID="8623c7fc-07"
/dev/sdb8: LABEL="Seagate 1T-G" UUID="48CCD912CCD8FB60" TYPE="ntfs" PARTUUID="8623c7fc-08"
/dev/sdb9: LABEL="Seagate 1T-H" UUID="CA58E44A58E436BB" TYPE="ntfs" PARTUUID="8623c7fc-09"
/dev/sdc1: UUID="2020-07-31-16-50-07-00" LABEL="Kubuntu 20.04.1 LTS amd64" TYPE="iso9660" PTUUID="7341469f" PTTYPE="dos" PARTUUID="7341469f-01"
/dev/loop0: TYPE="squashfs"
/dev/sda2: UUID="a7bf4f9c-f525-4646-87dd-f897cec03c66" TYPE="swap" PARTUUID="000e3de9-02"
/dev/sdc2: SEC_TYPE="msdos" UUID="C26E-047E" TYPE="vfat" PARTUUID="7341469f-02"
/dev/sdc3: LABEL="writable" UUID="e3579a86-3ecb-4ef0-a21d-983e5b417714" TYPE="ext4" PARTUUID="7341469f-03"

应该/home/dev/sda9——我不记得它是否被标记为“主页”。

这是导出的分区表——我害怕在没有指导的情况下编辑它,但显然 KDE 分区管理器可以导出和导入它,所以这是可能的。如上所述,应该/home在 中/sda9

##|v1|## partition table of /dev/sda
# on Friday, 25 December 2020 22:16:46 UTC
type: "msdos"
align: "sector"

# number start end type roles label flags
1;63;208844;ext4;primary;"Boot";"boot"
2;208845;16996769;linuxswap;primary;"";""
3;16996831;500103449;extended;extended;"";""
5;16996833;79907309;ext4;logical;"Kubuntu64";""
6;79907373;100888199;ext4;logical;"Dropbox";""
7;100888263;142833914;ext4;logical;"";""
8;142833978;164562943;ext4;logical;"Kubuntu64_16.04";""
9;4459532288;4774856044;unknown;primary;"";""

我认为它应该是这样的:

##|v1|## partition table of /dev/sda
# on Friday, 25 December 2020 22:16:46 UTC
type: "msdos"
align: "sector"

# number start end type roles label flags
1;63;208844;ext4;primary;"Boot";"boot"
2;208845;16996769;linuxswap;primary;"";""
3;16996831;500103449;extended;extended;"";""
5;16996833;79907309;ext4;logical;"Kubuntu64";""
6;79907373;100888199;ext4;logical;"Dropbox";""
7;100888263;142833914;ext4;logical;"";""
8;142833978;164562943;ext4;logical;"Kubuntu64_16.04";""
9;164562944;500321424;ext4;logical;"/home";""

但是,虽然其他设备可以选择在 KDE 分区管理器中导入分区表,但对于此 SSD,该选项显示为灰色(“导出分区表”可用,但“导入分区表”不可用)。

我有一台安装了 Unbuntu 16.04 的笔记本电脑,以及一个外部磁盘测试设备,如果需要,我可以用它来访问台式机外的 SSD——因此,如果这比 20.04 Live 会话更容易/更好,我可以使用完全安装的 16.04 进行修复工作。而且我还有两天的周末(我应该把这段时间花在暗室里,但这有点紧急),新年期间还有四天的周末。

答案1

您可以尝试使用分区恢复工具来重置分区。Testdisk 和 parted rescue 最常用。Testdisk 会找到您拥有的所有旧版本的分区,因此如果更改过多,可能很难找出要恢复的正确分区集。您只有一个分区,因此应该会容易一些。有些人还使用 parted rescue,您必须为其提供分区的大致开始和结束位置。

http://www.cgsecurity.org/wiki/TestDisk

https://www.cgsecurity.org/wiki/TestDisk_Step_By_Step

https://www.gnu.org/software/parted/manual/html_node/rescue.html

修复后,您通常需要检查文件系统。如果是 ext4 格式,则运行 fsck 或 e2fsck。e2fsck 的示例命令:

Ubuntu 14.04 在手动硬启动后无法正常启动

另请参阅 testdisk 和 parted rescue:

在双启动上“升级”到 Windows 10,但无法启动到 Ubuntu 分区

https://help.ubuntu.com/community/DataRecovery#Lost_Partition

相关内容