我不确定最近(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 的路由器。
我希望其他人可能对这个问题有看法,但我发现这种方法可以显著提高可靠性并减少停机时间。
祝你好运!