文档库 最新最全的文档下载
当前位置:文档库 › grub教程

grub教程

grub教程
grub教程

一. GRUB的技术特点:

1. 支持多可执行文件格式

GRUB支持各种a.out格式和ELF格式。

2. 支持不符合Multiboot标准的内核

GRUB能够直接支持多种并不符合Multiboot标准的自由操作系统内核(主要是FreeBSD,NetBSD,OpenBSD和linux)。也能通过chainload间接引导非开放的其他操作系统。

3. 支持操作系统模块装载。

4. 提供文本格式可手工修改的配置文件。

5. 菜单界面

6. 灵活的命令行界面

7. 多文件系统识别

能够透明地识别多种文件系统,现在能够识别的文件系统有BSD FFS,DOS FA T16,FA T32和Linux ext2fs.这个范围仍然在扩展。

8. 支持压缩文件的解压缩。

能够解压缩被gzip压缩的文件,并且这个识别和解压过程是自动的和对用户透明的,这个功能大大地减少了文件的大小,减少了load的时间,这个功能对于软盘上的系统尤其有用。

可能有些内核模块在装载时要求是压缩状态,这时解压此模块可能会画蛇添足,所以GRUB提供了另一不进行解压缩的模块装载命令。

9. 可以读取任何已安装的设备上的数据

支持读取软盘,硬盘上的数据,不依赖于根设备上任何的设置。

10. 和磁盘定位的表示方法无关。

11. 能够使用BIOS所检测到的所有RAM.

GRUB通常能够找到PC兼容机上的全部RAM,它采用一种先进的BIOS查询技术来找到所有的内存空间。

12. 支持硬盘的LBA模式

GRUB通过支持LBA模式,突破1024柱面的限制,能够访问8GB以外的全部硬盘空间。

13. 支持网络

虽然GRUB是一个基于磁盘的引导程序,但是它也支持网络功能,你可以通过TFTP 协议从网络上得到操作系统映象文件并引导。

GRUB的后继版本可能会包括一个内置的可编程语言来支持各种内核的引导参数,这还

只是一个操作系统引导器吗?;),并且计划加入对非PC体系结构的支持。

下载并安装GRUB

下载GRUB包

你可以到;得到GRUB,然后:

zcat grub-0.5.94.tar.gz | tar xvf -

会生成一个目录grub-0.5.94,再:

cd grub-0.5.94

./configure

make install

这样GRUB就安装好了,下面你需要在你的硬盘或者软盘引导区上安装GRUB引导代码。

制作GRUB引导软盘:

cd /boot/grub

dd if=stage1 of=/dev/fd0 bs=512 count=1

dd if=stage2 of=/dev/fd0 bs=512 seek=1

制作GRUB硬盘引导:

重启动用GRUB引导软盘引导,或者你不想重启动也可以执行/usr/sbin/grub。两种情况都会进入命令行界面。然后,我们首先要设置GRUB的“根设备”,也就是告诉GRUB安装所在的分区:

grub> root (hd0,0)

这里牵涉到GRUB的设备命名规则,将在下面介绍,此处(hd0,0)是指第一块硬盘的第一个分区。

如果你不能够确定安装GRUB所在的分区号的话,可以通过find指令查找:

grub> find /boot/grub/stage1

GRUB将会查找文件/boot/grub/stage1并显示包含这个文件的设备名,当然就是我们安装GRUB所在的分区。下面就可以写引导记录了:

grub> setup (hd0)

这条命令将会在第一块硬盘的MBR安装GRUB引导,如果你不想在MBR安装GRUB,而是希望将GRUB安装在分区的引导扇区的话,你可以用下面指令指定安装设备:grub> setup (hd0,0)

这将会在第一块硬盘的第一个分区的引导扇区安装GRUB。

OK,现在你就可以重新启动由GRUB引导你的系统。

设备命名规则

首先GRUB对设备的命名必须包含在小括号内,GRUB不区分IDE硬盘和SCSI 硬盘,统一使用hdx,其中x指定BIOS中硬盘的编号,从零开始计数,而且通常计算机内的IDE硬盘编号在SCSI硬盘前。GRUB用fdx指定软盘设备,x是软盘驱动器号。具体命名规则如下:

(fd0):第一软驱,GRUB还可以引导软盘上的操作系统

(hd0,1): 第一块硬盘的第二个分区。

(hd1,4): 第二块硬盘的第一个扩展分区,扩展的分区是从4开始编号的。

(hd0,2,a):专用于FreeBSD,FreeBSD有一个slice概念,把一个分区进一步分为几个slice,此处指明是第一块硬盘的第三个分区中的slice a。你也可以用(hd0,a),这样GRUB就会在第一块硬盘上找到第一个FreeBSD分区的slice a。

让我们再来看看GRUB对于磁盘文件的命名方法:

(hd0,1)/vmlinuz,很简单只要指定分区号和文件的绝对路径名就可以了。

引导多系统

现在来看看如何用GRUB引导我们的多操作系统,用GRUB引导后可以进入命令行模式或者菜单模式,你可以通过灵活的命令行模式选择引导各个分区的操作系统,指定引导参数。

GRUB支持三种引导方法,第一种是直接引导操作系统内核,第二种是通过chainload进行间接引导。

对于GRUB能够支持的LINUX,FreeBSD,OpenBSD,NetBSD,GUN Mach可以通过直接引导完成,不需要其他的引导扇区了,但是对于GRUB不直接支持的操作系统,需要用第二种方法chainload来完成。另外GRUB还支持网络引导,我们分别来看看这几种引导方法:

(a)直接引导:

通常步骤如下:

1.用root命令设置包含操作系统内核的根设备

2.用kernel命令装载内核映象文件,如果这个内核引导的时候有参数的话,可以直接将参数加在内核文件名的后面。

3.用module或modulenounzip装载内核模块。

4.boot开始引导。

(b)chainload引导:

1.首先设置GRUB的根设备,用:

grub> rootnoverify (hdx,y)

2.开始引导

grub> chainloader +1

此处'+1'是指示GRUB读入分区的第一个扇区的引导记录。

3.执行boot开始引导

以上是一般的chainloader方式,对于DOS和WINDOWS,可以简单地用两条指令进行引导:

