Windows 10 更新对我的 Ubuntu 16.04 驱动器进行了重新分区

Windows 10 更新对我的 Ubuntu 16.04 驱动器进行了重新分区

我不确定最近(2017 年 2 月 5 日)的 Windows 10 更新发生了什么,但我的 Ubuntu 继续进行 grub 更新。一切正常,系统需要重新启动,我照做了,但现在 grub 和 nautilus 侧边菜单中的分区丢失了。在 Grub 救援菜单上:

grub rescue > ls
(hd0), (hd0,msdos5), (hd0,msdos4), (hd0,msdos2), (hd0,msdos1)

因为很明显列表中有一个分区丢失了。但我还是没有放弃希望,我尝试了grub rescue > ls (hd0,msdosX)每个分区,包括丢失的数字,但没有成功。未知文件系统的错误反复出现。

在网上了解到LiveUSB可以解决这个问题。

从实时 USB 尝试从 Ubuntu 页面进行启动修复,但没有成功。

我得到了摘要文件,它显示未知的引导加载程序,/dev/sda3这是我的 Ubuntu 实际分区。以下是 URL 摘要报告显示我的分区存在但是未知。

后来我尝试

sudo fdisk -l

输出结果为像这样来自 liveUSB。在这里我可以看到我的分区。我以为我可以挂载到它,但我得到了这个:

ubuntu@ubuntu:~$ sudo mount /dev/sda3 /mnt
NTFS signature is missing.
Failed to mount '/dev/sda3': Invalid argument
The device '/dev/sda3' doesn't seem to have a valid NTFS.
Maybe the wrong device is used? Or the whole disk instead of a
partition (e.g. /dev/sda, not /dev/sda1)? Or the other way around?

然后我尝试看看是否能找到有关该特定分区的更多信息,因此我尝试

ubuntu@ubuntu:~$ sudo lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT,LABEL
NAME   FSTYPE     SIZE MOUNTPOINT LABEL
sda             596.2G            
├─sda1 ntfs     154.5G            
├─sda2 ntfs       833M            
├─sda3              1K            
├─sda4 ntfs     390.6G            Personal
└─sda5 swap         4G [SWAP]     
sdb              14.9G            
└─sdb1 vfat      14.9G /cdrom     UUI
sr0              1024M            
loop0  squashfs   1.4G /rofs

而且显示我的分区只有1K。

我尝试检查驱动器,这是结果

ubuntu@ubuntu:~$ sudo fsck /dev/sda3
fsck from util-linux 2.27.1
e2fsck 1.42.13 (17-May-2015)
fsck.ext2: Attempt to read block from filesystem resulted in short read while trying to open /dev/sda3
Could this be a zero-length partition?

现在我在谷歌上找不到任何线索,因此只能在这里发帖。有什么办法可以找回我的驱动器吗?非常感谢大家的帮助,因为我也无法登录到我的 Windows 分区。

更新 1

尝试了 TestDisk。这是输出:

ubuntu@ubuntu:~$ sudo testdisk /dev/sda3
TestDisk 7.0, Data Recovery Utility, April 2015
Christophe GRENIER <[email protected]>
http://www.cgsecurity.org

Unable to open file or device /dev/sda3: No such device or address

更新 2 显然,我错误地使用了 testdisk。按照 ubuntu live usb 中的步骤操作,我恢复了分区,但 Windows10 损坏了,这意味着我无法使用 get 重新进入 windows10,但它正在加载。从 Grub Rescue,我遇到了一个新的错误。

set prefix=(hd0,msdos3)
set root=(hd0,msdos3)
insmod normal
error: file '/grub/i386-pc/normal.mod' not found.

但这个问题也通过以下方式解决了此解决方案

现在,只剩下一个问题,是否有可能修复 windows10 而不丢失其中的数据并保留我的 Ubuntu 分区?因为我不愿意不惜一切代价放弃我的 Ubuntu,因为它是我唯一的收入来源。

答案1

你被击中了Windows 10 周年更新错误。它会更新 Windows 10,并清除 Ubuntu (Linux) 分区。

您的 sda3 分区位于“扩展”分区中,该分区曾经包含您的 Ubuntu 分区。

您可以尝试使用testdisk来恢复丢失的分区。请参阅http://www.cgsecurity.org/wiki/TestDisk_Step_By_Step了解有关如何使用 testdisk 的信息。您需要获取 Ubuntu Live DVD/USB 才能运行 testdisk。

答案2

这可能无法解决您的眼前问题,但从实现更强大的配置的角度来看,我建议大多数情况下将 Windows 作为虚拟机运行(使用 VMware Workstation/Player、Virtualbox、KVM 或其他),并将 Ubuntu 作为本机/主机操作系统,而不是双启动,原因如下:

  • 正如您所发现的,Windows 可能会不顾其环境并拒绝配置。
  • 虚拟化定义了 Windows 的环境,因此要求它在这些边界内运行。
  • Linux 是完全可配置的,尽管手册页难以理解。
  • 配置 Windows 虚拟机比配置双启动要简单得多。
  • 双启动可能会导致整个系统停机和数据丢失,需要几天或几周的干预才能克服,而虚拟化则不会。
  • 虚拟机可以通过复制/粘贴进行备份和恢复。因此,可以在主机系统写入恢复副本所需的时间内删除和替换行为不当的 Windows 虚拟机。此外,Windows 虚拟机在存档前只需配置一次,从而节省了每次重新安装时浏览数十个 GUI 配置窗口的数天时间。维护只需要每年打开存档的虚拟机来更新应用程序和 Windows。
  • 虚拟机与主机同时运行,节省了操作系统之间切换的时间。
  • 许多功能可以从 Windows 迁移到 Linux 主机。
  • 根据选择的深度,Linux 主机还可以配置为提供打印、文件、dns、邮件、web、媒体、ftp、vpn 和其他服务。此外,Linux 主机还可以配置为 LAN 的路由器。

我希望其他人可能对这个问题有看法,但我发现这种方法可以显著提高可靠性并减少停机时间。

祝你好运!

相关内容