如何在Linux上设置GRUB密码
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中的任何命令时,我们需要使用刚提供的密码解锁它。