我如何回滚我的 GParted 版本?

我如何回滚我的 GParted 版本?

我使用的是 ubuntu 14.04 和 GParted 0.18。但是,它似乎不如以前的版本,因为它崩溃 每一次我尝试调整 FAT32 分区的大小,或者在未分配的内存块上创建新分区。我还没有尝试过使用 NTFS 或 ext4。当我以超级用户身份通过​​终端运行它时,它会崩溃并显示分段错误。

以前版本的 GParted 并非如此,例如 12.04 和 13.04 中的默认版本,我能够完美地对我的 USB 驱动器进行分区。我有什么办法可以获取旧版本(0.12 或 0.16)并将它们安装在我的 14.04 版本上吗?

答案1

2020 年 1 月 17 日

此答案与去年 5 月的支持到期有关Trusty Tahr

稍有不同,因为我决定需要重新安装,gparted因为当我尝试“检查和修复”FAT32由创建的分区时出现了分段错误gparted,因此我发出了以下命令:

sudo apt-get remove gparted
sudo apt-get update
sudo apt-get install gparted

据我所知,问题在于apt-get update修改了存储库索引的本地副本,表明apt应该获取gparted版本0.24.0-1,这是存储库中的升级版本,是扩展支持版本。问题是,您必须为扩展支持付费,而普通人只需升级到较新的长期版本即可。因此,当 apt 尝试获取二进制文件时,您会收到现在熟悉的错误:

Err http://archive.getdeb.net/ubuntu/ trusty-getdeb/apps gparted i386 0.24.0-1~getdeb1 Temporary failure resolving 'archive.getdeb.net'
W: No priority (or zero) specified for pin
E: Failed to fetch http://archive.getdeb.net/ubuntu/pool/apps/g/gparted/gparted_0.24.0-1~getdeb1_i386.deb Temporary failure resolving 'archive.getdeb.net'

E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?

部分解决方案是转到gparted启动板 ppa:

https://launchpad.net/ubuntu/+source/gparted

向下滚动并单击旁边的三角形,Trusty Tahr 0.18.0-1该三角形实际上比上次 LTS 支持的版本略新gparted。然后向下滚动标题包文件,.deb为您的机器选择一个文件,然后单击它进行下载。

现在发出命令:

dpkg -i <your downloaded file>

这对于我使用 i386 架构的用户来说很有效,GUI 启动后看起来正常,并提供有关已安装卷和分区的信息。模式对话框中有一些字体和格式更改,以强调警告。有三个注意事项:

  • 启动时控制台中出现错误消息,其中source id xx not found when attempting to remove it“xx”是一个小整数。这些GLib错误是我多年来经常看到的。它们仅在通过命令行启动程序时可见。它们似乎从未对功能产生任何影响。

  • 当我格式化并检查FAT16拇指驱动器上的分区时,检查告诉我它尚未正确格式化,其大小与“正确”大小不同,如下所示:

    • cluster size 16k ; 16k expected

    • number of clusters 64238 ; 64239 expected

    • FAT size 256 sectors ; 251 expected

    • 如果我选择忽略,它会转换为FAT32,如果我说不,gparted就会崩溃malloc(): memory corruption: ...

    • 如果我选择忽略并转换,gparted则崩溃Segmentation fault

  • 当我格式化并检查FAT32U 盘上的分区时,gparted报告文件系统有188686 clusters ; 188588 expected。选择忽略会导致 崩溃malloc(): memory corruption: ...

总之,问题似乎出在内gpartedlibparted特别是在扩展以填充分区阶段,而稍微较新的版本仅仅给出更具信息性的错误消息,而不是粗鲁的分段错误(除了一种情况)。

如果我改用 格式化 U 盘gnome-disks,则不会给出 选项FAT16,格式化结果为FAT32。如果您选择自定义格式并输入fat16,则会出现错误,通知您不支持结果。如果我随后FAT16使用 检查 ,它会崩溃。gnome-disks FAT32gpartedmalloc(): smallbin double linked list corrupted: ...

