当我管理 VPS 时,我习惯fdisk
调整分区。但是当我重新启动时,服务器抱怨并block count 2780624 exceeds size of device (2441472 blocks)
进入emergency mode
。
我已经备份了分区,但是紧急模式没有fdisk
恢复分区的命令。
目前,我既可以进入紧急终端,也可以先通过 VNC 进入 grub 终端。在紧急模式下,可用的命令包括: /bin 命令截图,/sbin 命令截图
这是我第一次处理这样的问题,所以如果您需要任何进一步的信息,我会尽快提供。
编辑:
- 该系统CentOS 7。
- 我已经备份了先前的分区。分区截图
- 没有可用的工具
fdisk
,gpart
,cfdisk
,sfdisk
。 - 我最关心的是检索磁盘中的一些重要数据。
编辑:我发现可以捕获并下载服务器快照。在本地恢复数据是否更容易?
答案1
根据发布的信息,我无法找到解决方法,以防您的问题确实是分区表。
您可以启动网络(有 ip 和 dhclient),但没有工具可以从网络或其他服务器获取某些内容。
我仍然怀疑您屏幕截图上显示的 fdisk 是否是保存的内容,因为块表示 sda2 应该在磁盘限制之内(除非您以某种方式缩小了磁盘)。为了深入了解这一点,查看 dmesg 和 mount 输出会很有帮助。通常在 CentOS 启动/
时在 initrd 阶段安装/sysroot
,并且使用 initrd 中的 chroot,通常可以使用根磁盘中的实用程序进行恢复。但这种方式仍然需要能够安装根分区。
只要分区表中的分区起始扇区正确,就有可能。
答案2
即使使用 fdisk,您也需要之前的分区布局。由于您没有指定使用的 Linux 发行版,我们只能猜测:一些可能性是:
- 部分
- 磁盘管理
- 磁盘管理
可能还存在我不知道的其他情况。此外:fdisk 通常位于 /sbin 中,因此应该可用。您检查过 PATH 环境吗?
如果您的 VPS 提供商没有提供具有适当工具的救援环境,您应该考虑更换提供商...
答案3
如果恢复这些数据确实很重要,那么还可以使用 vi 作为十六进制编辑器,并用它修复分区表。这并不容易,需要(完全)理解 MBR 及其分区表部分的二进制格式。