格式化启动分区后启动ubuntu的问题

我是一个新的ubuntu用户,在意外格式化启动分区后,我无法恢复工作。 这是一些更多信息:

我试图从终端格式化SD卡,我不小心可能已经格式化了启动ubuntu的分区。 现在我的计算机直接进入BIOS设置并且不加载操作系统。 在Bios的Boot选项卡下有:

  • 启动PXE OpROM [已禁用]
  • 引导选项优先级
  • 引导选项#1 [ubuntu(驱动器不是….]
  • 引导选项#2 [ubuntu(驱动器不是….]
  • 引导选项#3 [Windows Boot Manag ….]

(我很久以前就把窗户拆掉了。)

这就是我到目前为止试图解决问题的方法:

我创建了一个ubuntu boot usb驱动器,并且能够从USB启动机器(幸运的是,所有数据仍然存在)。 然后我尝试在旧的ubuntu旁边再次安装ubuntu。 安装成功完成,但如果没有USB驱动器,机器仍无法启动。

然后我按照线程中的说明进行CreateBootPartitionAfterInstall

我尝试运行Boot-Repair但是因为丢失的标志“bios_grub”而出现错误。 所以在gparted中我将/ dev / sda1的标志更改为bios_grub(之前是“boot” – 不确定这是否是正确的做法,但没有它就无法运行boot-repair)。 这是我的分区的样子:

http://ubuntu.miximages.com/boot/ubuntu_gparted.png

我成功运行了启动修复,但仍无济于事 – 机器仍然无法在没有USB驱动器的情况下启动。

然后我在boot-repair中尝试了高级选项,在GRUB Location选项卡下我检查了“Seperate / boot partition sda1”

这显然也很顺利,最后我收到了成功的启动修复消息。 唯一的问题是它无法在dev / sda6上运行一些更新,它指示我在分区上启用更新(我不知道该怎么做,并认为这与主要问题无关)。 然而,重新启动后我回到了同样的问题 – 直接进入BIOS仍然无法启动。

(最后一次)启动修复的URL是这样的:

http://paste.ubuntu.com/6939109/

我现在不知道该做什么以及如何让我的机器恢复原状。 任何建议都非常感谢

你一直在挖掘自己越来越深的洞。 幸运的是,我认为你仍然可以恢复。 既要警告别人并帮助你学习,我想指出你的一些错误:

  • 由于引导问题而重新安装Ubuntu几乎总是矫枉过正,并且存在最坏情况下破坏用户数据的风险。 你说你的数据仍然存在,所以你可能只是浪费了一些时间,但我想指出这一点,因为它可能已经非常糟糕,丢失了用户数据以添加到您的启动问题。
  • 尝试在最初设置为EFI模式的计算机上从BIOS模式启动运行引导修复是一个错误。 你可能甚至没有意识到你犯了这个错误,但是你做到了 – Boot Repair抱怨需要一个带有“ bios_grub标志”的分区的bios_grub是这个错误的线索。 (令人遗憾的是,引导修复的这个投诉显然对任何人都没有太多的信息,但专家。)
  • /dev/sda1上的标志从boot更改为bios_grub是一个错误。 在parted和GParted术语中,“ boot标志”标识EFI系统分区(ESP),它是保存EFI引导加载程序的分区。 “ bios_grub标志”OTOH标识BIOS引导分区,其中包含用于BIOS / CSM /传统模式引导的第二阶段GRUB引导加载程序代码。 当您在BIOS模式下重新安装GRUB时,它会覆盖/dev/sda1的前几个扇区,从而损坏分区上的数据。 听起来你的问题始于意外地破坏了这个分区,所以你可能没有真正做任何更多的破坏(除了可能你的/etc/fstab文件),但这绝对是错误的方法。 如果你的问题有不同的原因,这个错误会使恢复变得更加困难。
  • 告诉引导修复将/dev/sda1视为单独的/boot分区也是一个错误。 您最终告诉它将该分区视为两个相互排斥的东西:作为单独的/boot分区和BIOS引导分区。 这可能会使事情进一步陷入混乱,但看起来它并没有太大的影响。

作为EFI启动的进一步背景,您可能希望阅读我的主题网页 , EFI启动时的Ubuntu社区维基 ,和/或解释EFI问题的Adam Williamson博客。 所有这三个页面都提供了可帮助您将来处理此类问题的背景信息。

关于解决方案:有几种方法,但我建议您首先解决一些必须针对任何解决方案处理的问题:

  1. 启动Linux紧急光盘。
  2. 使用GParted或parted更改/dev/sda1上的“标志”以进行boot 。 或者,使用gdisk将此分区上的类型代码更改为EF00。
  3. /dev/sda1上创建一个新的FAT32文件系统。 您可以使用GParted或使用命令行mkdosfsmkfs实用程序执行此操作。
  4. 挂载/dev/sda6并编辑/etc/fstab文件。 您必须在此文件中添加一个条目才能在/boot/efi上挂载/dev/sda1 。 它应该如下所示:

 /dev/sda1 /boot/efi vfat fmask=133 0 0 

或者(并且最好在某些方面),您可以将该行开头的/dev/sda1更改为UUID="XXXX-XXXX" ,其中XXXX-XXXX是“UUID”(实际上是序列号)的值。分区,由blkid报道。 只有在分区上创建了新的FAT文件系统后,此值才有效,因此在编写此答案时这是不可知的。

完成这些更改后,必须安装新的EFI模式引导加载程序。 有几种选择。 可能最容易安装的两个是:

  • rEFInd – 您可以通过使用任何方法启动到Linux来安装rEFInd ,validation是否已挂载/boot/efi ,以及安装Debian软件包,可从rEFInd下载页面获得。
  • GRUB 2通过引导修复 – 引导修复工具应该重新安装GRUB; 但是, 必须在EFI模式下启动时运行程序。 检查是否存在名为/sys/firmware/efi的目录。 如果它存在,您已在EFI模式下启动,您可以运行引导修复。 如果它不存在,你可能已经在BIOS模式下启动了,启动修复最多也没用。 如果您已在BIOS模式下启动,请进入固件设置实用程序并禁用BIOS / CSM /传统支持; 或使用固件的内置启动管理器选择包含字符串“EFI”或“UEFI”的启动选项。 不幸的是,我不能更具体,因为固件设置实用程序和固件启动管理器的详细信息在一台计算机之间变化很大。

可能需要从硬盘的第一个扇区擦除BIOS模式GRUB代码。 如果您完成修复但仍无法从硬盘启动,请尝试启动到Linux并在终端中键入以下命令:

 sudo dd if=/dev/zero of=/dev/sda bs=440 count=1 

输入该命令时要非常小心 ; 如果您省略或指定bs=count=的错误值,则可能会对磁盘造成严重损坏。 这就是为什么我没有在主恢复程序中包含这个。

祝好运!

从屏幕截图来看,您的启动分区似乎不可读。 尝试打开实时会话并重新格式化/ dev / sda1,然后运行sudo grub-install /dev/sda ,然后运行sudo update-grub 。 这将重新安装你的引导程序,并应该让你在启动时通过挂起。