chainloader (hdx,y)+1,然后boot,其中x,y用来指明所在分区号。

(c)从网络引导:

为了使GRUB能够支持从网络引导,你需要在编译时打开网络支持选项,关于这个你可以参考源文件目录里的`netboot/https://www.wendangku.net/doc/cb248593.html,boot为了从网络引导,你首先要在网络设置两个服务,首先是动态IP配置服务,可以是BOOTP,DHCP或RARP服务器,另一个是TFTP服务。

然后分别针对不同的服务器BOOTP,DHCP或RARP(三个选一个)运行bootp,dhcp,rarp。如果一切设置无误的话GRUB就会给出IP,IP netmask和TFTP服务器的IP和网关的IP地址。最后,从网上得到操作系统的映象文件,网络的设备名称是(nd).如下例:grub> bootp

Probing... [NE*000]

NE2000 base ...

Address: 192.168.110.23 Netmask: 255.255.255.0

Server: 192.168.110.14 Gateway: 192.168.110.1

grub> root (nd)

grub> kernel /tftproot/gnumach.gz root=sd0s1

grub> module /tftproot/serverboot.gz

grub> boot

实例

GNU/Hurd

--------

因为GNU/Hurd是符合Multiboot规范的操作系统,所以非常容易引导:

grub> root (hd0,2)

如果你不记得Hurd所在的分区号的话,可以用find /boot/gnumach查找。

grub> kernel /boot/gnumach root=hd0s1

grub> module /boot/serverboot

grub> boot

GNU/Linux

---------

grub> root (hd1,3)

grub> kernel /vmlinuz root=/dev/hda1

如果你需要指定内核启动参数的话,可以直接加到命令的最后面如:

grub> kernel /vmlinuz root=/dev/hda1 vga=ext

如果你使用initrd的话,在kernel命令之后执行:

grub> initrd /initrd

grub> boot

FreeBSD

-------

GRUB能够直接装载.ELF和a.out两种格式的内核,但是由于FreeBSD的内核引导接口有时有较大的变动,所以,对FreeBSD最安全的引导方法是引导/boot/loader grub> root (hd0,a)

grub> kernel /boot/loader

grub> boot

NetBSD,OpenBSD,NetBSD

-------------------------------------

这三种系统的引导指令序列一样,如下:

1. 'root'设置根设备.

2. `kernel'装载内核.