如果我使用gnome-disks并选择非快速选项(用零填充),然后使用 检查gparted,它会崩溃free(): invalid next size (normal): ...

这些格式化的分区似乎可以正常存储数据,尽管gparted无法检查它们。 的安装Clonezilla将无法启动,这是在删除整个安装并安装最新的 LTS 版本之前进行备份的非常方便的工具。

现在有三种可能性:

  • 显而易见的是gparted无法FAT正确检查分区。

  • 也可能gparted无法格式化分区,但是和FAT都出现故障的可能性不大,除非它们使用相同的命令行工具。gpartedgnome-disks

  • 可能是 U 盘中存在一些细微缺陷,导致其功能有限。也许它需要一个FAT16分区,但gnome-disks无法创建,也gparted无法正确创建。

最后,我Clonezilla在另一个来历不明的 U 盘上执行了安装,使用的是FAT16上面已有的分区,大概是制造商安装的。这样就成功了。这显然不能说第一个 U 盘有问题。我需要找一台Windows机器重新格式化第一个 U 盘。如果问题仍然存在,那就是驱动器的问题。如果这样能解决问题,那就说明gparted格式化FAT分区的能力有问题,对于任何不到 10 年历史的软件来说,这有点荒谬,因为这些格式在可启动媒体上无处不在。规范甚至FAT12要求兼容性UEFI

为了更直接地回答对原始查询的批评,手动下载和安装程序并没有错。但是,您确实会进入“依赖地狱”。在 中Windows,程序是整体的和自包含的,因此臃肿而庞大。优点是它们可以正常工作(嗯,大多数情况下;操作系统升级可能会破坏一些东西)。使用包管理器,程序很小,并且与其他程序共享依赖项。如果您确保安装了所有正确的依赖项,那么一切就都正常了。

困难在于,对依赖项的升级可能会破坏依赖于它的程序,因此依赖于它的程序需要升级。通常,包管理器和打包者会为您解决这个难题。如果您尝试向后退,您可能还需要回滚库,这可能会破坏其他程序。如果支持结束,理想情况下存储库将被冻结,因此无论剩余的错误如何,都会保留,但仍然可用。如果Canonical因无法访问付费扩展支持的更新而破坏了存储库,那么您就倒霉了。

至于升级到较新版本的gparted,您可以从启动板 ppa 获取一个,但现在您进入了另一个方向的“依赖地狱”,新版本依赖于较新的库,而这些较新的库(如果安装)可能会破坏其他程序。更糟糕的是,如果您这样做,您将无法从存储库重新安装,因为Canonical无法访问的扩展支持已损坏它们。

Canonical最后要说的是,使用界面来提供付费的扩展支持有点令人讨厌apt。这显然阻止了继续使用以前支持但现在已过时的软件安装存储库,因为它们已被无法免费访问的更新所破坏。这让那些在备份、擦除磁盘和全新安装较新版本等繁琐过程上有点迟钝的人的生活变得更加困难。我过去发现,跨版本升级从来都不是很好,最好从干净的磁盘重新开始。

这种状况显然违背了 的精神。从某种程度上来说 GPL,它也违背了 的字面含义。当然, 可以随意破坏其存储库而不是冻结它们,尽管这很可恶,但毕竟他们拥有这些存储库。 这种做法无疑损害了的开源声誉。 但在我看来,导致包管理器失败并显示神秘的错误消息违反了 的规定。 应该创建一个 的分支,称之为或更好的名字,专门处理扩展的维护更新,同时冻结基础存储库直到逐步淘汰,以造福于使其声名鹊起的庞大个人用户群。GPLCanonicalCanonicalDebianaptGPLCanonicalapteptineptCanonical

我想我的下一个系统将会是一个纯净的Debian安装。我真的受够了Canonical

相关内容