热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何从GRUB命令行启动Linux系统

GNUGRUB(简称GRUB)是一个来自GNU项目的支持多启动的引导加载程序。它允许用户在同一台计算机上安装多个操作系统,并在启动时选择希望启动的系统。

GNU GRUB(简称GRUB)是一种强大的多操作系统引导加载程序,属于GNU项目的一部分。GRUB支持在一台机器上安装多种操作系统,并允许用户在启动时选择启动哪一个操作系统。此外,GRUB还提供了向所选内核传递启动参数的能力。

GRUB在启动过程中扮演着至关重要的角色,它是计算机启动后运行的第一个程序,主要职责是加载并转移控制权给选定的操作系统内核。一旦内核接管了系统,GRUB的任务即告完成,之后的系统初始化和启动过程将由内核控制。

GRUB的核心功能包括:

  • 提供图形化菜单和命令行界面供用户交互;
  • 允许用户选择不同的操作系统或内核版本启动,并能向内核传递启动参数;
  • 支持配置文件加密,以增加系统的安全性。

GRUB的结构主要包括三个部分:

  • Stage1:这是一个512字节的小程序,通常被写入主引导记录(MBR)或活动分区的引导扇区,用于加载下一个阶段的GRUB组件。
  • Stage1.5:这是介于Stage1和Stage2之间的一个中间阶段,主要用于加载Stage2。与Stage1不同的是,Stage1.5能够识别特定的文件系统,因此可以更加灵活地定位Stage2。
  • Stage2:这是GRUB的主要部分,负责读取配置文件、显示启动菜单以及处理用户的输入。

GRUB的配置文件通常位于/boot/grub/grub.conf,其中包含了启动菜单的定义、默认选择的条目、超时时间等重要信息。例如:

default=0
timeout=10
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (3.19.6)
root (hd0,0)
kernel /vmlinuz-3.19.6 ro root=/dev/mapper/vg_centos6-lv_root
initrd /initramfs-3.19.6.img

在GRUB命令行模式下,用户可以直接输入命令来指定启动项,例如使用root (hd0,0)指定根分区,使用kernel /vmlinuz-3.19.6指定内核文件,使用initrd /initramfs-3.19.6.img指定初始RAM磁盘文件,最后使用boot命令启动系统。

为了增强安全性,GRUB还支持通过修改配置文件来设置密码保护,防止未经授权的访问。例如,可以通过执行grub-md5-crypt命令生成MD5加密的密码,并将其添加到配置文件中相应的条目下,以保护特定的启动项或整个GRUB界面的编辑功能。

GRUB的安装通常通过grub-install命令完成,该命令可以指定目标设备和内核及initrd文件所在的挂载点。例如,如果内核和initrd文件位于/dev/sdb1分区,可以通过以下命令安装GRUB:

[root@CentOS6 ~]# mount /dev/sdb1 /mnt/boot
[root@CentOS6 ~]# grub-install --root-directory=/mnt /dev/sdb


推荐阅读
author-avatar
开在覀黎明前的小茉莉
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有