随心所欲使用
Grub
用图直观说明
1、 启动管理器
启动管理器是存储在磁盘开始扇区中的一段程序,例如,硬盘的MBR(Master Boot Record),在系统完成启动测试后,如果系统是从MBR启动,则BIOS(Basic Input/Output System)将控制传送给MBR。然后存储在MBR中的这段程序将运行。这段程序被称为启动管理器。它的任务就是将控制传送给操作系统,完成启动过程》有许多可用的启动管理器,包括GNU GRUB (Grand Unified Boot Loader),Bootmanager, LILO (LInux LOader), NTLDR (boot loader for Windows NT systems),等等等.
那么什么是GRUB?
grub 是一个多重启动管理器。grub是GRand Unified Bootloader的缩写,它可以在多个操作系统共存时选择引导哪个系统。它可以引导的操作系统包括:Linux,FreeBSD,Solaris,。它可以载入操作系统的内核和初始化操作系统(如Linux,FreeBSD)
3、 GRUB的特点
1)特别适用于linux与其它操作系统共存情况。
支持大硬盘现在大多数Linux发行版本的lilo都有同样的一个问题:根分区(/boot分区)不能分在超过1024柱面的地方,一般是在8.4G左右的地方,否则lilo不能安装,或者安装后不能正确引导系统。而grub就不会出现这种情况,只要安装时你的大硬盘是在LBA模式下,grub就可以引导根分区在 8G以外的操作系统。
2)支持开机画面
grub支持在引导开机的同时显示一个开机画面。对于玩家来说,这样可以制作自己的个性化开机画面;对于PC厂商,这样可以在开机时显示电脑的一些信息和厂商的标志等。grub支持640x480,800x600,1024x768各种模式的开机画面,而且可以自动侦测选择最佳模式,可以使用linux自带的很好用的图片编辑器GIMP制作一张属于自己的开机grub显示图片不过像素最好为640X480 14位色。
3)两种执行模式
grub不但可以通过配置文件进行例行的引导,还可以在选择引导前动态改变引导时的参数,还可以动态加载各种设备。例如你在Linux下编译了一个新的核心,但不能确定它能不能工作,你就可以在引导时动态改变grub的参数,尝试装载这个新的核心进行使用。Grub的命令行有非常强大的功能,而且支持如 bash或doskey一样的历史功能,你可以用上下键来寻找以前的命令。
4)菜单式选择
grub使用一个菜单来选择不同的系统进行引导。你还可以自己配置各种参数,如延迟时间,默认操作系统等。
5)分区大小改变后不必重新配置
grub是通过文件系统直接把核心读取到内存,因此只要操作系统核心的路径没有改变,grub就可以引导系统。
除此之外,Grub还有许多非常强大的功能。例如支持多种外部设备,动态装载操作系统内核,甚至可以通过网络装载操作系统核心。Grub支持多种文件系统,支持多种可执行文件格式,支持自动解压,可以引导不支持多重引导的操作系统,支持网络启动等。
除此之外,Grub还有许多非常强大的功能。例如支持多种外部设备,动态装载操作系统内核,甚至可以通过网络装载操作系统核心。Grub支持多种文件系统,支持多种可执行文件格式,支持自动解压,可以引导不支持多重引导的操作系统,支持网络启动等。
6) MBR和第一扇区
你可以简单的理解为MBR是整个硬盘的物理第一位置,而第一扇区是硬盘的物理第二位置.
7) 一个GRUB配置文件
基于本例的分区如下:
#fdisk -l
Disk /dev/hda: 255 heads, 63 sectors, 1867 cylinders
Units = cylinders of 16065 * 512 bytes
Device Boot Start End Blocks Id System
/dev/hda1 * 1 1020 8193118+ 83 Linux
/dev/hda2 1021 1802 6281415 83 Linux
/dev/hda3 1803 1867 522112+ 82 Linux swap
Disk /dev/hda: 255 heads, 63 sectors, 1867 cylinders
Units = cylinders of 16065 * 512 bytes
Device Boot Start End Blocks Id System
/dev/hda1 * 1 1020 8193118+ 83 Linux
/dev/hda2 1021 1802 6281415 83 Linux
/dev/hda3 1803 1867 522112+ 82 Linux swap
grub.conf,这个文件位于;/boot/grub/grub.conf
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes 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,0)
# kernel /boot/vmlinuz-version ro root=/dev/hda1
# initrd /boot/initrd-version.img
#boot=/dev/hda
default=0
timeout=5
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
title Red Hat Linux (2.6.18-el5)
root (hd0,0)
kernel /boot/vmlinuz-2.6.18-el5 ro root=LABEL=/
initrd /boot/initrd-2.6.18-el5.img
设置Linux启动菜单步骤如下:
1.设置标题
2.设置根分区
3.设置内核的相应参数
4.启动
一个菜单例子:
#
# Note that you do not have to rerun grub after making changes 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,0)
# kernel /boot/vmlinuz-version ro root=/dev/hda1
# initrd /boot/initrd-version.img
#boot=/dev/hda
default=0
timeout=5
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
title Red Hat Linux (2.6.18-el5)
root (hd0,0)
kernel /boot/vmlinuz-2.6.18-el5 ro root=LABEL=/
initrd /boot/initrd-2.6.18-el5.img
设置Linux启动菜单步骤如下:
1.设置标题
2.设置根分区
3.设置内核的相应参数
4.启动
一个菜单例子:
title Red Hat Linux (2.6.18-el5)
root (hd0,0)
kernel /boot/vmlinuz-2.6.18-el5 ro root=LABEL=/
initrd /boot/initrd-2.6.18-el5.img
root (hd0,0)
kernel /boot/vmlinuz-2.6.18-el5 ro root=LABEL=/
initrd /boot/initrd-2.6.18-el5.img
在linux bash中,从 root 用户运行“grub”,该程序非常有趣并值得注意,因为它实际上是GRUB 引导装入器的半功能性版本。尽管 Linux 已经启动并正在运行,您仍可以运行 GRUB 并执行某些任务,而且其界面与使用 GRUB 引导盘或将 GRUB 安装到硬盘 MBR 时看到的界面(即GRUB控制台)完全相同。
在 grub> 提示符处,输入:
在 grub> 提示符处,输入:
grub> root (hd0,0)
grub> setup (hd0)
grub> quit
grub> setup (hd0)
grub> quit
现在,引导盘完成了。
如果要把GRUB装到硬盘上,也很容易。这个过程几乎与引导盘安装过程一样。首先,需要决定哪个硬盘分区将成为 root GRUB 分区。在这个分区上,创建 /boot/grub 目录,并将 stage1 和 stage2 文件复制到该目录中,可以通过重新引导系统并使用引导盘,或者使用驻留版本的 GRUB 来执行后一步操作。在这两种情况下,启动 GRUB,并用 root 命令指定 root 分区。例如,如果将 stage1 和 stage2 文件复制到 hda1 的 /boot/grub 目录中,应输入 "root (hd0,0)"。接着,决定在哪里安装 GRUB -- 在硬盘的 MBR,或者如果与 GRUB 一起使用另一个“主”引导装入器,则安装在特定分区的引导记录中。如果安装到 MBR,则可以指定整个磁盘而不必指定分区,如下(对于 hda):
如果要把GRUB装到硬盘上,也很容易。这个过程几乎与引导盘安装过程一样。首先,需要决定哪个硬盘分区将成为 root GRUB 分区。在这个分区上,创建 /boot/grub 目录,并将 stage1 和 stage2 文件复制到该目录中,可以通过重新引导系统并使用引导盘,或者使用驻留版本的 GRUB 来执行后一步操作。在这两种情况下,启动 GRUB,并用 root 命令指定 root 分区。例如,如果将 stage1 和 stage2 文件复制到 hda1 的 /boot/grub 目录中,应输入 "root (hd0,0)"。接着,决定在哪里安装 GRUB -- 在硬盘的 MBR,或者如果与 GRUB 一起使用另一个“主”引导装入器,则安装在特定分区的引导记录中。如果安装到 MBR,则可以指定整个磁盘而不必指定分区,如下(对于 hda):
grub> setup (hd0)
如果要将 GRUB 安装到 /dev/hda1 的引导记录中,应输入:
grub> setup (hd0,0)
现在,已安装 GRUB。引导系统时,应该立即以 GRUB 的控制台方式结束(如果安装到 MBR)。现在,应创建引导菜单,这样就不必在每次引导系统时都输入那些命令
如果忘记管理员密码,可以通过编辑grup来进入1级别,执行passwd就可以重新设定root的密码,如果管理员密码丢失可以很随意的进入系统重新修改,但是也给自己的系统带来了很大的不安全性,所以我们可以给grub设置上密码,这样只有输入密码才有权限编辑grub,既保证了管理员密码的易修改性,也增强了系统的安全性,否则用户可以随意修改管理员密码的。
# grub-md5-crypt
会提示你输入密码,这时输入一个密码 (注意,密码是不回显的,也就是你按键输入密码的时候,并不现实任何字符,也没有 * )
会提示你再次输入密码,这时再输入一遍密码验证。
此时会出现经过md5加密的密码,为一串乱七八糟的字符。复制这些字符
会提示你输入密码,这时输入一个密码 (注意,密码是不回显的,也就是你按键输入密码的时候,并不现实任何字符,也没有 * )
会提示你再次输入密码,这时再输入一遍密码验证。
此时会出现经过md5加密的密码,为一串乱七八糟的字符。复制这些字符
default=0
timeout=5
password --md5 xxxxxxxxxxxxxxxxxxxx(这一串是刚才加密的密码字符串)
timeout=5
password --md5 xxxxxxxxxxxxxxxxxxxx(这一串是刚才加密的密码字符串)
title Red Hat Linux (2.6.18-el5)
root (hd0,0)
kernel /boot/vmlinuz-2.6.18-el5 ro root=LABEL=/
initrd /boot/initrd-2.6.18-el5.img
root (hd0,0)
kernel /boot/vmlinuz-2.6.18-el5 ro root=LABEL=/
initrd /boot/initrd-2.6.18-el5.img
你也可以只为其中一个
grub机加密,此时只把生成的密码加入到想要加密的grub中即可
title Red Hat Linux (2.6.18-el5)
password --md5 xxxxxxxxxxxxxxxxxx(你想进系统,就必须输入这个密码)
root (hd0,0)
kernel /boot/vmlinuz-2.6.18-el5 ro root=LABEL=/
initrd /boot/initrd-2.6.18-el5.img
root (hd0,0)
kernel /boot/vmlinuz-2.6.18-el5 ro root=LABEL=/
initrd /boot/initrd-2.6.18-el5.img