`
494078416
  • 浏览: 82118 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

修复grub2

阅读更多

关于grub2
由于做windows把mbr覆盖了,所以在修复时学习一下grub2的知识

一、设备的命名
grub2同样是以fd表示软盘,hd表示硬盘(包含IDE和SCSI硬盘)。设备从0开始编号的,分区则是从1开始编号的,主分区是1-4,逻辑分区从5开始。

(fd0):表示整个软件盘
(hd0,1):表示biso中第一个硬盘的第一个分区。
(hd0,5)/boot/vmlinuz:表示bios中第一个硬盘的第一个逻辑分区的boot目录下的vmlinuz文件。

二、grub2的安装与启动

安装 ubuntu9.10时,grub默认安装在第一个硬盘(hdo)的mbr上,其实就是把引导文件 boot.img写入硬盘的mbr。当然也可以选择不写入mbr,而写入linux分区的引导扇区中。
启动时根据mbr所提供的信息找到启动分区,加载分区的grub核心文件core.img和配置文件grub.cfg,进入选择菜单。

启动出现菜单时,按e键进入编辑状态按c键进入命令行模式control+x以编辑的内容启动control+c进入命令状态按esc返回菜单项

按c键进入命令行模式后,可以按tab查看命令 ,根据需要进行加载或移除相应的模块。

实验(1)
第一个硬盘第一个分区上有windows xp系统,我们可以这样引导。
grub>set root=(hd0,1)
grub>chainloader  +1 
grub>boot

//我的第一个分区装的是msdos系统,测试成功。


ls命令:

ls                   //显示出磁盘设备
ls -l                //能显示出分区及文件类型,uuid等信息
ls /                 //列出当前设置的root分区下的文件
ls (hd0,1)/      //列出(hd0,1)分区下的文件

实验(2)
1、第一个分区是msdos系统,看看里面有什么文件
ls (hd0,1)/
显示出:io.sys  msdos.sys  command.com  bootlog.prv bootlog.txt
我们在用到磁盘里的某个文件或目录时,可以按tab键进行列出,和linux命令的tab相似

2、显示linux分区里的文件
我的linux分区是(hd0,3) //dev/sda3

ls (hd0,3)/    [按tab显示当前文件,他还有补全的功能]


引导linux
我们首先知道内核文件vmlinuz-xxxx... 和initrd.img-xxxx(boot loader初始化内存盘)在boot目录里,而我的linux系统在(hd0,3)分区中

#指定用于启动的分区
grub> set root=(hd0,3)
#指定内核文件,linux的意思是用linux取代grub中的kernel命令
grub> linux  /boot/vmlinuz-xxx-xxx root=/dev/sda3  [里面的文件名可以按tab查看]
#指定initrd文件
grub> initrd /boot/initrd.img-xxx-xxx [文件名可以按tab查看]
#引导
grub> boot

我试着把这两个文件复制到dos分区,也可以出现一个 linux界面,里面有也linux常用的目录结构(我对这东西不了解,就想像成一个最简单的linux吧)

常用的功能:

set:
设置变量
如:
 set default=0
set timeout=5
set root=(hd0,3)

等等

default :

默认引导的操作系统,0表示第一个,1表示第二个...

timeout:
定义在指定时间内没有按键盘上的某个键 ,自动引导default指定的操作系统

root:
指定用于启动的分区

insmod和rmmod:
加载和移除模块
如:
insmod   jpeg
insmod   png
insmod   ntfs
rmmod    png



drivemap
他是兼容grub的map,主要用于只能从第一硬盘(hd0)引导启动的系统,如win2000,xp,2003等 。如:要添加第二硬盘第一分区上的xp系统

menuentry "windows xp"{
set root=(hd1,1)
drivemap -s (hd0)  ${root}   
  //访问变量"${变量名}"
chainloader +1  //此处'+1'是指示GRUB读入分区的第一个扇区的引导记录。即调用另一个启动器,如:chainloader(hd0,1) +1
}



实验(3):修复grub :livecd

1、先把 /boot/grub/grub.cfg删除 sudo rm /boot/grub/grub.cfg
2、从dos启动计算机把mbr清空,fdisk/mbr,我用的是sfdisk也可以的
3、用livecd引导计算机
ctrl+alt+1  //进入到控制台
sudo -i //进入超级用户
fdisk -l  //查看分区情况
发现
/dev/sda3   305  2610  18522945  83 Linux
这个是我的硬盘linux所在的分区

挂载这个分区
mkdir /mnt/mylinux
mount /dev/sda3   /mnt/mylinux

安装grub
grub-install  --root-directory=/mnt/mylinux   /dev/sda
// /dev/sda指定要安装到哪个设备上
// --root-directory是挂载的原先系统的/


生成grub.cfg
我按教程做的,没有成功,我也不知道为什么。但我直接运行
update-grub 就自动建立菜单了,但默认的没有我的msdos分区的引导


menuentry "run msdos ..."{
set root=(hd0,1)
chainloader +1
}

把timeout设置>0这样就能看到启动菜单多一项了,选择进入成功。

分享到:
评论

相关推荐

    Ubuntu_10.04_LiveCD修复grub2双系统引导

    ### Ubuntu 10.04 LiveCD 修复 Grub2 双系统引导 #### 背景介绍 在双系统环境中(例如同时安装有 Windows 和 Linux 的计算机),Grub2 是一个常用的引导加载程序,它负责在启动时提供菜单让用户选择要启动的操作...

    grub2中文详解(grub2和grub对比介绍,详细)

    可使用救援盘或从另一系统修复GRUB2。 - **无法识别操作系统**:可能是因为GRUB2配置文件没有正确更新。检查`/etc/grub.d/`中的脚本或运行`grub2-mkconfig`。 - **启动菜单不显示**:可能是BIOS设置问题,需检查...

    Linux GRUB2主题

    4. **修复GRUB2**:如果GRUB2出现故障,可以使用系统恢复盘或者 Live USB 进行修复,如运行 `sudo grub-install /dev/sda`(请替换合适的硬盘设备名)。 总的来说,GRUB2主题让Linux用户有机会自定义系统的第一个...

    grub-2.02-beta2-for-windows.zip

    这个zip文件中包含的“grub-2.02~beta2-for-windows”可能是GRUB2的Windows安装程序或者工具集,用于在Windows下安装、更新或修复GRUB2配置。使用这样的工具,用户无需在Linux环境中进行操作,简化了对GRUB2的管理和...

    Grub2多重引导磁盘镜像

    3. **故障排除**: 若Grub2引导出错,可以通过修复Grub2的引导扇区、检查配置文件或恢复备份的配置来解决。 五、安全与注意事项 1. **备份重要数据**: 在对Grub2进行任何重大更改之前,务必备份重要数据,以防意外...

    grub2 for windows

    6. **修复GRUB2**:由于GRUB2是多系统引导的重要部分,有时可能会因系统更新或硬盘问题导致引导错误。这时,可以使用Windows的系统修复光盘或Linux Live USB来修复GRUB2,或者使用专用工具如Boot-Repair。 7. **...

    linux中修复GRUB

    #### 情况2:双系统环境下修复GRUB 在双系统环境中,尤其是与Windows共存的情况下,Windows的引导加载器可能会影响GRUB的正常工作。在这种情况下,可以考虑使用工具如`EasyBCD`或`Boot Repair`来帮助管理和修复多...

    Linux应用技巧:用GRUB4DOS修复GRUB

    GRUB2作为GRUB的升级版本,支持多系统引导,并能处理更多复杂的启动场景。然而,在某些情况下,GRUB可能会遇到问题导致无法正常引导系统,这时就需要使用到GRUB4DOS来修复GRUB。 GRUB4DOS是一款可以在MS-DOS环境下...

    Ubuntu重装启动失败进入修复grub rescue模式.docx

    Ubuntu重装启动失败进入修复grub rescue模式 本文将详细介绍Ubuntu重装启动失败进入修复grub rescue模式的解决方法。该方法适用于在Ubuntu重装过程中出现启动失败的问题,并且介绍了在grub rescue模式下如何修复...

    修复Ubuntu12.04 Grub 引导

    - 如果出现错误提示,尝试使用`update-grub2`命令代替。 ##### 步骤6: 重启并测试 - 最后,完成上述所有步骤后,安全地卸载所有挂载的分区,并重启计算机: ``` sudo umount /mnt sudo umount /mnt/boot reboot...

    GRUB2_中文指南

    - **修复GRUB2**:如果GRUB2损坏或丢失,可以通过救援模式或Live CD/USB来修复。通常涉及使用`grub-install`和`update-grub`命令恢复配置。 #### 结论 GRUB2作为现代计算机系统中关键的引导加载程序,不仅在技术上...

    Grub4Dos引导修复工具,一键修复,修复后就能正常启动硬盘

    2. **写入grldr.mbr到主引导记录**:grldr.mbr是一个特殊的GRUB版本,专门设计用于MBR。将它写入MBR使得Grub4Dos成为计算机启动时首先加载的程序。 3. **复制引导文件**:除了grldr.mbr,另一个关键文件grldr也需要...

    修复grub Xp+Win7

    【修复GRUB:XP+Win7的解决方案】 在多操作系统环境下,比如同时安装了Windows XP和Windows 7,GRUB(Grand Unified Bootloader)通常作为引导加载器来管理这两个操作系统的启动。然而,由于各种原因,如误操作、...

    如何修复GRUB错误

    FIX GURB ON LINUX,当GRUB出现问题时,操作系统LINUX或WIN一般无法启动。该文档描述了如何在LIVECD模式下修复GRUB

    重装xp后修复grub

    以下将详细解释如何在重装XP后修复GRUB。 首先,了解问题的原因:在安装XP过程中,传统的安装程序通常会覆盖MBR(主引导记录),这是硬盘上的第一个扇区,其中包含了启动信息。GRUB通常被安装在这里,一旦被替换,...

    grub 修复 双系统哦

    这些工具能自动检测并修复GRUB问题,包括恢复GRUB菜单、修复MBR、更新GRUB配置等。 ### 实例解析 根据给定的部分内容描述:“一位同学装有XP和Ubuntu的双系统,在更新Ubuntu后,发现GRUB出现问题,无法找到XP,...

    windows grub修复

    windows grub修复 Grub Rescue修复方法

    GRUB相关问题解决方法

    五、修复GRUB2的EFI问题 在UEFI模式下,GRUB2的问题可能与EFI系统分区(ESP)相关。 解决方法: 1. 确认ESP分区已挂载,并找到对应的系统盘,如`/dev/nvme0n1p1`。 2. 运行`sudo grub-install --boot-directory=/...

    双系统重装win7后修复grub引导

    双系统重装win7后修复grub引导 双系统重装win7后修复grub引导

    重装win7修复ubuntu引导包

    这时,我们需要手动修复GRUB2,或者创建一个新的引导加载器来恢复双系统的正常启动。 该压缩包文件提供了三个关键文件:g2ldr、BOOT.INI和g2ldr.mbr。这些文件是用于修复GRUB2或替代启动管理器的工具。 1. **g2ldr...

Global site tag (gtag.js) - Google Analytics