重新安装 wubi/ubuntu 并使用旧的 root.disk 后,我被抛到 Grub shell

重新安装 wubi/ubuntu 并使用旧的 root.disk 后,我被抛到 Grub shell

我的 wubi 文件已损坏,我不得不重新安装 ubuntu(通过 wubi)。在卸载旧 ubuntu 之前,我将旧的 root.disk 保存在外部驱动器中。安装后,我尝试启动 ubuntu(12.04 LTS),以确保它正常工作。一切正常。但是,当我将旧的 root.disk 复制到 ubuntu/disks 文件夹中并启动 ubuntu 时,它会带我进入 Grub shell/命令行。在网上浏览后,我偶然发现了这个解决方案

  set root=(hd0,1)
  loopback (loop0) /ubuntu/disks/root.disk
  set root=(loop0)
  linux /boot/vmlinuz root=/dev/sda1 loop=/ubuntu/disks/root.disk ro
  initrd /initrd.img
  boot

第 4 行不起作用,似乎没有文件。vmlinuz-... 有人能给我一步一步的命令来启动 ubuntu 吗?我的机器是 Windows 7。

答案1

假设root.disk您复制的内容没有损坏...您可以按如下方式启动它:

search -s -f -n /ubuntu/disks/root.disk
probe --set=diskuuid -u $root
loopback loop0 /ubuntu/disks/root.disk
set root=(loop0)
linux /vmlinuz root=UUID=$diskuuid loop=/ubuntu/disks/root.disk ro quiet splash
initrd /initrd.img
boot

启动后,请确保运行sudo update-grub

Wubi 损坏最常见于NTFS文件系统(需要chkdsk /f从 Windows 运行),其次是内部ext3/4文件系统损坏。由于您设法复制了您的文件,root.disk因此您可能存在内部损坏,在这种情况下运行fsck root.disk可能会修复它。但这取决于您何时进行备份(即在您遇到问题之前或之后)。

fsck启动root.diskUbuntu DVD/USB,请选择尝试 Ubuntu,然后挂载包含的分区root.disk,然后fsck按如下方式进行操作(此示例假设root.disk在上/dev/sda1):

sudo mount /dev/sda1 /mnt
sudo fsck -fyv /mnt/ubuntu/disks/root.disk

(标志是force,y用于自动修复,verbose)

笔记fsck以这种方式使用确实会造成更改,并且不能保证它会修复所有问题而不会丢失数据。如果恢复至关重要,可以使用photorec(安装testdiskie时捆绑sudo apt-get install testdisk提供)。Photorec 是只读的(非破坏性的),可以恢复原始文件。缺点是恢复的文件没有命名,它也会恢复所有内容,例如已删除的文件 - 因此需要手动操作才能找到所需的文件。但它确实提供了针对特定文件类型的能力。有关更多信息,请参阅此处:使用 rm -rf 恢复已删除的数据?

相关内容