如何修复引导Linux引导

developerWorks 社区
当您的 Linux® 计算机在执行内核升级、磁盘更换或其他系统更改后无法引导时,您并不是孤立无援的。Grand Unified Bootloader (GRUB) 提供了一些方法来控制引导过程和恢复。或者,在必要的时候,您使用外部工具创建的紧急引导磁盘可能会派上用场。了解可帮助您在存在问题的情形下引导系统的一些过程和 GRUB 命令,找到一个针对基于 BIOS 的系统的至关重要的外部工具。
, 顾问兼作家
Roderick W. Smith 是一位顾问兼作家,他撰写了十多本关于 UNIX 和 Linux 的书,包括 The Definitive Guide to Samba 3、Linux in a Windows World 和 Linux Professional Institute Certification Study Guide。他还是 GPT fdisk 分区软件的作者。他目前定居罗得岛州的 Woonsocket 市。
大多数 Linux 计算机使用 Grand Unified Bootloader (GRUB) — 更具体的讲是 GRUB 2 — 来控制从计算机的固件到内核的转移。GRUB 2 提供了复杂的引导时用户交互功能,为您提供了控制引导过程的能力。您可能不想每天都使用这些功能,但它们在处理问题的时候很重要,比如计算机在执行内核升级、磁盘更换或其他系统更改后无法引导的时候。一些技巧和 GRUB 命令可帮助您在这些情形下引导计算机,节省宝贵的时间。您也可以使用紧急引导磁盘引导您正常的 Linux 系统,即使在引导装载程序激活的常规初始阶段出现问题,也可以这样做。一般来讲,GRUB 恢复能解决两种类型的问题:可使用 GRUB 的内置 shell 解决的问题和需要外部工具的问题。本文将介绍这两种类型的问题,并使用 Super GRUB2 Disk 作为一个可在必要时使用的外部工具的例子。(本文着重介绍了 GRUB 2,但这里提供的一些信息也适用于 GRUB Legacy。从 “” 中,可以了解 GRUB Legacy 与 GRUB 2 之间的区别。)了解 GRUB 2 的控制结构在深入了解恢复细节之前,您应了解 GRUB 工作原理的一些基本知识。计算机的引导过程很复杂,如果引导过程偏离了引导路径,那么对引导路径有一定的了解可以帮助您解决问题。我首先将介绍引导代码和 GRUB 文件位于计算机上何处,以便您可找到它们,或者在某个缺少的文件导致出现问题时识别可能缺少了哪个文件。GRUB 配置文件格式的完整描述不属于本文的讨论范围,但我会介绍该配置的基本知识,帮助您更正简单的错误(比如错误指定的引导文件系统)。找到 GRUB 文件大多数使用基本输入/输出系统 (BIOS) 的计算机上的引导过程都涉及到存储在磁盘上各个位置的代码。这些位包括主引导记录 (Master Boot Record, MBR)、未正式分配的磁盘扇区和分区的引导扇区(也称为分区引导记录 [Partition Boot Record, PBR])。这些记录可由其他引导装载程序改写,由病毒或具有与 GRUB 冲突的需求的低级磁盘改写,或者由于误用 dd 等低级实用程序而遭到损坏。在出现这些损坏时,GRUB 不太可能完全启动,您可能需要使用一个工具,比如 。许多较新的计算机使用的是可扩展固件接口 (Extensible Firmware Interface, EFI) 而不是 BIOS。在这些系统上,GRUB 代码未存储在 MBR、PBR 或未正式分配的磁盘扇区中。它们位于 EFI 系统分区 (ESP) 上一个具有 .efi 扩展名的 EFI 引导装载程序文件中,ESP 是一个通常出现在磁盘开头并具有文件分配表 (File Allocation Table, FAT) 格式的分区。EFI 系统不易受到与 BIOS 系统相同类型的低级引导装载程序的破坏,但它们可能由于对计算机的非易失性 RAM (NVRAM) 设置的更改而发生故障。在这些情况下,您可能需要执行一次紧急引导,然后使用 efibootmgr 实用程序还原 GRUB,用它作为默认的引导装载程序。除了低级 BIOS 或 EFI 引导文件之外,GRUB 2 还依赖于 /boot/grub 中的传统文件。这些文件包括文件系统驱动程序、视频驱动程序、字体和 GRUB 配置文件 (grub.cfg)。因为这些文件位于正常的 Linux 文件系统中,所以早期引导阶段必须包含至少一个基本的 Linux 文件系统驱动程序。如果这些文件被损坏,GRUB 可能会正常启动,但无法启动您的操作系统;或者 GRUB 可能启动并且只显示一个 grub& 提示符。编辑配置文件在大多数系统上,GRUB 2 配置文件是 /boot/grub/grub.cfg 或 /boot/grub2/grub.cfg。但是,一些基于 EFI 的系统将它放在 ESP 上的一个目录中。这个目录可能是 /boot/efi/EFI/grub/grub.cfg 或其他类似位置。但在大多数情况下,不能直接对 grub.cfg 文件进行编辑;它是由脚本拼凑起来的。您可以在 /etc/grub.d 目录中找到一些组成片段。如果需要更改您的标准 GRUB 2 配置,那么可以编辑这些文件。无论它是如何构建的,grub.cfg 都包含全局选项和特定于操作系统或内核的引导代码节 (stanza)。Linux 发行版可针对大多数计算机正确设置其全局 GRUB 2 配置。如果您有一个不常见的配置,那么您可能需要分析全局 GRUB 2 配置来查找问题的原因。GRUB 2 的引导选项定义了各个操作系统或内核。这些引导代码节通常位于 grub.cfg 文件的后半部分。清单 1 显示了一个示例:清单 1. 引导 Linux 的示例 GRUB 2 代码节menuentry 'Ubuntu, with Linux 3.2.0-24-generic-pae' {
recordfail
gfxmode $linux_gfx_mode
insmod gzio
insmod part_gpt
insmod reiserfs
set root='(hd0,gpt6)'
search --no-floppy --fs-uuid --set=root -a9ed-4e80-b541-dc9e5eeb89fc
/vmlinuz-3.2.0-23-generic-pae root=/dev/sda7 ro quiet splash $vt_handoff
/initrd.img-3.2.0-23-generic-pae
}清单 1 中的内容的一些关键点包括:insmod 命令加载驱动程序模块。set root 行识别从中读取内核和初始 RAM 磁盘的分区,但 search 行随后会改写此值,并根据它包含的文件系统的通用惟一识别码 (UUID) 编号查找该分区。linux 行标识一个 Linux 内核,并设置传递给它的选项。initrd 行标识一个传递给内核的初始 RAM 磁盘文件。在引导时与 GRUB 2 交互为了能够修复问题,您首先需要了解正常引导过程和可调整它的方式。通常,您可以使用 GRUB 2 的内置编辑器调整引导选项来修复较小的问题。有时可使用 GRUB 2 的内置 shell 从更严重的问题中恢复。了解正常引导过程在传统上,GRUB 显示了一个文本模式菜单(类似于图 1 中所示的菜单)来显示您的引导选项。(在如今的许多安装中,GRUB 隐藏了这个菜单,但可以通过一个按键调出它。)图 1. GRUB
菜单在正常引导过程中,可使用上下箭头键导航该菜单,然后按下 Enter 键选择想要的选项。在 Linux 系统上,GRUB 随后会加载内核和初始 RAM 磁盘,并将计算机的控制权转交给内核。更改引导选项如果您看到一个类似
的 GRUB 选项,但您的选项尚未生效,那么可能是引导选项出了问题。GRUB 包含一个简单的文本编辑器,可在运行时使用它临时更改您的引导代码节。要更改引导选项,可在 GRUB 菜单中选择最接近您想要实现的目标的选项,然后按下 e 键。结果类似于图 2:图 2. GRUB 文本编辑器图 2 中的各行与
中的引导代码节中的各行相同。您可以编辑这些选项,就像使用 Linux 中的文本模式编辑器一样。您在此编辑器中执行的所有更改都是临时性的。(要了解如何执行永久更改,请参阅本文后面的 。)在文本编辑器中编辑引导代码节通常是为了执行一次性引导更改。例如,假设您希望引导到单用户模式来执行低级维护,但 GRUB 中没有单用户选项。要实现此目的,可编辑引导代码节,并将 single 添加到 linux 行末尾。完成上述操作后,按下 Ctrl-x 或 F10 来进行引导,就像屏幕底部给出的提示一样。如果创建一个新 GRUB 选项但它无法启动,那么您可以检查此引导选项来发现问题。或许该选项包含录入错误,比如写成了 linu 而不是 linux。或许您省略了 initrd 行。或许您指定了错误的引导文件系统。一般而言,可使用您的系统和 GRUB 2 配置的知识来更正这类问题。但是,在其他情况下,您可能缺乏相关的重要知识。例如,您可能需要了解引导文件系统的标识符是什么。在这些情况下,或者在问题变得更严重的时候,您可以使用 GRUB 2 shell。使用 GRUB 2 shellGRUB 包含它自己的内置 shell,您可在其中键入与 Bash 或其他 Linux 文本模式 shell 中键入的命令类似的命令。根据 Linux 标准,GRUB shell 很简单,但使用它来应对许多紧急维护任务已经足够。要从 GRUB 主菜单进入该 shell(),可按下 c。要从 GRUB 编辑器进入该 shell(),可按下 Ctrl-c 或 F2。结果类似于图 3:图 3. GRUB shellGRUB 2 shell 支持一系列命令,其中许多命令与 grub.cfg 中用于控制菜单驱动的引导过程的命令类似或等同。如果非常熟悉 GRUB 2 配置文件格式,那么您可以在 shell 中键入命令来引导计算机。实际上,很可能会使用 shell 执行恢复操作。表 1 提供了在此方面更可能有用的一些命令。GRUB 2 支持其他许多命令,您可以通过
了解它们。表 1. 常见的 GRUB 2 命令行命令可能促使您使用 GRUB 命令行的一个问题是,GRUB 无法找到它自己的配置文件。重新安装 GRUB(如本文的
一节中所述)是长期的解决方案。但是,与此同时,您可以发出一些命令来调出常规 GRUB 菜单并引导 Linux。首先,必须识别要安装 GRUB 的分区,这一点可借助 ls 命令来完成。如果在使用该命令时不带任何选项,ls 会显示 GRUB 可检测的磁盘和分区。然后您可以指定设备的名称和一个结尾斜杠 (/),以查看特定分区的内容,如清单 2 所示:清单 2. 使用 ls 查看文件系统的设备或内容grub& ls
(hd0) (hd0,gpt5) (hd0,gpt4) (hd0,gpt3) (hd0,gpt2) (hd0,gpt1)
grub& ls (hd0,gpt5)/
abi-3.2.0-22-generic grub/ initrd.img-3.2.0-22-generic
memtest86+bin System.map-3.2.0-22-generic vmcoreinfo-3.2.0-22-generic
vmlinuz-3.2.0-22-generic清单 2 中的示例显示了一个具有单个磁盘 (hd0) 的计算机,该磁盘包含 5 个全局惟一标识符 (GUID) 分区表 (GPT) 分区。(hd0,gpt5) 的内容好像是一个 Linux /boot 分区,包含一个 GRUB 配置目录 (grub/)。您可能需要查看其他分区的内容,然后才能找到您的 Linux /boot 分区。如果您的系统未使用单独的 /boot 分区,则必须查找您的 Linux 引导 (/) 分区。识别 GRUB 配置文件所在位置后,可以设置 prefix 和 root 环境变量,告诉 GRUB 在何处找到配置文件。这些变量分别识别 grub.cfg 所在的目录和它所在的分区:grub& set prefix=(hd0,gpt5)/grub
grub& set root=(hd0,gpt5)从这里,您可加载 normal 模块并启动它来调出 GRUB 菜单:grub& insmod normal
grub& normal使用 Super GRUB2 Disk在某些情况下,GRUB 甚至未提供 grub& 提示符,您可能甚至在使用该提示符解决问题时遇到麻烦。在这些情况下, 营救工具可提供帮助。准备应对灾难即使现在可以成功引导,我仍然建议您创建 Super GRUB2 Disk 的副本,以便在需要时直接使用它。 是一个具有 .iso 扩展名的混合镜像文件。可使用 dd 将此文件复制到软盘、CompactFlash (CF) 磁盘、通用串行总线 (USB) 闪存盘或者某种类型的磁盘中。也可以使用 cdrecord 或一个 GUI 光碟工具将该文件刻录到 CD-R 中。创建引导介质后,我建议对它执行测试(理想情况下,在多个计算机上执行测试),以熟悉该工具并确认它在您使用的硬件上是否有效。使用 Super GRUB2 Disk 进行引导准备一个 Super GRUB2 Disk 后,您可像其他任何可引导磁盘一样引导它。在某些情况下,您可能需要在引导过程中按下某个键来更改引导顺序。常用的键包括 F2、F10 和 F12,您应该查阅计算机的手册,了解相关的详细信息。在执行 Super GRUB2 Disk 引导时,您会看到一个类似图 4 的显示屏幕,其中包括检测操作系统或启用各种类型的支持的选项:图 4. 引导 Super GRUB2 Disk 时显示的 GRUB 菜单如果您的计算机使用了独立磁盘冗余阵列 (RAID) 或逻辑卷管理 (Logical Volume Management, LVM),或者依赖于旧的并行 ATA (PATA) 磁盘或外部 USB 磁盘,那么您可能需要选择这些功能并按下 Enter 来激活它们。完成上述操作之后,您可以尝试检测选项。我发现 “Detect any GRUB2 configuration file (grub.cfg)” 和 “Detect any GRUB2 installation (even if the MBR is overwritten)” 选项一般最适合恢复损坏的 GRUB 安装。但是 “Detect any Operating System” 选项可能也值得一试。如果检测成功,您应该看到一个新的 GRUB 选项菜单。在单操作系统安装中,此菜单可能仅包含一个选项,它使用路径来识别 GRUB 配置文件,就像 (hd0,gpt5)/grub/grub.cfg 中一样。在选中此选项时,应显示您的安装的正常 GRUB 屏幕。(字体和颜色可能不同,但菜单选项应该能够正常工作。)执行永久修复到目前为止,我介绍的修复都是永久性的。您可能已成功引导 Linux,但是,只要重新引导,就会看到原始的 GRUB 屏幕。要让您的更改永久生效,需要采取额外的步骤。其中最简单的步骤是修改 GRUB 配置文件。尽管 可以直接编辑 grub.cfg 来修改您的设置,但此方法不可取,因为只要升级您的发行版提供的内核,自动化的脚本就可以从其他文件重新构建该文件。相反,您需要编辑 /etc/grub.d 中的文件和 /etc/default/grub 中的默认全局设置。然后可以使用 grub-mkconfig,从 Linux 命令提示符生成一个新的 grub.cfg 文件:grub-mkconfig -o /boot/grub/grub.cfg如果您的问题是 GRUB 仅显示了一个 grub& 提示符或完全未启动,那么您必须将 GRUB 重新安装到您硬盘上:grub-install /dev/sda在某些情况下,您可能需要将 GRUB 安装到 /dev/sda 以外的设备,比如 /dev/sdb。一般不建议将 GRUB 2 安装到某个分区。如果将 GRUB 安装到一个基于 BIOS 的计算机上的 GPT 磁盘,请确保该计算机包含一个 BIOS 引导分区。没有该分区,GRUB 可能拒绝安装或者可能不可靠。如果您将 GRUB 安装到一个基于 EFI 的计算机,那么可以省略设备规范,确保您的 ESP 挂载在 /boot/efi 上。grub-install 自动将必要的文件复制到这个目录(进而布置到 ESP)。如果 GRUB 由于不当的 NVRAM 设置而未在基于 EFI 的计算机上启动,那么您可能可以在固件自身内修复这些问题,但不同实现的细节可能有所不同。如果可以在 EFI 模式下引导一个应急系统,那么可以使用 efibootmgr 还原您的引导装载程序:efibootmgr -c -l \\EFI\\loaderdir\\loadername.efi -L MenuName结束语GRUB 2 是一个直接引导 Linux(和其他一些)操作系统内核的灵活工具。但是由于引导过程中的漏洞和 GRUB 自身的复杂性,可能会出现一些问题,导致系统无法引导。在这些情况下,知道如何编辑各个 GRUB 代码段、如何使用 GRUB 命令行和如何使用 Super GRUB2 Disk 都是宝贵的技能。通过使用这些技术,您可以从各种引导问题中恢复并引导到您的正常安装中。此时,您可以编辑 GRUB 2 配置文件或重新安装引导装载程序让修复永久生效。
参考资料 :查阅官方的 GRUB 2 手册来访问有关 GRUB 2 引导装载程序的丰富信息。
“”(Roderick W. Smith,developerWorks,2010 年 4 月):获取引导装载程序的一般背景信息和 GRUB 2 的概述。
:获取一般的 BIOS 引导过程的技术细节。:获取一般的 EFI 引导过程的技术细节。:从项目网站了解 Super GRUB2 Disk 的更多信息。
:了解 rEFInd 如何帮助您从一些类型的低级 EFI 引导问题中恢复。
中,查找数百篇 ,以及面向 Linux 开发人员和管理员的下载、讨论论坛和其他丰富资源。
:观看演示,从为初学者准备的产品安装,到为经验丰富的开发人员准备的高级功能。
:下载 Super GRUB2 Disk。
:从 SourceForge 下载 rEFInd。
下载产品试用版来 。
加入 。探索由开发人员推动的博客、论坛、群组和维基,并与其他 developerWorks 用户进行交流。
developerWorks: 登录
标有星(*)号的字段是必填字段。
保持登录。
单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件。
在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。
所有提交的信息确保安全。
选择您的昵称
当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。昵称长度在 3 至 31 个字符之间。
您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。
标有星(*)号的字段是必填字段。
(昵称长度在 3 至 31 个字符之间)
单击提交则表示您同意developerWorks 的条款和条件。 .
所有提交的信息确保安全。
文章、教程、演示,帮助您构建、部署和管理云应用。
立即加入来自 IBM 的专业 IT 社交网络。
免费下载、试用软件产品,构建应用并提升技能。
static.content.url=/developerworks/js/artrating/SITE_ID=10Zone=Linux, Open sourceArticleID=952420ArticleTitle=从失败的 Linux 引导中恢复publish-date=用户名:whh
文章数:19
访问量:6930
注册日期:
阅读量:1297
阅读量:3317
阅读量:459345
阅读量:1143796
51CTO推荐博文
Linux系统启动过程:接通电源→硬件自检()→启动过程顺序→引导用图示说明:先了解下grub.conf[root@wang&grub]#&vim&/boot/grub/grub.confdefault=0&&&&timeout=5&&没有选择启动的操作系统超时时间splashimage=(hd0,0)/grub/splash.xpm.gz&&引导菜单背景图片&Hiddenmenu&&隐藏菜单title&CentOS&(2.6.32-431.el6.i686)&&开机时候提供的菜单的标签&&&&&&&&root&(hd0,0)&&第一个硬盘的第一个分区,即引导分区&&&&&&&&kernel&/vmlinuz-2.6.32-431.el6.i686&ro&&加载的内核&只读方式根的转换KEYTABLE=us&rd_NO_MD&crashkernel=auto&LANG=zh_CN.UTF-8&rd_NO_LVM&rd_NO_DM&rhgb&图形的方式引导&静默模式&initrd&/initramfs-2.6.32-431.el6.i686.img&初始化包含启动的镜像故障(一)MBR故障&[root@wang&~]#&dd&if=/dev/zero&of=/dev/sda&bs=446&count=1&模拟故障[root@wang&~]init&6&&重启无法启动需要插入安装光盘从光盘启动修复选择第3个&选择选择us选择no&不需要开启网络选择continueOkok选择shell&start&shell具体命令为chroot&&/mnt/sysimage/&切换到系统挂载的目录grub-install&/dev/sda&&&安装&&exit&&&退出&&exit&&&退出&&然后选择故障(二)&&grub.conf错误&模拟错误[root@wang&~]#&ll&/etc/grub.conf&&/boot/grub/grub.conf&-rw-------.&1&root&root&737&Jul&&9&02:41&/boot/grub/grub.conflrwxrwxrwx.&1&root&root&&22&Jul&&9&02:41&/etc/grub.conf&-&&../boot/grub/grub.conf2目录的文件对应于一个文件(一个是链接文件)[root@wang&~]#&mv&/boot/grub/grub.conf&&/tmp&移动到其他的目录,如同删除[root@wang&~]#&init&6&&重启出现这个说明第一阶段(mbr)完好,第二阶段出现问题先输入(&&&&按键有提示说明再输入&(,&&按键有提示说明分辨哪个分区可能是引导分区然后输入位置&在后面输入按键看是否能补齐能补齐说明前面选择的路径是对的然后再&(只读模式)(静默模式)&(指定根目录)Initrd&/ini按键补齐&&&(指定驱动位置)&&boot&试下能否启动可以进入系统。但是如果再重启的话还是出现上面的情况,这时需要重建菜单[root@wang&~]#&cd&/boot/grub/&&&[root@wang&grub]#&vim&grub.conf&&进入目录,编辑文件编辑为如此即可default=0timeout=5&&&&菜单超时时间splashimage=(hd0,0)/boot/grub/splash.xpm.gz&&&&背景界面&title&centos&&标题&root&(hd0,0)&&&根目录kernel&/vmlinuz-2.6.32-431.el6.i686&ro&quiet&rhgb&root=/dev/sda2&&内核文件位置initrd&/initramfs-2.6.32-431.el6.i686.img&&驱动文件位置然后重启就可以成功进入故障(三)grub目录丢失&&模拟目录丢失&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&[root@wang&~]#&cd&/boot/[root@wang&boot]#&mv&grub&/tmp&&将移动模拟丢失目录[root@wang&boot]#&init&6出现这样的情况,放上系统盘进入救援模式选择从光盘启动,可以调bios光盘为第一启动项,也可以开机按选择(部分机器可能没有)选择救援模式进入救援模式shell方式和上面一样!chroot&/mnt/sysimage&&切换到根目录grub-install&--root-directory=/&/dev/sda&&&安装相关的目录然后ls&&/boot&有了目录&grub目录下也有文件,但是少了个然后&exit重启选择第四项选择从本地硬盘启动进入然后和故障(二)的情况一样,解决方法一样&即使用livecd光盘修复&[root@wang&~]#&cd&/boot/[root@wang&boot]#&mv&grub&/tmp&&将移动模拟丢失目录[root@wang&boot]#&init&6使用启动&&可用启动,需要设置启动选择第二个进入选择命令行模式&&su&-&&&&获取&&fdisk&-l&&&查看所有硬盘信息,以确定分区的设备目录&Boot分区为&mkdir&&/mnt/bootmount&&/dev/sda1&&/mnt/boot&&ls-l&/mnt/boot&&&查看下挂载是否正确Root&分区为&&mkdir&/mnt/rootmount&/dev/sda2&&/mnt/root没有grub目录grub-install&--root-directory=/mnt&&/dev/sda&&安装针对盘ls查下,已经有目录了没有grub.conf需要自己手工编辑进入grub目录下编辑编辑为如此即可(同上)然后保存退出重启电脑即可故障(四)/etc/fstab&文件错误导致无法开机&&&vim&&/etc/fstab&编辑这个文件随便输入东西,模拟错误然后输入init&6&重启,系统无法启动,用光盘启动修复从本地硬盘启动时&按&按e&将删除,查看系统进程加载情况,以确定系统问题修改完成&按引导进入&发现问题/etc/fstab&错误用进入&第二个选项进入进入命令行方法同上&su&-&&&用管理员权限fdisk&-l&&&显示硬盘信息判断哪个是根分区mkdir&&/mnt/rootmount&&/dev/sda2&/mnt/root&&&挂载根分区编辑fstab&查看文件,错误内容删除保存即可重启成功进入系统故障(五)Root口令丢失&开机在秒内按任意键进入菜单按e选第2个再按在后面输入1&或者进入单用户模式回车,再按进行引导启动可以看出来进入了单用户模式可以使用passwd&root&&重新设置密码也可以使用&删除账号问题解决。本文出自 “” 博客,请务必保留此出处
了这篇文章
类别:┆阅读(0)┆评论(0)1。首先制作一张linux安装启动盘.2。用这张软盘启动机器后会出现boot:提示符这里输入linux&rescue&以进入救援模式;3。下面都是和你从安装linux的界面差不多,选择语言,,什么的,然后会出来一个选项要你选择是否进入救援模式,当然是确定咯;4。然后就会出现“#”的提示符;现在还无法看到boot目录5。接下来输入#&chroot&/mnt/sysimage&回车,就会看见提示符变成了sh#ls一下看看,boot目录出现了,嘿嘿;6。由于我的情况比较特殊,要多一些步骤,先要看一下分区的情况bk叫我输入sh#&fdisk&/dev/hda&随后会出来一个提示,要你输入一个字母,这里查看分区情况输入p即可,随后就看见所有的分区情况,记住了linux是在那个分区hdaX后输入q就退出了这个查看模式。7。接下来又看见了sh#这里就输入vi&/boot/grub/grub.conf来编辑grub.conf这个文件,我的是这样的(修改以后的)#&grub.conf&generated&by&anaconda##&Note&that&you&do&not&have&to&rerun&grub&after&making&***ges&to&this&file#&NOTICE:&You&do&not&have&a&/boot&partition.&This&means&that#&all&kernel&and&initrd&paths&are&relative&to&/,&eg.#&root&(hd0,5)#&kernel&/boot/vmlinuz-version&ro&root=/dev/hda6#&initrd&/boot/initrd-version.imgboot=/dev/hdadefault=1timeout=10splashimage=(hd0,5)/boot/grub/splash.xpm.gztitle&Linux&(2.4.20-8)root&(hd0,5)kernel&/boot/vmlinuz-2.4.20-8&ro&root=LABEL=/initrd&/boot/initrd-2.4.20-8.imgtitle&DOSrootnoverify&(hd0,0)chainloader&+1其中(hd0,0)对应/dev/hda1如果是/dev/hda3就应该是(hd0,2)&依此类推用vi编辑文件hjkl分别为上下左右,x删除光标所在的字符&r修改光标所在的字符,r后要接着就输入你要输入的字符,R是进入到改写状态,新输入的会覆盖原来的内容,直到ESC退出,如果不小心输入错了,或者删除太多的东西不好恢复,可输入:q!强行退出并且不保存文件,编辑完文件以后,输入:wq保存退出搞了半天才搞好,累得要死,哈哈(还好有篇文章介绍怎么用vi嘿嘿)8。这时候我输入了sh#&grub-install&--recheck&/dev/hda结果出现the&file&/boot/grub/stage1&not&read&correctly的提示输入sh#&cp&/usr/share/grub/i386-redhat/*&/boot/grub/&-f这个是把系统安装的备份启动文件copy过来随后输入sh#&which&grub&看grub命令在哪个目录有如下提示probing&devices&to&guess&BIOS&drives.&this&may&take&a&long&timeerror&opening&terminal:bterm输入sh#&env|grep&term&-i&查找环境变量term出现了term=bterm提示和terminfo=/etc/linux-terminfo提示这里打倒冷老板一下,他打击偶,hoho~~~再输入sh#&export&TERM=xterm&重新设置term变量下面输入sh#&grub出现了Probing&devices&to&guess&BIOS&drives.&This&may&take&a&long&time.的提示等一会就出现了grub&的提示符然后输入grub&&install&(hd0,5)/boot/grub/stage1&(hd0)空格(hd0,5)/boot/grub/stage2&p&(hd0,5)/boot/grub/grub.conf然后应该grub&出来就对了再接着输入grub&reboot&重新启动即可但是这里可能是因为我输错了那个很长的命令还有当时grub.conf文件里面的(hd0,8)没有改成(hda0,5)又回去重新编辑了grub.conf文件然后重新回到grub&再次输入那条长命令重新启动机器以后熟悉的grub引导画面又回来了
成功的男人白天贼JB忙,晚上JB贼忙;失败的男人白天没啥鸟事,晚上鸟没啥事。所以我要做成功的男人。
儲起先,&有事拿來試試.&
您需要登录后才可以发帖
其他登录方式:

我要回帖

更多关于 easybcd如何修复引导 的文章

 

随机推荐