Grub救援没有这样的设备,也无法访问BIOS
我购买了一台预装了Windows 8的Acer Aspire M5-481PT-6688。我擦掉了它,重新安装了我自己的无bloatware副本,并尝试在其上启动双启动Ubuntu 13.04。 它有一个混合驱动器,因此当我安装它与Windows一起运行时,Ubuntu安装在SSD上,Windows安装在HHD上。 后来我通过格式化SSD删除了Ubuntu,现在我陷入了grub rescue>
提示符。 错误说: no such device
。 无论我按什么键组合(F2,F8,F10,F12,Esc,Del)我都无法访问我的BIOS,也无法从CD / DVD驱动器或USB启动。
在ubuntuforums.org中使用drs350的精彩指南 (对他来说很荣幸),您可以启动Live CD,甚至可以从grub rescue>
提示符下安装Ubuntu。 这里的确切步骤:
前提条件
此过程适用于:
- Ubuntu系列使用Grub 2发布
- 格式错误的Grub 2菜单(grub.cfg)
- 缺少Linux内核和initramfs映像
- 系统文件夹损坏(不包括模块文件夹)
为了使此过程有效,您必须:
- 在可从Grub救援提示访问的分区上安装Ubuntu系列Live CD ISO映像。
- 必须找到并正确加载先前安装的Grub模块。
该程序不适用于:
- 缺少Grub 2模块(通常在/ boot / grub或/ usr / lib / grub / i386-pc中)
- 损坏的Ubuntu ISO映像
- 分区结构损坏 – “ls”仅返回“(hd0)”
启动程序
-
下载ISO。
- 从以下url下载Ubuntu ISO: http : //www.ubuntu.com/desktop/get-ubuntu/download或
- 从http://www.ubuntu.com/netbook/get-ubuntu/download下载Ubuntu上网本ISO
-
找到Ubuntu分区和包含Grub模块的文件夹。
必须找到包含模块的Grub文件夹,以便可以加载正确的模块。 此文件夹将在Ubuntu的初始安装期间创建,并且应位于Ubuntu分区中。 此文件夹通常位于
(hdX,Y)/boot/grub
或(hdX,Y)/usr/lib/grub/i386-pc
找到您现有的Ubuntu分区和模块文件夹。
ls # List the known drives (hdX) and partitions (hdX,Y) ls (hdX,Y)/ # List the contents of the partition's root ls (hdX,Y)/boot/grub # Normal location of the Grub 2 modules. ls (hdX,Y)/usr/lib/grub/i386-pc # Alternate location of the Grub 2 modules.
-
ls
– 应该返回所有已知的驱动器(hdX)
和分区(hdX,Y)
-
ls (hdX,Y)/
– 应显示分区根目录的内容。- 如果你得到一个“错误:未知文件系统”,这不是你的Ubuntu分区; 更多关于此以后。
- 如果这是Ubuntu分区,您将看到Ubuntu文件夹,包括
lost+found/
,home/
,boot/
和vmlinuz
以及initrd.img
。 使用此地址作为下一个命令的第一部分。
-
ls (hdX,Y)/boot/grub
– 应该显示几十个* .mod文件。 这是您要查找的文件夹。- 如果找不到模块,请尝试备用位置:ls(hdX,Y)/ usr / lib / grub / i386-pc
-
-
加载模块。
set prefix=(hdX,Y)/
此命令必须正确指向包含Grub模块的文件夹。 地址应该是上一节中显示模块的地址。 例子:
set prefix=(hd0,5)/boot/grub set prefix=(hd1,1)/usr/lib/grub/i386-pc
加载模块:
insmod linux insmod loopback insmod iso9660 insmod fat # If ISO is located on fat16 or fat32 formatted partition. insmod ntfs # If ISO is located on an NTFS formatted partition. insmod nftscomp # If NTFS compression is used on the partition. Load if you aren't sure.
“找不到文件”错误意味着前缀中的路径不正确或特定模块不存在。 可以使用set命令查看前缀设置。 使用正确的路径重新运行
"set prefix="
命令。 -
找到Ubuntu ISO文件。
使用ls命令的相同组合,找到Ubuntu ISO映像。
ls (hdX,Y)/
- 您正在寻找包括ISO在内的内容,例如ubuntu-10.04.1-desktop-i386.iso
- 如果ISO映像不在/文件夹中,请展开路径。
- 如果您收到错误:未知文件系统,您可能需要加载文件系统模块(例如ntfs或fat。请返回上一节以获取指导。)
-
创建环回设备。
loopback loop (hdX,Y)/
/ 例:
loopback loop (hd1,1)/ubuntu-10.04.1-desktop-i386.iso
-
加载Linux内核和initrd映像。
set root=(loop) linux /casper/vmlinuz boot=casper iso-scan/filename=/
noprompt noeject initrd /casper/initrd.lz 如果ISO或文件名的路径不正确,则引导将在BusyBox屏幕上停止并产生一条消息,指出“无法打开/ dev / sr0:找不到介质” 。
注意 :如果ISO文件不在
/
文件夹中,请在iso-scan/filename=
条目中包含路径。 见第二个例子。例子:
linux /casper/vmlinuz boot=casper iso-scan/filename=/ubuntu-10.04.1-desktop-i386.iso linux /casper/vmlinuz boot=casper iso-scan/filename=/my-iso/ubuntu-10.04.1-desktop-i386.iso
-
引导。
那应该是它。 如果命令在没有任何消息/错误的情况下运行,则命令被接受为输入。 现在是时候开机了:
boot
安装Ubuntu – 从Live CD ISO
关于Oneiric Daily ISO安装的注意事项 :Oneiric Ocelot的当前每日构建需要登录才能进入桌面。 选择默认用户将不允许使用sudo
因为用户不存在密码。 选择“其他”,然后选择用户名“Ubuntu”并将密码字段留空。 这将允许在安装过程中使用sudo
卸载/isodevice
。
可以从引导的ISO文件安装到硬盘驱动器上。 不需要CD。 建议使用Internet连接,但不是必需的。 如果没有连接,则不会更新从ISO安装的软件包,也不会下载其他软件包。
-
使用上述ISO引导过程引导至Live CD桌面。
注意 :如果您有大量RAM,则可以使用toram选项。 这将允许系统启动到内存并允许在安装期间自动卸载isodevice1。 必须卸载/ isodevice才能成功安装。 如果安装程序无法卸载/ isodevice,则除非用户强制卸载,否则安装将失败。 此强制卸载包含在本节后面详述的过程中。
-
如果您想尝试toram选项,请替换上面的linux行并使用此行代替:
linux /casper/vmlinuz boot=casper iso-scan/filename=/
noprompt noeject toram -- - 如果安装程序可以在提示符下卸载
/isodevice
,则安装将继续。 - 如果内存不足(我的系统上有3GB内存失败)并开始安装,安装程序将无法卸载
/isodevice
,安装将失败,系统可能会冻结。 重新启动并完成“引导过程”部分中的所有步骤。 不要重复本小节并继续下面。
-
-
打开终端:应用程序,附件,终端
-
卸载
/isodevice
sudo umount -l -r -f /isodevice
双击“Install Ubuntu”图标启动安装过程。
安装将像任何相同版本的安装一样进行,类似于备用CD。
指南继续网络安装程序,这可能对这个特定情况没用,我也不能保证它的有效性,所以我将这部分留在我的答案之外。
如果指南需要改进,请随时发表评论。 我检查,直到我可以(因为我不会打破我的grub只是为了测试)。
资源:
http://ubuntuforums.org/showthread.php?t=1599293&p=9987717#post9987717
取出电池等待几分钟并连接电池,BIOS将会出现,你也可以从CD启动。
我的答案是,重新安装Ubuntu,当它要求您输入密码时,请选中“自动登录”按钮。 看来密码表格导致了GRUB问题,grub无法访问grub.cfg。 我希望这有帮助!