你做错了什么

你做错了什么

所以我有两个硬盘。硬盘 A (HDDA) 安装了 Windows 7 版本,Windows 资源管理器出现错误,导致硬盘不断重启,导致我们无法访问文件系统和大多数软件。然后我们有硬盘 B (HDDB),它有三个分区,每个分区都有不同的操作系统。一个是 Debian 10,一个是 Windows 8.1,一个是 Ubuntu。

我尝试了各种修复 HDDA 的方法,但到了需要尝试修复 Windows 操作系统的地步,而且没有原始安装盘,由于多种原因,无法制作可用的修复盘,也无法仅使用磁盘进行备份。因此,我们决定直接升级到 Windows 10,但我想制作一个磁盘映像,因为计算机用于实验室设备,带有各种驱动程序,升级后可能会出现问题,也可能不会出现问题。

我当时尝试做的是将 HDDA 的磁盘映像创建到 HDDB 上,以防万一。HDDA 上的分区约为 70 GB,我将其复制到约 430 GB 的分区上。我使用了以下命令:

sudo dd if=/dev/sdb1 of=/dev/sda5

但是,执行此操作后,HDDB 上分区的所有空间都已使用,我无法再在文件 GUI 中打开该分区的目录。关闭计算​​机时,我收到 ext4-fs 错误。一旦我重新打开计算机,它只会带我进入一个带有闪烁下划线的空白屏幕。

有什么方法可以修复此问题并访问 HDDB 上的任何操作系统?

谢谢

答案1

恐怕你好像已经摧毁了你的 HDDB。

你做错了什么

sudo dd if=/dev/sdb1 of=/dev/sda5一个磁盘到另一个磁盘居住(即已挂载,或者已挂载其兄弟分区)是非常危险的。

第一个问题是我们不知道分区sda5是什么。它可能是 NTFS、FAT、ext4 等。最好是相同的。

其次,我们不知道这sda5对您的系统是否至关重要。您运行的命令不会附加数据,而是会覆盖数据。

第三,您的命令的主要问题是我们对 HDDA 和 HDDB 了解不多。例如,如果一个使用 MBR,另一个使用 GPT,则无法移植分区。如果是 MBR,我们不知道哪些是次分区,哪些是主分区。

你应该做什么。

你应该将整个磁盘备份到文件,而不是备份磁盘上的分区。

IE

sudo dd if=/dev/sdb of=/home/username/mybackup.bin

或者压缩:

sudo apt-get install zstd

# To backup
zstd -16v </dev/sdb >/home/username/mybackup.zst
# To restore
zstdcat -v /home/username/mybackup.zst >/dev/sdb

检查驱动器健康状况

您描述的 HDDA 听起来很可疑。它可能出现故障。

运行smartctl -a /dev/sdb将为您提供更多信息。如果您使用的是 Windows,则可以运行 CrystalDiskInfo 等 SW。

无论如何,定期检查所有磁盘上的 SMART 值是个好主意。

您现在可以做什么

创建一个 LiveUSB,从那里启动,然后启动 GPart。您需要查看从 HDDB 中识别出的内容,以查看是否可以挽救什么。

如果您的其他分区仍然被识别,那么这可能只是恢复您的 EFI 启动分区并安装想要从 Windows 或其他 Linux 分区启动的启动管理器的问题。

您可能还必须/etc/fstab从仍然存在的 Debian/Ubuntu 进行编辑以不再尝试挂载 sda5(它不会写为 sda5 而是现在不存在的 GUID),否则启动将需要很长时间或无法启动。

如果被破坏的是您的 EFI 启动分区,那么您很幸运。只需将其重新创建为 FAT32,设置 EFI 启动位,然后再次在其上安装 GRUB 即可恢复您的系统。

但是有千种可能性,您还不知道在 HDDB 上打开 GPart 时会发现什么。

最糟糕的情况是,什么都无法识别,唯一的选择是使用专业磁盘恢复服务在驱动器发生故障时使用的相同技术(废弃原始磁盘,尝试识别分区表,如果失败,尝试通过其常见模式识别文件)或只是格式化所有内容并从头开始安装。

相关内容