我刚刚输入
gpart delete -i 1 ada0
当我应该写的时候
gpart delete -i 1 ada1
不幸的是,reboot
在我注意到我的错误之前就打字了。磁盘 ada0 具有默认的 GPT 布局,FreeBSD 10.1 安装程序将其置于默认分区选项中。
显然,系统现在不会重新启动,那么有没有办法将分区添加回来呢?恢复机器最快的方法是什么?我不想完全重新安装,因为系统有大量自定义更改,这将需要大量时间来重做。
答案1
以下应该有效。下载 FreeBSD 安装盘并将其引导至单用户模式。完成后执行以下操作:
gpart show ada0
它应该打印描述磁盘布局的文本。结果如下:
=> 34 500118125 ada0 GPT (238G)
34 1024 1 - free - (512K)
1058 490732544 2 freebsd-ufs (234G)
490733602 8388608 3 freebsd-swap (4.0G)
499122210 995949 - free - (486M)
现在您可以通过发出 来备份 GPT 进行编辑gpart backup ada0
,这应该会给出类似的内容(因为您删除了分区 1):
GPT 128
2 freebsd-ufs 1058 490732544
3 freebsd-swap 490733602 8388608
将输出复制到文件并像这样编辑它(freebsd-boot 后面的数字是来自 的可用空间的数字gpart show ada0
):
GPT 128
1 freebsd-boot 34 1024
2 freebsd-ufs 1058 490732544
3 freebsd-swap 490733602 8388608
如果您已将上述内容存储到名为 的文件中newgpt
,则以下操作会将 GPT 恢复到允许启动的状态:
gpart restore -F ada0 < newgpt
gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 ada0
最后一个命令应该是多余的,因为引导代码在磁盘上应该是完整的,但由于我没有可以破坏的系统来测试它,所以我将它放在那里以防万一。