我已经运行 Pop!_OS 一段时间了,并决定安装 Kubuntu。我启动到 Kubuntu USB 驱动器首先尝试一下,并决定使用 KDE 分区管理器准备安装分区。
该 SSD 已经有 4 个分区:(sda1
旧 Windows 安装)、sda2
(数据)、sda3
(Pop!_OS)和sda4
(交换)。为了为 Kubuntu 的新分区腾出空间,我将末尾的分区缩小了sda2
30Gb,但无法格式化这个未分配的空间,因为已经有 4 个主分区。所以我决定删除sda1
,将其未分配的空间移动到右侧sda2
并将该空间添加到sda2
.应用操作时出现错误(大小不匹配),因此被中止。
sda2
重新启动 Pop!_OS,我可以看到从那里获取的 30Gb 未分配空间,并且sda1
没有触及,但我无法挂载sda2
:
以下是 GParted 现在显示的内容:
以下是以下信息sda2
:
和输出fdisk -l
:
(分区表条目不按磁盘顺序排列)。
由于似乎可能存在多个问题,我决定暂时不碰它并寻求一些建议,我真的很想恢复该分区中的数据。如果需要更多信息,我很乐意提供。很抱歉话题很长,非常感谢您抽出宝贵的时间。
更新:
在等待任何反馈时,我尝试使用 fdisk 修复分区表条目的顺序。完成该过程后(并且必须修复 GRUB 才能重新引导),fdisk 不会将它们报告为故障。
我做的另一件事是check
在该分区上使用 gparted 的选项,它返回了一些更有趣的信息:
GParted 0.32.0 --enable-libparted-dmraid --enable-online-resize
Libparted 3.2
Check and repair file system (ext4) on /dev/sda2 00:00:00 ( ERROR )
calibrate /dev/sda2 00:00:00 ( SUCCESS )
path: /dev/sda2 (partition)
start: 275396608
end: 782370815
size: 506974208 (241.74 GiB)
check file system on /dev/sda2 for errors and (if possible) fix them 00:00:00 ( ERROR )
e2fsck -f -y -v -C 0 '/dev/sda2' 00:00:00 ( ERROR )
The filesystem size (according to the superblock) is 71051776 blocks
The physical size of the device is 63371776 blocks
Either the superblock or the partition table is likely to be corrupt!
Abort? yes
e2fsck 1.45.3 (14-Jul-2019)
这就是开始这一切的错误,我只是没有设法保存该信息。在我看来,分区根本不知道它的实际大小?一开始有超过 270GB,然后我删除了 30GB 作为新分区。 Thunar 报告它有 260GB,Dolphin、GParted 和 fdisk 报告它有 240GB,这是有道理的。现在我该如何解决这个问题,而不让事情变得更糟?再次非常感谢大家的阅读。
答案1
看起来您在缩小分区后忘记调整文件系统的大小。您必须使用resize2fs
来将文件系统缩小到小于分区大小。分区不能小于文件系统
resize2fs /dev/sda2 239G
这将为您提供一千兆空间,以确保文件系统小于分区本身。
答案2
给出了这个建议没有任何保证,特别是考虑到我们无法知道您的分区/文件系统到底发生了什么。
在更改分区和/或文件系统之前,您应该备份原始数据,例如从 Live CD/DVD/USB 启动并将整个磁盘复制到安全位置。将其保存为压缩的常规文件(以节省空间)非常简单:
$ sudo gzip -c /dev/sda >/path/on/safe/storage/sda.img.gz
也就是说,看起来您的分区管理器已成功收缩sda2
(分区),但未能收缩所包含的文件系统。
您应该能够通过运行以下命令来确认 GParted 所说的内容:
$ sudo fsck.ext4 -v -f /dev/sda2
(y
如果要求您中止,请回答)。
我建议您将文件系统的大小恢复sda2
到原来的大小,而不是尝试调整文件系统的大小。或者,无论如何,sda2
根据其右侧的可用空间量来增长。如果包含的文件系统没有损坏,这应该可以再次安装它,至少允许您在尝试重新缩小该分区之前备份数据。
根据个人喜好,我会使用GNU 分手了编辑分区表并重新创建第二个分区 ( sda2
):
$ sudo parted /dev/sda
(parted) unit s
(parted) rm 2
(parted) mkpart primary ext4 275396608 843810815
(parted) quit
当然,这是基于fdisk
您最初发布的输出。如果此后发生变化,您可能需要对其进行调整。
(使用fdisk
代替parted
也很简单:在 后sudo fdisk /dev/sda
,使用p
检查分区表,d
然后2
删除sda2
,n
然后删除p
,275396608
作为第一个扇区,不作为最后一个扇区(默认情况下将选择连续可用空间的最后一个扇区) )重新创建sda2
,w
然后保存。然后您可能需要 sudo partprobe -s /dev/sda
告诉内核更新的分区表)。
然后,您可以检查文件系统(如上所述,使用fsck.ext4 -v -f /dev/sda2
)并再次挂载sda2
。
最后,您可以重试收缩sda2
:您正在使用的工具(包括 KDE 分区管理器)应该能够做到这一点。我只是建议您一次保存/应用一个操作(例如删除sda1
或收缩sda2
或移动sda2
...)并避免将其中的几个操作排队——这会增加遇到一些未经测试的极端情况的可能性。