kol*_*lar 7 grub ubuntu vmware
我无法登录我的 Ubuntu12.04(它是使用 VMWARE FUSION 6 在 OSX 上运行的 VM),因为我/tmp
在重新启动机器之前出于某种目的更改了权限。
因此,我尝试通过shift
在启动机器时按键以恢复模式启动 Ubuntu (以更改 的权限/tmp
),但这是不可能的,因为启动时没有出现 grub 屏幕。
如果 grub 没有出现,我如何进入恢复模式?
这听起来像是为 iPXE 救援量身定制的情况。本质上,您不是从虚拟机自己的虚拟磁盘文件系统启动虚拟机,而是使用通过互联网检索的启动文件。实际上,它与从可移动驱动器上的 Live ISO 映像启动几乎相同,一旦环境完成启动,您将能够安装虚拟磁盘并进行任何所需的修复。
\n您可以在此处找到用 iPXE ROM 替换 VMware 附带的 PXE ROM 的说明(此过程中我的最佳结果是将 VMware 设置为模拟 Intel e1000e 网络适配器,但它们都应该可以工作)。按照所述替换 ROM 文件并编辑虚拟机的 .vmx 文件后,打开 VMware Fusion,选择有问题的虚拟机并在 GUI 中验证您在 vmx 文件中设置的网络适配器模型是否处于活动状态且处于桥接模式。
\n\n确定后,单击OK退出“设置”窗口,然后单击 Fusion 主窗口中的绿色“播放”按钮以启动虚拟机。
\n一旦出现窗口,请开始F2以大约一秒的间隔按下键盘上的按键,直到出现“固件设置”菜单,可能需要关闭虚拟机并再次启动几个周期才能获得固件设置菜单。时机正确。当出现类似以下内容时,您就会知道您已获得它:
\n\n仅使用键盘即可导航固件设置菜单,因此请点击\xe2\x9e\x94键直至到达启动设置,然后点击\xe2\xac\x86/\xe2\xac\x87以使“网络启动自...”选项突出显示,最后+根据需要多次点击该键将其移至列表顶部,使其成为第一个启动设备。完成后,按F10键确认新的启动配置,虚拟机自然会重新启动并使它们生效。
\n一旦再次开始启动过程,密切关注控制台输出非常重要。通常,通过 PXE 引导需要网络上某处的本地服务器来提供引导的环境文件,但规范还提供了一个chain
将 URL 作为参数的命令,这无疑是实现此目的的最简单方法。要使用 chain 命令,您需要注意在启动过程的早期阶段显示的消息,如下所示:
iPXE -- Open Source Network Boot Firmware -- http://ipxe.org\n Features: HTTP iSCSI DNS TFTP AoE FCoE TFTP COMBOOT ELF PXE PXEXT\n \n Press Ctrl-B for the iPXE command line...\n
Run Code Online (Sandbox Code Playgroud)\n自然,这是您混合指定的组合键以切换到命令行的提示!
\n(通常是Ctrl+ B,但我见过一两次其他组合键)
\n期望的结果是,由于您所做的一切,您现在将看到与以下内容非常相似的内容:
\niPXE>\n
Run Code Online (Sandbox Code Playgroud)\n恭喜,您已进入最后冲刺阶段。最后一步是从网络设备获取 IP 地址,并将虚拟机指向属于Netboot.xyz 项目的服务器。总之,您需要在 iPXE 命令行提示符下发出两个单独的命令。他们是:
\ndhcp
chain --autofree https://boot.netboot.xyz/menu.ipxe
几秒钟之内,您就会看到一个可供启动的 Linux 发行版的实时映像大杂烩,以及大量也可以启动的流行“救援光盘”。看?
\n\n还应该注意的是,如果您遇到任何困难,Netboot.xyz 团队有他们自己的推荐流程,用于使用 iPXE 从 VMware 中访问他们的服务,该流程与我刚刚在此处详细介绍的流程不同,尽管我\'根据我自己的经验,我发现它并不那么可靠。此外,您还可以在命令行上使用所有 iPXE 命令,dhcp
并且在此处chain
通过示例详细介绍了这些命令。
祝你好运!
\n注意:上述 iPXE 命令假设您正在为虚拟机使用 UEFI 配置,这种配置近年来已变得越来越普遍。如果我对此有误,并且您已配置为 BIOS 引导进程,则最终命令将需要有所不同;使用此链命令而不是上面的命令:chain --autofree https://boot.netboot.xyz/ipxe/netboot.xyz.lkrn