解决0X80042412错误,恢复已备份的Widows 8.1系统镜像到另一个固态硬盘。

之所以出现这个错误是因为计算机使用了2-3年,速度变慢,购买了固态硬盘,还想使用正版的系统,就把系统备份了,但是系统恢复时就出现0X80042412。当时也是查找了很多的方法包括

https://www.ubackup.com/imaging/fix-windows-7-x64-system-image-restore-fails-with-0x80042412-4125.html

推荐的目标盘要大于源盘等等其他方式都没解决。最后是使用微软的VHD虚拟硬盘技术和利用软件“Disk genius”的“克隆分区”功能成功解决。

下面给出解决这个可恶的错误提示“系统镜像还原失败-找不到可用于恢复系统盘的磁盘……(0X80042412)”的步骤:

1. 准备U盘的PE工具,网上到处有下载,推荐http://www.4008600011.com/archives/14979。这个是浪潮的U盘PE工具它是维护服务器功能多且安全。

2. 确认对上述备份的文件夹“\WindowsImageBackup\Backup yyyy-mm-dd xxxxx”有读写权限,一般默认都有

3. 在windows 8的PE系统下找到“计算机管理”-“磁盘管理”-选择“操作”菜单下的“附加VHD”子菜单,添加“\WindowsImageBackup\Backup yyyy-mm-dd xxxx\xxxx-xx-xx-xxxx-xxxxxxxxxx.vhd”文件。成功后会在“磁盘管理”中多出一个基本磁盘,如图的“磁盘3”。奇怪是这个vhd文件被“磁盘管理”挂载成功后,打开分区M盘,里面有原来系统盘的全部文件,而如果用7zip软件直接查看vhd文件,只能看到部分的文件。

在“设备管理器”中会多出一个虚拟设备“Msft Virtual Disk SCSI Disk Device”

4. 利用软件“Disk genius”的“克隆分区”功能,把虚拟磁盘3里的win8.1(原始备份的系统)克隆到新硬盘对应的分区。

同理,加载另一个vhd文件为虚拟磁盘,克隆到新的分区即可。克隆是需要选择源分区和目标分区。如果还要把联想电脑自带的隐藏的出厂备份系统,也克隆的话需要克隆到其他盘里面(如D:\或E:\或F:\等),因为克隆会把目标盘里面的内容覆盖。

如图所示:

5. 重启电脑,自动发现引导错误,自动修复,Over,激动人心的时刻开始了,来到登录界面密码跟原来的相同。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
很抱歉,作为AI语言模型,我无法提供完整的驱动程序代码,但是我可以为您提供一个简单的驱动程序示例,供您参考。 示例代码如下: ```c #include <ntddk.h> // 驱动程序入口函数 NTSTATUS DriverEntry(IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING RegistryPath) { UNREFERENCED_PARAMETER(RegistryPath); // 初始化驱动程序对象 DriverObject->DriverUnload = Example_Unload; // 注册设备对象 UNICODE_STRING DeviceName; RtlInitUnicodeString(&DeviceName, L"\\Device\\ExampleDevice"); PDEVICE_OBJECT DeviceObject = NULL; NTSTATUS Status = IoCreateDevice(DriverObject, 0, &DeviceName, FILE_DEVICE_UNKNOWN, 0, FALSE, &DeviceObject); if (!NT_SUCCESS(Status)) { return Status; } // 注册设备对象处理函数 DriverObject->MajorFunction[IRP_MJ_CREATE] = Example_Create; DriverObject->MajorFunction[IRP_MJ_CLOSE] = Example_Close; DriverObject->MajorFunction[IRP_MJ_DEVICE_CONTROL] = Example_IoControl; // 设置设备对象的标志 DeviceObject->Flags |= DO_DIRECT_IO; DeviceObject->Flags &= ~DO_DEVICE_INITIALIZING; return STATUS_SUCCESS; } // 设备对象创建处理函数 NTSTATUS Example_Create(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp) { UNREFERENCED_PARAMETER(DeviceObject); Irp->IoStatus.Status = STATUS_SUCCESS; Irp->IoStatus.Information = 0; IoCompleteRequest(Irp, IO_NO_INCREMENT); return STATUS_SUCCESS; } // 设备对象关闭处理函数 NTSTATUS Example_Close(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp) { UNREFERENCED_PARAMETER(DeviceObject); Irp->IoStatus.Status = STATUS_SUCCESS; Irp->IoStatus.Information = 0; IoCompleteRequest(Irp, IO_NO_INCREMENT); return STATUS_SUCCESS; } // 设备对象IO控制处理函数 NTSTATUS Example_IoControl(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp) { UNREFERENCED_PARAMETER(DeviceObject); PIO_STACK_LOCATION IrpStack = IoGetCurrentIrpStackLocation(Irp); ULONG ControlCode = IrpStack->Parameters.DeviceIoControl.IoControlCode; switch (ControlCode) { case IOCTL_EXAMPLE_SET_DATA: // 处理设置数据的操作 break; case IOCTL_EXAMPLE_GET_DATA: // 处理获取数据的操作 break; default: Irp->IoStatus.Status = STATUS_INVALID_DEVICE_REQUEST; Irp->IoStatus.Information = 0; IoCompleteRequest(Irp, IO_NO_INCREMENT); return STATUS_INVALID_DEVICE_REQUEST; } Irp->IoStatus.Status = STATUS_SUCCESS; Irp->IoStatus.Information = 0; IoCompleteRequest(Irp, IO_NO_INCREMENT); return STATUS_SUCCESS; } // 驱动程序卸载处理函数 VOID Example_Unload(IN PDRIVER_OBJECT DriverObject) { UNICODE_STRING DeviceName; RtlInitUnicodeString(&DeviceName, L"\\Device\\ExampleDevice"); // 删除设备对象 IoDeleteDevice(DriverObject->DeviceObject); // 卸载驱动程序 DriverObject->DriverUnload = NULL; } ``` 该示例驱动程序是一个基本的设备驱动程序,包含设备对象创建、关闭、IO控制等处理函数。您可以根据实际需要进行修改和添加。请注意,驱动程序开发需要熟悉Windows内核编程,同时需要小心谨慎,以避免对系统产生负面影响。建议您参考相关的教材或者网上的资源,以帮助您完成驱动程序的编写。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值