如何在Linux上设置GRUB密码

时间:2020-03-05 15:29:27  来源:igfitidea点击:

GNU Grub是来自GNU的大统一引导程序。
Bootloader是系统启动期间运行的第一个软件程序。
GRUB可以加载不同的操作系统。
如果系统上安装了Linux,那么我们必须已看到Bootloader菜单,我们可以从中选择不同的操作系统。
本教程展示了如何在Linux上安装GRUB并设置GRUB密码。

GRUB阶段

GRUB是一个多级引导加载程序。
GRUB的第一阶段位于MBR中,主引导记录或者某些分区的引导扇区。
这是一个非常小的阶段,并且仅驻留在PRO的前446个字节(或者分区的引导扇区)中。
该阶段的唯一目的是找到第二阶段。

阶段2执行引导加载程序的所有任务,如加载内核和initrd等。
此阶段读取其命令的GRUB配置文件。

GRUB配置文件

GRUB配置文件控制在启动时所看到的。
配置文件位于Red Hat Enterprise Linux中的/boot/grub/grub.conf。
在Linux等ubuntu,它是/boot/grub/grub.cfg或者/boot/grub/menu.lst,具体取决于不同的版本。
但是,无论配置文件的位置如何,此文件中使用的基本命令保持不变。
让我们来看看示例配置文件:

# grub.conf generated by anaconda
## Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol00
# initrd /initrd-version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Red Hat Enterprise Linux Server (2.6.18-238.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-238.el5 ro root=/dev/VolGroup00/LogVol00
initrd /initrd-2.6.18-238.el5.img
title Windows XP Pro
rootnoverify (hd0,1)
chainloader +1

在此配置文件中,从名称开始的行是注释的行。
其他参数是:

默认值:这指定要选择的默认条目是否在超时直到超时选择键。
编号以0.因此,要引导第一个条目默认情况下,值必须为0,如此配置文件中。

超时:这是GRUB在释放默认条目之前等待GRUB的时间。

HiddenMenu:这指定将无法显示菜单,并且将引导默认条目。
但是可以通过在超时到期之前按任何键来显示菜单。

标题:这指定了选择菜单上显示的名称。
标题后面的命令是将在选择菜单条目时执行的GRUB命令。

在GRUB的较新版本中,例如:GRUB2,"标题"已被"功能中心"所取代。

GRUB命令

GRUB可通过菜单驱动接口和命令行界面使用。
对于菜单驱动接口,使用如上所述的配置文件。
命令行界面需要手动输入命令。
GRUB支持以下命令:

root:root命令指定压缩内核镜像和initrd驻留的根设备。
HD0,0意味着第一个硬盘和第一分区。
同样,如果要指定第二个分区,则将使用HD0和HD1.
如果我们有多个硬盘,则它们将被指定为HD0,HD1,HD2等。

内核:这指定要使用的内核文件。
启动时间内核参数传递给此行。

initrd:要使用的初始ramdisk。

GRUB支持将另一个引导加载程序链接,以引导一些像Windows这样的操作系统。
Chainloading是GRUB将控件传递给某些其他引导加载程序的机制,然后该引导加载程序负责启动系统。

rootnoverify就像root,但它没有尝试挂载指定的分区。

这用于指定辅助引导加载程序所在的分区。

Chainloader命令Chainloades,例如:将控件传递给Bootloader。
在上面的文件中,带链载器的+1指定引导加载程序存在于分区的第一扇区中。

安装grub.

如果MBR被一些其他引导加载程序覆盖,则可以使用命令GRUB安装来安装GRUB。
我们需要将硬盘提供为此命令的参数。
因此,在第一个硬盘的MBR上安装GRUB的第一阶段,请运行:

$grub-install /dev/sda

密码保护grub.

安装操作系统时,我们会询问我们是否要为GRUB提供密码。
但是如何在操作系统安装后保护GRUB?
GRUB存储密码的MD5哈希。
首先,我们需要生成密码的MD5哈希。
我们可以使用grub-md5-crypt命令来生成密码散列,如下所示:

# grub-md5-crypt
Password:
Retype password:
$PHhFm0$yBhuvWGfhmG1IEPXfASeW.

当我们键入密码时,字符不会在屏幕上欣赏。
现在复制此MD5哈希,并将以下行放在GRUB配置文件中:

password --md5 $PHhFm0$yBhuvWGfhmG1IEPXfASeW.

现在,当我们下次启动系统并尝试更改GRUB中的任何命令时,我们需要使用刚提供的密码解锁它。