3. `boot'引导.

DOS/Windows

grub> rootnoverify (hd0,0)

grub> chainloader +1

grub> boot

SCO UnixWare

------------

grub> rootnoverify (hd1,0)

grub> chainloader --force +1

grub> makeactive //注意这条指令将设置UnixWare分区为活动分区,这样要求你的GRUB安装在MBR,否则下次启动时将直接进入UnixWare而不会进入GRUB grub> boot

当然,如果每次引导都需要敲入命令的话实在是太麻烦了,因此,类似于LILO,GRUB提供了一个菜单方式,你需要一个配置文件将这些命令放入配置文件中就可以实现菜单方式的多引导,当然在菜单方式下你可以切换到命令模式下。GRUB引导时查找/boot/grub/menu.lst,如果存在这个文件的话,就根据这个文件生成一个引导菜单,menu.lst 文件格式很简单。

菜单设置

# 等待用户选择菜单项的时间(以秒计),超时则引导默认的选项

timeout 30

# 默认选项,第一项

default 0

# 如果第一项出错,则启动下面的后备选项

fallback 1

# 引导GNU Hurd,其中title就是菜单中显示的提示字符串

title GNU/Hurd

root (hd0,0)

kernel /boot/gnumach.gz root=hd0s1

module /boot/serverboot.gz

# 引导Linux

title GNU/Linux

root (hd1,0)

kernel /vmlinuz root=/dev/hdb1

# 引导Mach (kernel映象文件放在软盘)

title Utah Mach4 multiboot

root (hd0,2)

pause Insert the diskette now!!

kernel (fd0)/boot/kernel root=hd0s3

module (fd0)/boot/bootstrap

# 引导FreeBSD

title FreeBSD 3.4

root (hd0,2,a)

kernel /boot/loader

# 引导OS/2

title OS/2

root (hd0,1)

makeactive

chainloader +1

# 引导Windows NT 或者Windows95,98

title Windows NT / Windows 95,98 boot menu

rootnoverify (hd0,0)

chainloader +1

# 安装GRUB 到硬盘MBR

title Install GRUB into the hard disk

root (hd0,0)

setup (hd0)

# 改变显示菜单的颜色

title Change the colors

color light-green/brown blink-red/blue

用户界面

GRUB的用户界面有三种:命令行模式,菜单模式和菜单编辑模式

(a)命令行模式:

进入命令行模式后GRUB会给出一个命令提示符`grub>`,此时就可以键入命令,按回车执行。此模式下可执行的命令是在menu.lst中可执行的命令的一个子集。此模式下允许类似于Bash shell的命令行编辑功能:

或<右箭头键> 光标右移一个字符

或<左箭头键> 光标左移一个字符

到这一行的开头

到行尾

删除光标处的字符

删除光标左边的字符

删除光标右边的所有字符(包括光标处的字符)

删除光标左边的所有字符(包括光标处的字符)

恢复上次删除的字符串到光标位置

或<向上键> 历史记录中的上一条命令

或<向下键> 历史记录中的下一条命令

在命令行模式下键有补全命令的功能,如果你敲入了命令的前一部分,键入系统将列出所有可能以你给出的字符串开头的命令。如果你给出了命令,在命令参数的位置按下键,系统将给出这条命令的可能的参数列表,具体的可用命令集将在后面给出。

(b)菜单模式

当存在文件/boot/grub/menu.lst文件时系统启动自动进入此模式。菜单模式下用户只需要用上下箭头来选择他所想启动的系统或者执行某个命令块,菜单的定义在menu.lst 文件中,你也可以从菜单模式按键进入命令行模式,并且可以按键从命令行模式返回菜单模式。菜单模式下按键将进入菜单编辑模式。

(c)菜单编辑模式

菜单编辑模式用来对菜单项进行编辑改变,其界面和菜单模式的界面十分类似,不同的是菜单中显示的是对应某个菜单项的命令列表。如果在编辑模式下按下,则取消所有当前对菜单的编辑并回到菜单模式下。在编辑模式下选中一个命令行,就可以对这条指令进行修改,修改完毕后按下,GRUB将提示你确认并完成修改。如果你想在当前命令列表中增加一条命令,按在当前命令的下面增加一条指令,按在当前命令前处增加一条指令。按删除一条指令。

命令列表

下面是GRUB的可用命令列表:

仅用于菜单的命令(不包括菜单项内部的启动命令)

修复更新grub2系统引导

修复更新grub2系统引导 一.修复 如果重装系统或者引导系统崩溃无法进入系统开机引导项从而无法进入以装系统,以Ubuntu Grub2引导为例,详细写一下如何修复之前的系统引导。 (以下说明均以Ubuntu系统为例,其他系统大同小异) 1.放入系统安装盘或这插入刻录好的系统安装U盘,进入系统安装选项,选择试用选项! 2.选择适用之后,进入Ubuntu图形界面,打开终端。 3.选择Ubuntu安装磁盘,如果不确定具体在哪个磁盘,可以用命令查看一下 [plain] sudo fdisk -l 4.挂载Ubuntu系统安装磁盘(我的是在第8磁盘,故为sda8) [plain] sudo mount /dev/sda8 /mnt 5.开始恢复grub2系统引导 [plain] sudo grub-install --root-directory=/mnt/dev/sda 6.执行命令之后,如果没有报错,则恢复成功,重启即可。 二.更新 恢复之后是之前的系统引导界面,如果新安装的系统没有在界面上显示,那么可以进入Ubuntu系统,进行grub2更新。

打开终端,输入 [plain] sudo update-grub2 成功的话,将会出现更新后找到的磁盘上所有系统引导的记录。(以我自己的为例) [plain] hugo@hugo-HP:~$ sudo update-grub2 [sudo] password for hugo: Generating grub.cfg ... Found linux image: /boot/vmlinuz-3.5.0-26-generic Found initrd image: /boot/initrd.img-3.5.0-26-generic Found linux image: /boot/vmlinuz-3.5.0-25-generic Found initrd image: /boot/initrd.img-3.5.0-25-generic Found linux image: /boot/vmlinuz-3.5.0-17-generic Found initrd image: /boot/initrd.img-3.5.0-17-generic Found memtest86+ image: /boot/memtest86+.bin Found Windows 8 (loader) on /dev/sda1 Found CentOS release 6.4 (Final) on /dev/sda3 Found Mac OS X on /dev/sda9 done 之后重启即可。 update-grub这个是Ubuntu专用的吧,其它发行版不一定有,通用的是:sudo grub-mkconfig -o /boot/grub/grub.cfg

grub2引导光盘镜像的制作

grub2引导光盘镜像的制作 这个东东很简单,但差不多还是花了一两天时间。关键是引导不起来,最后找出了原因,在制作ISO的时候出错了。制作前最好su得到管理员权限。 一般我们都是有win系统的,那么可以vmware虚拟机安装ubuntu,再用它制作即可,至于导出方法,自己百度 首先用ubuntu1404的版本为例,只是与ubuntu1204的目录有点区别ubuntu1404的grub2已经是2.02的版本的,ubuntu1204还是1.99 1,复制模块文件等 su 输入管理员密码 cp -a /usr/lib/grub/ ./ 制作文件夹到当前目录 mv grub grub2 改名为grub2 grub2/grub.cfg这个是配置文件,可以根据需要更改,最好是改一下

2,制作一个bootcfg的文件 可用vi bootcfg search -f -n --set=root /grub2/grub.cfg configfile /grub2/grub.cfg set color_normal=light-gray/black set pager=1 按ESC :wq 也可用gedit bootcfg,最后记得保存就行了 3,定制启动内核 grub-mkimage -d /usr/lib/grub/i386-pc/ -p /grub2/ -c bootcfg -o core.img -O i386-pc biosdisk iso9660 search configfile part_msdos fat ntfs ext2 -d 指定定制内核时的要用的目录 -p 指定在引导时要用到的目录,包含模块点 -c 指定一些简单配置的文件 -o 输出路径及文件名 -O 指定格式i386-pc biosdisk iso9660指光盘文件系统一定要 4,制作光盘引导文件

grub2基础教程-修订版

grub2基础教程-修订版 smallapple 目录 一、grub2新特性 二、grub2安装与启动 三、grub2配置文件详解 四、脚本修改 五、使用grub2常见错误及修复方法 一、grub2新特性 1、grub2和grub有很多不同的地方: a)图形接口 b)使用了模块机制,通过动态加载需要的模块来扩展功能 c)支持脚本语言,例如条件判断,循环、变量和函数 d)支持rescue模式,可用于系统无法引导的情况 e)国际化语言。包括支持非ASCII的字符集和类似gettext的消息分类,字体,图形控制台等等 f)有一个灵活的命令行接口。如果没有配置文件存在,GRUB会自动进入命令模式 g)针对文件系统、文件、设备、驱动、终端、命令、分区表、os loder的模块化、层次化、基于对象的框架 h)支持多种文件系统格式 i)可访问已经安装的设备上的数据 j)支持自动解压 2、设备的命名 grub2同样以fd表示软盘,hd表示硬盘(包含IDE和SCSI硬盘)。设备是从0开始编号,分区则是从1开始,主分区从1-4,逻辑分区从5开始,而grub分区编号是从0开始的。下面给出几个例子 : (fd0):表示整个软盘 (hd0,1):表示BIOS中的第一个硬盘的第1个分区 (hd0,5)/boot/vmlinuz:表示BIOS中的第一个硬盘的第一个逻辑分区下的boot目录下的vmlinuz文件 二、grub2安装与启动 1、安装ubuntu9.10时,grub默认安装在第一硬盘(hd0)的mbr,其实就是把引导文件boot.img写入硬盘的mbr,当然,用户也可以选择不写入硬盘mbr而是写入linux分区的引导扇区。启动时根据mbr所提供信息找到启动分区后,加载分区内的grub核心文件core.img和配置文件grub.cfg,进入选择菜单画面,在菜单画面,按上下箭号选择需要系统菜单项,按Enter进入选项。

grub2最新全面学习资料

Grub 2 使用简介 Grub 2 是新一代的Grub,它实现了一些Grub中所没有的功能: 1、模块化设计: 不同于Grub的单一内核结构,Grub 2 的功能分布在很多的小模块中,并且能在运行时动态装载和卸除 2、支持多体系结构 Grub 2可支持PC(i386), MAC(powerpc)等不同的体系机构,而且支持最新的EFI 架构 3、国际化的支持 Grub 2 可以支持非英语的语言 4、内存管理 Grub 2 有真正的内存管理系统。 5、脚本语言 Grub 2 可以支持脚本语言,例如条件,循环,变量,函数等。 当然,Grub 2正处在开发阶段,因此以上的某些功能可能现阶段还不是很完善。安装和使用 Grub 2的内核是符合multiboot标准的,因此可以在Grub中引导。 1、下载 https://www.wendangku.net/doc/cb248593.html,/grub2.zip 解压到某个FAT分区的根目录,会生成/boot/grub目录,Grub 2的文件便在该目录下。 2、修改 /boot/grub/grub.cfg 这是Grub 2的配置文件,它的格式不同于menu.lst,以下是一个例子: set timeout=20 set default=0 menuentry "Chainload First Part" { set root=(hd0,1) chainloader +1 } menuentry "Load Linux at Second Part" { set root=(hd0,2) linux /vmlinuz root=/dev/hda2 initrd /initrd } 如果你熟悉Grub,应该可以看明白里面的内容。要注意的是:

-Linux操作系统基础教学大纲

Linux操作系统基础 Foundation of Linux Operation System 适用范围:2013本科人才培养方案 课程编号: 学分:2 学时:32(其中:讲课学时:20 实验学时:12) 先修课程:计算机文化概论 适用专业:网络工程 建议教材:《Linux实用教程》陈博等人民邮电出版社2008年10月 开课单位:软件学院 一、课程的性质与任务 课程性质:本课程是网络工程专业网络安全与攻防方向的一门专业方向任选课,Linux及应用是计算机科学专业的一门专业课程。 课程任务:本课程的目的和任务是使学生全面地了解和掌握Linux系统的基本概念、原理及应用技术、以及适应社会对Linux操作与管理人员的需求。通过本门课程的学习,能够为以后从事软件编程、分布式处理及系统服务部署等不同应用领域的研究打下深厚的理论基础。 二、课程的基本内容及要求 (一)认识Linux系统 1. 课程教学内容: (1)Linux系统简介 (2)Linux系统的特点和组成 (3)Linux版本介绍 (4)Fedora Core系统概述 2. 课程重点、难点 重点:了解Linux操作系统的发展历程,改系统的特点和组成。 难点:Linux操作系统与Window操作系统的异同。 3. 课程教学要求: (1)了解计算机计算机操作系统的发展过程; (2)理解Linux操作系统与UNIX系统的区别,理解GUN计划的内容; (3)掌握Linux各个系统的版本及其优劣等。

(二)Fedora 系统的安装和删除 1. 课程教学内容: (1)准备安装Linux操作系统 (2)分区的概念和分区的类型。 (3)硬盘的类型。 (4)安装Linux的步骤及安装后的初始化工作。 (5)删除MBR中GRUB引导程序。 (6)删除Linux分区。 2. 课程重点、难点 重点:如何对硬盘分区,如何命名分区,分区的格式化等。 难点:如何理解分区的编号及文件系统的建立等。 3. 课程教学要求: (1)本章的学习目的是使学生能够自己安装一个操作系统,合理分区,并了解Linux下分区的概念。了解如何建立交换分区。 (2)理解分区文件的命名描述; (3)掌握安装Linux的步骤及安装后的初始化工作,掌握如何删除MBR中的GRUB分区程序。 (三)Linux图形化界面 1. 课程教学内容: (1)登录、注销和关闭系统 (2)GNOME基本使用 (3)系统设置 (4)Fedora系统的应用软件使用 2. 课程重点、难点: 重点:掌握如何正常登录、注销和关闭系统的几个命令。 难点:了解在如何在GNOME图形界面中如何复制、黏贴、删除文件等。 3. 课程教学要求: (1)了解GNOME的初步使用,系统的各种基本设置; (2)理解硬盘分析器、系统日志等内容。 (3)掌握在GNOME的操作使用。 (四)Linux字符界面操作 1. 课程教学内容:

关于Grub2启动菜单的注释问题(个人经验)

关于Grub2启动菜单的注释问题(个人经验) 特别说明:此文只是我个人经验,尚不知道是否会引起其他问题。故,你若要使用此文之做法,请务必慎重考虑。建议先在虚拟机测试。 用命令sudo gedit /boot/grub/grub.cfg即可打开grub.cfg文件,如下: 其中,#号表示注释该段。我这是在虚拟机下的ubuntu,grub.cfg文件跟你的可能不尽相同。 # # DO NOT EDIT THIS FILE # # It is automatically generated by /usr/sbin/grub-mkconfig using templates # from /etc/grub.d and settings from /etc/default/grub # ### BEGIN /etc/grub.d/00_header ### if [ -s $prefix/grubenv ]; then load_env fi set default="0" if [ ${prev_saved_entry} ]; then set saved_entry=${prev_saved_entry} save_env saved_entry set prev_saved_entry= save_env prev_saved_entry set boot_once=true

function savedefault { if [ -z ${boot_once} ]; then saved_entry=${chosen} save_env saved_entry fi } function recordfail { set recordfail=1 if [ -n ${have_grubenv} ]; then if [ -z ${boot_once} ]; then save_env recordfail; fi; fi } insmod ext2 set root='(hd1,2)' search --no-floppy --fs-uuid --set 44765bf4-8d6f-4d5a-8341-0d6d2f14e241 if loadfont /usr/share/grub/unicode.pf2 ; then set gfxmode=640x400 insmod gfxterm insmod vbe if terminal_output gfxterm ; then true ; else # For backward compatibility with versions of terminal.mod that don't

云主机添加Grub2引导WinPE ISO(Windows系统)-V1

云主机添加Grub2引导WinPE ISO (Windows系统) 导读 云主机安装的系统是Windows 2008 R2,BIOS+MBR,想利用Grub2引导发位于磁盘上Windows PE ISO 或其他系统,可以采用在Windows 系统中安装grub2实现。 安装配置步骤 第一步、Grub2下载,文件准备 到Grub2官网ftp://https://www.wendangku.net/doc/cb248593.html,/gnu/grub/ 下载文件 grub-2.02-for-windows.zip,将其解压至任意路径下,比如D:\。这样Grub2的主程序目录将位于D:\grub-2.02-for-windows 第二步,Grub2安装 以管理员身份运行CMD,输入命令wmic diskdrive list brief,记录下安装目标磁盘DeviceID,本教程将安装至\\.\PHYSICALDRIVE0 ============================================== ==================================== Microsoft Windows [Version 10.0.10586]

(c) 2015 Microsoft Corporation. All rights reserved. C:\Windows\system32>wmic diskdrive list brief Caption DeviceID Model Partitions Size WDC WD5000AAKX-001CA0 \\.\PHYSICALDRIVE0 WDC WD5000AAKX-001CA0 3 500105249280 C:\Windows\system32> ===================================================== ============================= 将当前路径切换至Grub2主程序所在路径,输入cd /d d:\grub-2.02-for-windows ===================================================== ============================= C:\Windows\system32>cd /d d:\grub-2.02-for-windows d:\grub-2.02-for-windows> ===================================================== ============================= 查看grub-install.exe的帮助文件,可以输入grub-install.exe --help或grub-install.exe -?,显示如下内容: ===================================================== ============================= Usage: grub-install [OPTION...] [OPTION] [INSTALL_DEVICE] Install GRUB on your drive.

grub2修订文档

grub2基础教程-修订版 smallapple 目录 一、grub2新特性 二、grub2安装与启动 三、grub2配置文件详解 四、脚本修改 五、使用grub2常见错误及修复方法 一、grub2新特性 1、grub2和grub有很多不同的地方: a)图形接口 b)使用了模块机制,通过动态加载需要的模块来扩展功能 c)支持脚本语言,例如条件判断,循环、变量和函数 d)支持rescue模式,可用于系统无法引导的情况 e)国际化语言。包括支持非ASCII的字符集和类似gettext的消息分类,字体,图形控制台等等 f)有一个灵活的命令行接口。如果没有配置文件存在,GRUB会自动进入命令模式 g)针对文件系统、文件、设备、驱动、终端、命令、分区表、os loder的模块化、层次化、基于对象的框架 h)支持多种文件系统格式 i)可访问已经安装的设备上的数据 j)支持自动解压 2、设备的命名 grub2同样以fd表示软盘,hd表示硬盘(包含IDE和SCSI硬盘)。设备是从0开始编号,分区则是从1开始,主分区从1-4,逻辑分区从5开始,而grub分区编号是从0开始的。下面给出几个例子: (fd0):表示整个软盘 (hd0,1):表示BIOS中的第一个硬盘的第1个分区 (hd0,5)/boot/vmlinuz:表示BIOS中的第一个硬盘的第一个逻辑分区下的boot 目录下的vmlinuz文件 二、grub2安装与启动 1、安装ubuntu9.10时,grub默认安装在第一硬盘(hd0)的mbr,其实就是把引导文件boot.img写入硬盘的mbr,当然,用户也可以选择不写入硬盘mbr而

GRUB2启动引导器完全教程

GRUB2 启动引导器–完全教程 本教程仅讨论GRUB版本2,流行的启动引导器的下一代。如果您在寻找常规GRUB的教程,请查看这篇文章。 欢迎来到GRUB2启动引导器教程!你肯定已经读过我的关于GRUB legacy版本的指南。在过去的两年半里面,它独自积累了五十万次阅读,在全世界的计算机使用者中相当流行和实用。 我希望利用我的GRUB2重新创造同样的成功。目标为用户使用GRUB作为他们的启动引导器实现启动任何其钟情的类UNIX操作系统或者多重启动他们的计算机提供一个简单、实际、循序渐进、行之有效的教程,从而允许他们快速、简单、毫不不费力的控制他们的系统启动流程。 在这个教程里,您将学到如何使用GRUB2,添加和删除菜单,定制标题和启动选项,双重启动和三重启动操作系统,结合GRUB和GRUB2,我们甚至看一下Windows如何加入这个模式。之后,我们将学习如何从错误中恢复。 目录 1.目录 2.警告 3.GRUB2路标 4.GRUB2 介绍 ?新布局 ?Grub.cfg文件实例 ?/etc/grub.d/ 目录示例 ?/etc/default/grub示例 5.基本用法 ?GRUB2如何工作? ?添加新的GRUB脚本 ?更新GRUB ?通过改变脚本名称中的数字改变脚本启动顺序 ?替换默认条目 ?操作系统探测器 ?重装GRUB ?简短的总结 6.现实多重启动情况 ?双重启动:使用GRUB2启动两个操作系统 ?双重启动:两个操作系统使用GRUB legacy和GRUB2的结合。 ?双启动Windows 7 和Ubuntu ?把GRUB legacy升级到GRUB2 7.附加的测试用例

基于Grub 2.00的x86内核引导流程

基于Grub 2.00的x86内核引导流程--源代码情景分析目前Linux中使用最广泛的的bootloader是Grub(GRand Unified Bootloader)。如今Grub 2已经替换了早期的0.9x系列版本的Grub Legacy,而且Grub Legacy已经不再开发维护。虽然Grub 2从名字上看像是Grub的升级版,但其源代码实际被完全重构了。现从源代码角度分析基于Grub 2.00的x86内核引导流程。 1. 磁盘简介 由于在Grub进行内核引导的过程中涉及到磁盘操作,先简介一下磁盘为后续引导流程分析作铺垫。磁盘三要素:由所有盘面上相同半径的同心圆形磁道(Track)组成的柱面(Cylinder), 磁头(Head), 扇区(Sector)之间的关系如下图所示: 对于磁盘,其最小存储单位为扇区(Sector),在相当长的一段时间里,扇区的大小固定在512 bytes[1]. 但是从2009年开始出现扇区大小为4096

bytes的磁盘,即Advanced Format disks。 对于扇区的编址,早期的方案是CHS编址(Cylinder-Head-Sector),即用数据元组CHS tuples (c,h,s)的形式表示一个扇区的位置,但是在CHS编址时,扇区号是从1开始的,没有扇区0,但磁头和柱面编号都是从0开始的,即CHS编址起始于地址(0,0,1)。另外一种编址方案是LBA编址(Logical Block Addressing),把整个磁盘的所有扇区资源统一分配序号。在2003年发布的ATA-6标准中,LBA采用48-bit地址。 CHS数据元组(c, h, s)根据如下公式转换成相应的LBA逻辑地址: LBA= (c×Nheads + h)×Nsectors + (s ? 1) 其中:Nheads是硬盘中的磁头数目,Nsectors是每条磁道上可以划分的最大的扇区数目。上面的公式意味着LBA对扇区的编址是从0开始的,所以在Grub 的boot.S源代码中,当磁盘不支持LBA模式,代码执行流回退至CHS模式继续进行处理时,会将编址的起始地址调整成从1开始。 [1]Floppydisks and controllers use physical sector sizes of 128, 256, 512 and 1024 bytes(e.g., PC/AX), whereby formats with 512 bytes per physical sector becamedominant in the 1980s. 磁盘在使用过程中总是会涉及到分区方案,其中一个典型的四分区MBR磁盘结构如下所示:

GRUB2的window版安装方法

GRUB2的window版安装方法 本帖最后由420841698 于2014-9-25 11:35 编辑 楼主是GRUB2的菜鸟,但是很喜欢计算机因此所以才有这个贴: 进入主题:GRUB2的window版安装方法,以及grub2.rar的下载地址链接: https://www.wendangku.net/doc/cb248593.html,/s/1ntn132x 密码: wlcr 这是grub2的windows版,所以应该可在所有的win平台上安装:网上很少grub2的windows版的安装教程资料都是些别人做好的工具,想必大家都不是很喜欢。 对此楼主这个菜鸟在分享所得:下载grub2.rar解压带c盘 第一种GURB2以mbr方式安装在硬盘上 首先进入cmd命令窗口获取物理磁盘标识:输出wmic diskdrive list brief 回车 查看硬盘标识//./physicaldrive0 输入grub-install.exe --target=i386-pc //./physicaldrive0 即可安装,这里如果要安装在哪个个区就必须将grub2.rar解压到哪个分区 第二种GURB2在win8下的以uefi安装方法,这里需要挂载esp分区,本人对挂载完全是小白这里大家去想了 参数--target=x86_64-efi或i386-efi 指定是X64或ia32版的efi 参数--modules="part_gpt fat normal" 指定安装模式 参数--efi-directory=$esp 指定挂载的esp分区,也可以指定安装到U盘比如:--efi-directory=e:(U盘) 参数--boot-directory=$esp/efi 将所有的GRUB2模组文件安装到esp/efi下,这里是指生成的grubia32.efi或者grub.efi,grubx64.efi,引导grub文件夹的路径, 如 --boot-directory=e:,然后就在e盘下生成grub文件夹和grubia32.efi或者grub.efi,grubx64.efi,引导的文件,这里注意当使用--boot- directory=$esp/efi时grub.cfg必须要和grubia32.efi或者grub.efi,grubx64.efi同一个文件夹下 参数--bootloader-id=boot 指定grubx64.efi寸放在efi下的boot文件夹名如:--bootloader-id=grub ,就会生成efi/grub/grubia32.efi 安装完后没grub.cfg配置文件需要自己手动配置,据说用grub-mkconfig -o /boot/grub/grub.cfg可生成,但是windows版没有 详细可以查看https://https://www.wendangku.net/doc/cb248593.html,/index.php/GRUB_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87 )#.E4.BD.BF.E7.94.A8GRUB_Legacy.E7.9A.84.E7.94.A8.E6.88.B7.E8.AF.B7.E6.B3.A8.E6.84.8F 执行步骤安装安装在EFI分区: 先挂载esp分区,将GURB2解压后cmd命令窗口执行 grub-install --target=x86_64-efi --modules="part_gpt fat normal"

Grub2引导UEFI的Win10VHD和PE

Grub2引导Win10差分VHD/PE快速指南(UEFI模式)修订版 *本文需要有一定装机实践基础* 1.进入PE,将磁盘分区模式改为GPT/GUID。 2.创建一个250-300M的ESP分区,格式化为fat32。 3.创建一个25G的Win10_Base.VHD,然后将Win10的安装盘imagex过去,或者更简单的, 把ghost的win10镜像做过去。 4.给ESP分区指派盘符之后Bootbcd x:\windows /s e: /f UEFI,其中x是挂载的vhd盘e是 挂载的ESP分区。 5.复制grub2到ESP分区 6.删除\boot中grub文件夹之外的一切 7.grub2的64位efi文件改名位bootx64.efi,放入\boot 8.Bootice添加一个uefi项,指向上述的bootx64.efi,名字随便取,就叫grub2 9.\wepe\b64,改名回bcd,高级模式wim选项中添加graphisicforcehighres 10.复制\efi\microsoft\boot\bootx64.efi到\wepe 11.编辑grub.cfg,添加一个指向\wepe\bootmgfw.efi这个对应的是PE,加密码 12.添加一个指向\efi\microsoft\boot\bootmgfw.efi,这个是win10。 13.重启电脑,顺便进入bios,将硬盘模式改为ahci/sata,启动模式改为UEFI,UEFI第一启 动项从windows boot manager改为grub2,secure boot关掉,保存退出。 14.Grub菜单中选择win10,完成安装,进入win10进行各种常规软件的安装和设置。 15.进入pe,用bootice对win10_base.vhd制作1-2个分差vhd。 16.挂载esp分区,复制\efi\microsoft\boot\中的bcd,bootx64.efi,bootmgfw.efi到\boot1, 编辑\boot1\bcd,去掉win10_base.vhd防止误操作,添加子vhd1。 17.复制boot1到boot2,指向vhd2,类推 18.删掉\efi文件夹(减少容量,这一步可以不做) 19.大功告成,以后如果出问题了,直接进入pe,做一个分差vhd就好了。 补充关于grub2菜单的密码 Set superusers=”aaa” Password aaabbb 不需要密码的menuentry加上–unrestricted

GRUB学习笔记

GRUB学习笔记

目录DIY就要Linux 一、GRUB 基础 1.2 GRUB 的现状 1.3 GRUB Legacy 和GRUB 2 1.4 Multiboot 规范 1.5 可用资源 1.6 旧版 GRUB(GRUB Legacy)的功能特色 二、命名习惯 三、安装 GRUB 3.2 安装需求 3.3 参数介绍 3.4 安装之后的操作 四、GRUB 接口 五、GRUB 常用命令 5.2 只能用于命令模式或者grub shell的命令 六、保护GRUB设置 七、GRUB和stage文件 八、GRUB 常见错误信息 8.2 Stage 1.5/2 阶段可能出现的错误1 8.2 Stage 1.5/2 阶段可能出现的错误2 8.2 Stage 1.5/2 阶段可能出现的错误3 8.2 Stage 1.5/2 阶段可能出现的错误4 九、制作 GRUB 引导软盘 十、使用 GRUB 通过网络引导操作系统 十、续 十一、把配置文件嵌入到GRUB中 十一、续 十二、总结 十三、个人建议 Linux海量教程

DIY就要Linux 发布时间:2007-04-21 11:05:00 GRUB学习笔记   关于 GRUB 的贴子不少,但很多都是讲怎么安装而已。这篇文章是我通过翻译 info grub。并动手做实验总结出来的,增加了一些平常不太常见的内容。如有错误,敬请指正。同时由于 info grub 的内容太多,对部分内容没有进行翻译。 普及Linux电子书籍。作者:ailms 目录:1、GRUB 基础;2、命名习惯;3、安装 GRUB;4、GRUB 接口;5、GRUB 常用命令;6、保护 GRUB 设置;7、GRUB 和 stage 文件;8、GRUB 常见错误信息;9、制作 GRUB 引导软盘;10、使用 GRUB 通过网络引导操作系统;11、把配置文件嵌入到 GRUB 中;12、总结;13、个人建议。 不再沉默,让我们一起学习Linux。 红联Linux论坛致力于Linux技术讨论的站点。 红联Linux门户:https://www.wendangku.net/doc/cb248593.html, 红联Linux论坛:https://www.wendangku.net/doc/cb248593.html,/bbs Linux电子书籍推荐下载:https://www.wendangku.net/doc/cb248593.html,/linux/linuxdzsj.htm

grub4dos初级教程 (免费版)

目录 1 grub4dos初级教程-入门篇 1.1 grub简介 1.2 如何获得grub4dos最新版 1.3 如何安装grub4dos 1.3.1 通过Windows NT的启动菜单进入grub4dos 1.3.2 通过DOS启动grub 1.3.3 通过mbr启动grub 1.3.4 通过Windows VISTA/Window 7的启动菜单进入grub4dos 1.4 如何使用grub4dos 1.5 结言 2 grub4dos初级教程-应用篇 2.1 硬盘上的应用 2.1.1 加载软盘镜像 2.1.2 启动WinPE 2.1.3 启动系统 2.1.4 引导光盘镜像(ISO仿真) 2.2 光盘上的应用 2.2.1 grub引导的可启动光盘 2.2.2 BCDW引导GRUB的可启动光盘 2.3 软盘上的应用

2.3.1 通过DOS启动grub的软盘应用 2.3.2 引导扇区安装了GRLDR引导记录的软盘应用 2.4 优盘上的应用 2.5 结言 3 grub4dos初级教程-进阶篇 3.1 设置密码 3.2 菜单内置 3.3a 使用个性化grub4dos文件名(grubinst) 3.3b 用批处理自动给grldr改名(适用于最新版grldr)NEW! 3.4 安装Windows XPE到逻辑分区 3.5 利用savedefault命令传递参数的方法与应用 3.6 利用dd命令传递参数的方法与应用NEW! 4 附录 Grub legacy 4.01 Grub 命令索引 4.02 Grub 简体中文化版使用方法 4.03 GRUB安装配置使用汇总 4.04 Grub命令使用详解 4.05 GRUB三步通 4.06 Grub相关安装配置及使用实例汇总讲析 Grub2资料 4.07 GRUB2使用简介by bean NEW! 4.08 GRUB2高级教程by bean NEW!

Grub2的密码设置

/2012/08/04 Edited by: xuzhezhao L ast Edited: /2012/08/04 ?GRUB2可以提供多种密码保护模式: 1.加密所有的启动项。 2.加密指定的启动项。 3.对指定的用户加密启动项。 ?设置密码保护的步骤: 1.指定用户和密码 首先必须要为grub设置一个superuser(不一定是root) set superusers="user1" Example: set supersusers="John" 设置指定用户的密码(包括superuser) password Example: password John foo 注意:可以用grup-mkpasswd-pbkdf2命令加密明文密码。 配置方法: ?加密全部的启动项 在/etc/grub.d/00_header最后面加上如下内容,也可以加在用户自定义文件 /etc/grub.d/40_custom中,不过加在后者中的话则不要加“cat<

1./etc/grub.d/10_linux:与linux有关的启动项 在该文件中找到下面这行 printf "menuentry '${title}' ${CLASS} {\n" "${os}" "${version}" 将其改为 printf "menuentry '${title}' ${CLASS} --users "" {\n" "${os}" "${version}" 这一句将会加密在10_linux中指定的启动项(The --users "" tag will be added to every menuentry located in the "10_linux" section of grub.cfg)。 2./etc/30_os-prober:其他系统启动项 用下面的命令直接将这里面的启动项全部加密: sudo sed 's/--class os /--class os --users /' -i /etc/grub.d/30_os-prober 指定系统启动项就要一个一个找了: OSX: menuentry "${LONGNAME} (${2}-bit) (on ${DEVICE})" --class osx --class darwin --class os { Windows: menuentry "${LONGNAME} (on ${DEVICE})" --class windows --class os { Linux/Ubuntu: menuentry "${LLABEL} (on ${DEVICE})" --class gnu-linux --class gnu --class os { Hurd: menuentry "${LONGNAME} (on ${DEVICE})" --class hurd --class gnu --class os { 3.但上面的方法会将所有该种系统全部加密,若只想加密单个的启动项,典型的例子就是加 密windows的恢复还原分区,则可以进行如下操作: 先找到恢复还原分区所在的设备名称,如sdaX. In the /etc/grub.d/30_os-prober file: Change: To:

2.6 Linux基础教程,习题

1.填空题 (1)操作系统为用户提供了两种接口,分别是_________和 _________。 (2)命令接口演化为两种主要形式,分别是_________和 _________。 (3)Linux中的两个主要的桌面环境是______和______。 (4)输入重定向符是______。 (5)输出重定向符是______和______。 (6)错误输出重定向符是______和______。 (7)管道符是______。 (8)Vim拥有3种编辑模式:__________、__________和 __________。 (9)在Vim的输入模式下按_____键会回到命令模式。 (10)在Vim的命令模式中,要进入输入模式,可以按_____键、_____键或_____键。 2.选择题 (1)在bash中超级用户的提示符是__________。 A:# B:$ C:grub> D:C:\> (2)命令行的自动补齐功能要用到__________。 A:【tab】 B:【Del】 C:【Alt】 D:【Shift】(3)下面的_________不是通配符。 A:* B:! C:? D:[] (4)在Vim的命令模式中,输入_______不能进入末行模式。 A:: B:/ C:i D:? 3.思考题 (1)什么是Shell?它的功能是什么? (2)Linux 中命令行的自动补齐功能? (3)管道的作用是什么? (4)Vim中替换命令的格式是什么?各部分的含义是什么? 4.上机题 (1)练习使用历史命令和命令别名。 (2)分别使用3种通配符进行文件的操作。 (3)使用输出重定向功能创建一个文件或向一个文件追加内容。 (4)使用管道显示某一进程的运行情况。 (5)熟悉KDE和GNOME桌面环境。 (6)使用Vim编辑一个文件。

grub2修改启动菜单原理

windows linux 双系统grub2默认启动项的更改 和早期grub的启动菜单不一样,以前只要修改/boot/grub/menu.lst就行了。linux7中已经没有menu.lst文件了。 +++++++++++++++++++以下是重点理论知识++++++++++++++++++++++ grub2由三个部分组成:/etc/default/grub文件、/etc/grub.d目录、 /boot/grub/grub.cfg文件。在开机启动时,linux系统是调用/boot/grub/grub.cfg 文件执行的。但这个文件即使手动编辑后也是会被还原的,为什么呢? 当我们或linux系统更新后,会自动执行update-grub更新启动菜单命令。该命令会根据/etc/default/grub文件和/etc/grub.d/的所有配置文件重新生成 /boot/grub/grub.cfg文件;也就是说update-grub命令执行后, /boot/grub/grub.cfg文件就被更新了。。。。。 +++++++++++++++++++++以上是理论知识+++++++++++++++++++++++++++++ 配置文件: /etc/default/grub文件//保存开机默认启动项、倒计时内容; GRUB_TIMEOUT=5 //超时时间 GRUB_DEFAULT=saved //开机菜单默认项,可以使用0-n GRUB_DISABLE_SUBMENU=true GRUB_TERMINAL_OUTPUT="console" /启用 console GRUB_CMDLINE_LINUX="rd.lvm.lv=rhel/swap crashkernel=auto rd.lvm.lv=rhel/root rhgb quiet" //追加内核安全性; GRUB_DISABLE_RECOVERY="true" //禁止显示救援模式; /etc/grub.d/* //保存各个启动项; [root@tang ~]# ls /etc/grub.d/ 00_header 10_linux 30_os-prober README 00_tuned 20_linux_xen 40_custom 01_users 20_ppc_terminfo 41_custom 其中,30_os-prober 是windows系统的启动项; 其中,10_linux 是linux 系统的启动项; 其中,/etc/grub.d/00_header //初始化默认选项,超时时间 其中,/etc/grub.d/05_debian_theme //配置引导画面,主题颜色; 其中,04_custom //自定义菜单; **注意**,这里的每个文件前面都有数字组成;数字越小启动顺序就越靠前。/boot/grub/grub.cfg //update-grub命令后最终生存的文件启动文件; 如果电脑是efi主板启动grub.cfg配置文件的位置为/boot/efi/EFI/centos/grub.cfg

修复grub2双系统引导及顺序

转:Ubuntu 10.04 LiveCD修复grub2双系统引导 2010-05-29 —星宇浪客 (阅读: 3473) 今天就用Ubuntu 10.04的LiveCD的来修复grub2的引导。启动Ubuntu 10.04光盘,选择LiveCD模式,进入之后选择进入终端,先在终端输入如下命令: sudo fdisk -l (注意是小写的L,不是数字的1,此步用于确定电脑中安装 Ubuntu10.04 的所在分区的位置,输入以后会输出类似如下信息,找到ID为83的那行,记住/dev/sdaX的情况,比如本人的电脑是/dev /sda7,以下就以此为例,你自己的请加以更改) Disk /dev/sda: 80.0 GB, 80026361856 bytes 255 heads, 63 sectors/track, 9729 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk identifier: 0x624aa2e0 Device Boot Start End Blocks Id System /dev/sda1 * 1 1388 11149078+ 7 HPFS/NTFS /dev/sda2 1389 3825 19575202+ 7 HPFS/NTFS /dev/sda3 3826 9729 47423880 f W95 Ext'd (LBA) /dev/sda5 3826 5851 16273813+ b W95 FAT32 /dev/sda6 5852 8323 19856308+ b W95 FAT32 /dev/sda7 8324 9598 10241406 83 Linux /dev/sda8 9599 9729 1052226 82 Linux swap / Solaris 然后再输入 sudo -i (此步用于得到root权限,无需输入密码,方便以下操作) 接着输入 mkdir /media/tempdir (这里用于创建一个文件夹tempdir,用于挂载刚才的sda7,此文件夹名称你可以依个人爱好而定,没有太多要求) 再输入

相关文档