用GParted修复Mac分区表故障

在线wifi跑包 金刚包跑包 cap跑包 hccapx ewsa在线 就来 握手包跑包

各位好 又见面了 我是曹操 今天给大家带来一篇新的教程

希望各位细心学习 低调用网

nethunter报错提示磁盘空间不足

上个星期五,我收到了一台旧款的Macbook Pro,同事送来修理。问题是它无法升级到macOS High Sierra,显示磁盘空间不足。我检查了一下硬盘,发现它是一块512G的SSD,只使用了80G的空间,显然磁盘空间是足够的。但是仔细检查后发现,这台机器上安装的macOS Sierra实际上是在MBR分区表上。按理说,基于X86处理器的Mac电脑应该使用EFI固件,无法从MBR分区表启动。然而,这台Macbook Pro的固件保留了对MBR分区表的兼容性,因此在系统升级之前一直正常运行而没有出错。

nethunter报错提示磁盘空间不足nethunter报错提示磁盘空间不足

当我在虚拟机上复现这个问题时,macOS提示分区表格式错误,但我遇到的提示信息却是磁盘空间不足。我使用磁盘工具检查了macOS的磁盘分区格式。虽然数据量不大,但我希望尽可能地将其原位转换为GPT分区表,以避免重新配置复杂的开发环境。然而,macOS的磁盘工具并没有提供将MBR分区表无损转换为GPT分区表的功能。因此,我首先找到了一个叫做gdisk的工具。但是在使用gdisk时遇到了错误(下面的截图是在Linux上截取的,但错误信息是一样的)。在Mac上,可以从SourceForge下载gdisk命令。

nethunter报错提示磁盘空间不足

主分区表与第一个分区重叠了32个块!次分区表与最后一个分区重叠了33个块!之所以会出现这个错误,是因为GPT分区表需要使用额外的磁盘空间来存储头部和尾部信息。从Windows 7开始,DiskPart工具会自动保留1MB的头部空间和8MB的尾部空间,这样可以随时通过convert gpt命令将MBR分区表转换为GPT分区表(这也是为什么Windows 7的DiskPart可以自动进行4K对齐的原因)。然而,包括macOS的磁盘工具在内的许多分区软件并不会对使用MBR分区表的硬盘进行这种处理,导致除MBR分区表之外的空间全部分配给磁盘分区,而没有保留给GPT分区表所需的空间。

nethunter报错提示磁盘空间不足

上面的图中,蓝色和绿色的空间就是gdisk报错中提到的主分区表和次分区表。由于macOS的磁盘工具无法调整MBR格式分区表的分区大小,所以我使用了基于Linux的GParted工具。它内置了hfsprogs,可以提供对HFS+分区进行无损调整的功能。

免责声明:数据无价,请谨慎操作,并在操作之前备份数据!

您可以在GParted官网上下载ISO光盘镜像,并使用Unetbootin制作启动U盘。开机时按Option键,就可以从U盘启动了。

GParted Live on USB

nethunter报错提示磁盘空间不足nethunter报错提示磁盘空间不足

在GParted工具中,我们使用Resize功能,将数据分区前面的空间保留为200MB,后面的空间保留为20MB。系统会自动将之前的空间扩大为201MB(多出来的1MB是为GPT保留的)。确定后,点击Resize/Move开始调整分区大小。由于调整分区大小需要重写分区数据,所以所需时间较长,数据量越大,所需时间就越长。

nethunter报错提示磁盘空间不足

调整完成后,我们可以使用GParted工具的命令行,输入sudo gdisk /dev/sda(如果只有一块硬盘,则为sda)。这样,gdisk工具就不会再报警了。输入命令w,将GPT分区表写入硬盘。再次输入sudo gdisk /dev/sda,我们就可以看到现在硬盘上同时存在“保护性”MBR分区表和GPT分区表了。

nethunter报错提示磁盘空间不足

然而,如果此时重新启动回到macOS,安装程序仍然会报错。这是因为虽然我们将分区表转换为GPT格式,但没有重新创建EFI分区。回到GParted,我们选中之前划分出的200MB空间,将Label设为EFI,File System设置为FAT32,然后点击Add。

nethunter报错提示磁盘空间不足

点击工具栏上的Apply,将新分区的信息写入分区表。然后,在新划分的EFI分区上右键点击,选择Manage Flags,然后选中esp。boot选项会自动被选中。关闭后,就可以重新启动回到macOS了。再次尝试升级,应该就能成功了。

nethunter报错提示磁盘空间不足

故障原因:旧版本的macOS磁盘工具在进行分区复制时,并不会检查两个硬盘的分区表格式是否一致。磁盘工具不仅可以将macOS的系统分区正常复制到MBR磁盘的分区,而且复制到MBR磁盘上的系统分区可以在Mac电脑上正常启动。这种情况在使用“克隆”方式批量准备Mac电脑时,如果技术人员没有注意分区表格式,很容易出现,并且通常只有在需要重装或升级系统时才会暴露出这个问题。

赞(0)