linux怎么更改启动管理器,Linux操作系统启动管理器-grub

GRUB是GNU项目的多操作系统启动程序,允许在一台电脑上安装多个操作系统。本文详细介绍了GRUB的组成、功能、两种启动模式、配置文件及其安装过程。通过实例展示了如何在虚拟机中安装GRUB并启动带有bash的Linux系统。内容包括分区、创建引导菜单、配置grub.conf文件等步骤。
摘要由CSDN通过智能技术生成

一、GRUB简介

GRUB(GRand Unified Bootloader简称“GRUB”)是一个来自GNU项目的多操作系统启动程序。GRUB是多启动规范的实现,它允许用户可以在计算机内同时拥有多个操作系统,并在计算机启动时选择希望运行的操作系统。GRUB可用于选择操作系统分区上的不同内核,也可用于向这些内核传递启动参数。

=========================================================================================

二、GRUB的组成

grub分为三个部分

第一部分被放在MBR中前446字节里(MBR共512字节,中间54字节存放磁盘分区信息,最后2字节判断MBR是否损坏),主板启动时首先会读取MBR里的内容,所以grub是系统内核启动之前就启动的。

第二部分放在MBR之后的扇区中,存放的是文件系统的驱动程序,可以在系统内启动分区没挂载的情况下读取磁盘内里的指定内容

第三部分就是存在磁盘分区中的内容,里面是grub的配置信息,内核文件,这里就是gurb的根分区

==============================================================================

三、GRUB的功能

1、提供菜单,并提供交互式接口(e: 进入编辑模式 在内核后添加single,后按b就可以进入单用户模式、c:进入命令行接口模式)

2、选择要启动的内核或系统(允许传递引导参数给内核,选择界面可隐藏)

3、为编辑功能提供保护机制(选择运行指定的内核得先输入密码、使用e命令得先输入密码)

=============================================================================

四、grub的两种形式(使用虚拟机演示)

1、图形模式

系统启动之前开始出现倒数秒数的时候,按esc可以进入grub界面(一般是隐藏的,会启动默认的系统)选择我们想要启动的不同系统。我这里只有一个系统,所以只有一项可以选

28d0cc89123762286746f6b22e623466.png

按e进入编辑模式

db6608cef05ee0ce62e1bab9426d75b0.png

按上下选择要编辑的项,按e对其编辑,按enter键保存编辑,按o新添一行,d删除此行,b启动系统

2、命令行模式

系统启动前倒数秒数的时候按esc进入图形界面,之后按c键会进入命令行模式

dccb56d81125afed57c9777d588941b2.png

ed44873780c7c3f0eddc5a9af08f433b.png

grub的命令行接口 :

help:获得帮助列表

root  (hd#,#) 设置哪儿块磁盘为根

kernel /path/to/kernel_file :设置本次启动时用到的内核文件  vmlinuz(z表示压缩的意思);额外还可以添加许多内核支持使用的cmdline参数

initrd /path/to/initrd_file : 设定为选定的内核提供额外文件的ramdisk;要和内核版本一样

boot:引导启动选定的内核

==========================================================================================

五、GRUB的配置文件: /boot/grub/grub.conf

配置项:支持命令行补全(tab)

default=#: //设定默认启动的菜单项

timeout=#:  //指定菜单项等待选项选择的时长

splashp_w_picpath=(hd#,#)/path/to/xpm_pic_file :   //指明菜单背景图片所在路径(gimp 640*680)

hiddenmenu :     //隐藏菜单

password [--md5] string :   //菜单编辑认证

title TITLE :           //定义菜单项“标题”

root (hd#,#): //grub查找stage2及kernel文件所在设备分区;为grub的“根”

kernel /path/to/vmlinuz_file [parameters]:  //启动内核并设置额外参数

initrd /path/to/initramfs_file:   //内核匹配的ramfs文件

password [--md5] string :    //启动选定的内核或操作系统时进行认证 【grub-md5-crypt 生成密码】

=========================================================================================

六、安装GRUB命令

使用grub-install命令

# grub-install [--root-directory=DIR] DEVICE

--root-directory=指定的路径必须是内核及initrd文件所在的分区的挂载点的父目录,且此挂载点必须叫boot

========================================================================================

七、实例,安装GRUB至令一个磁盘,并使用这个磁盘启动一个带bash的linux的系统

1、给虚拟机新建1个20G的磁盘,过程图解:

f59e645d5545b4984ea1ed6d8e87e74f.png

f44f02dadeef898741fea15dc36deba5.png

5e72cbb17e8dc790cf66f98cb322725a.png

97fd6408cf1a2d05f8ac6405ca9ccbd0.png

03a28e7e1f048c316b16e42ac67ebefb.png

e6cc8879ac45ee78a566fd8f8300d36b.png

2、启动虚拟机,并给新的磁盘分3个区

/dev/sdb1(/boot):100M  文件系统使用ext4

/dev/sdb2(swap):2G

/dev/sdb3(/):5G  文件系统使用ext4[root@pyhon ~]# fdisk /dev/sdb         //给磁盘分区,分区过程如下图所示(红框标识)

558ed6197429a157f0246cebc02a2bcb.png

c3bd3cb81eccf58d1dc4cf985f7953b1.png//让内核读取磁盘分区[root@pyhon ~]# mke2fs -t ext4 /dev/sdb1      //格式化分区,文件系统为ext4

[root@pyhon ~]# mke2fs -t ext4 /dev/sdb3

[root@pyhon ~]# mkswap /dev/sdb2

至此磁盘分区准备完成!!

3、创建/boot目录,挂载/dev/sdb1,具体操作过程如下[root@pyhon ~]# mkdir /mnt/boot

[root@pyhon ~]# mount /dev/sdb1 /mnt/boot/

[root@pyhon ~]# grub-install --root-directory=/mnt /dev/sdb

4c26539ad521c7abdabefd6301d00e1f.png

6a35f23cad657802e8e0f2853c6fa96d.png[root@pyhon ~]# cp /boot/vmlinuz-2.6.32-504.el6.x86_64 /mnt/boot/vmlinuz

[root@pyhon ~]# cp /boot/initramfs-2.6.32-504.el6.x86_64.img /mnt/boot/initramfs.img

689a3bc0014535da5217db948259f040.png

4、创建/sysroot目录,挂载/dev/sdb3,具体操作过程如下[root@pyhon ~]# mkdir /mnt/sysroot

[root@pyhon ~]# mount /dev/sdb3 /mnt/sysroot/

[root@pyhon ~]# cd /mnt/sysroot/

[root@pyhon sysroot]# mkdir -pv bin boot dev etc home lib lib64 media mnt opt proc root sbin srv sys tmp usr var

e9343f6393e9486e6ff1646fb07f0c44.png[root@pyhon sysroot]# cp /bin/bash /mnt/sysroot/bin/

[root@pyhon sysroot]# ldd /bin/bash

84c0dceeedaecd920097cb2c064bbf1f.png[root@pyhon sysroot]# cp /lib64/libtinfo.so.5 /mnt/sysroot/lib64/   

[root@pyhon sysroot]# cp /lib64/libdl.so.2 /mnt/sysroot/lib64/

[root@pyhon sysroot]# cp /lib64/libc.so.6 /mnt/sysroot/lib64/

[root@pyhon sysroot]# cp /lib64/ld-linux-x86-64.so.2 /mnt/sysroot/lib64/

将ls及依赖的库文件复制到/mnt/sysroot目录下面对应的目录中,测试如下

20d9321f6f405270ba06587a0858cd98.png

5、修改/mnt/boot/grub/grub.conf文件,并关闭此虚拟机

0253d1952cbdd3ebc06754f529a39741.png[root@pyhon ~]# sync

[root@pyhon ~]# sync

[root@pyhon ~]# sleep 10

[root@pyhon ~]# shutdown -h now

6、将磁盘拆下来放到一个新的虚拟机上,测试如下

d97b99f0a06340b8df7e0a587a59f818.png

e16dda833827f1052a3f4e9bfd3843b1.png

e6858cc2258b488928d29aba9be28a11.png

461aacac9e6c97097ee7f166b57c8b0d.png

5ea08e797c071981afdaa713601f280a.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值