一种基于grub2的linux系统启动bootloader的制作方法与流程

文档序号:13982856阅读:1146来源:国知局

本发明涉及服务器应用技术领域,具体涉及一种基于grub2的linux系统启动bootloader的制作方法。



背景技术:

当前linux系统的内核版本已经升级至4.0以上,最新的linux系统大多采用3.0以上的kernel版本,这些kernel均采用grub2作为bootloader。而在实际应用和生产环境中,许多场景依然采用grub作为bootloader,这就导致了很多架构、兼容性、驱动及扩展方面的问题。



技术实现要素:

本发明的技术任务是提供一种基于grub2的linux系统启动bootloader的制作方法,制作一种实用、方便、兼容性高、功能性强的系统引导文件,对当前的linux启动、引导方式进行了很多方面的补充和完善,制作方便,实用性强,兼容性高。

本发明解决其技术问题所采用的技术方案是:

一种基于grub2的linux系统启动bootloader的制作方法,利用shell脚本,自动生成bootloader,引导不同的方式包括网络、dvd、硬盘和uefishell的启动,并扩展驱动,生成引导菜单。

进一步的,该方法的具体实现包括环境准备、功能实现和自动化脚本编写,

环境准备:

1)、安装uefi的linux系统,

2)、配置可用的yum源,

3)、执行yuminstallgrub2-efi*;

功能实现:

1)、确定所需驱动,

2)、确定系统引导方式,

3)、确定引导os版本,

4)、确定所需额外功能。

进一步的,系统引导方式包括网络、光驱和硬盘。

进一步的,确定引导os版本为linux。

进一步的,所需额外功能包括无盘引导和kickstart启动。

进一步的,脚本实现步骤如下:

1)、开始,生成工作目录,确定系统版本;

2)、确定kernel、驱动文件路径;

3)、确定系统启动参数;

4)、生成grub.cfg文件配置驱动,设置网络,启动选项;

5)、生成包含grub.cfg的grub2.efi文件,启动自动进入grub2环境;

6)、配置输出文件路径;

7)、删除缓存文件;结束。

本发明的一种基于grub2的linux系统启动bootloader的制作方法与现有技术相比,具有以下有益效果:

该方法在linux系统下实现,利用shell脚本,自动生成bootloader,可引导不同方式(网络,dvd,硬盘,uefishell)的启动,并且可扩展驱动,生成引导菜单。对当前的linux启动、引导方式进行了很多方面的补充和完善,制作方便,实用性强,兼容性高。

附图说明

图1是脚本实现流程图。

具体实施方式

下面结合具体实施例对本发明作进一步说明。

一种基于grub2的linux系统启动bootloader的制作方法,利用shell脚本,自动生成bootloader,引导不同的方式包括网络、dvd、硬盘和uefishell的启动,并扩展驱动,生成引导菜单。

该方法的具体实现包括环境准备、功能实现和自动化脚本编写。

环境准备:

1)、安装uefi的linux系统,

2)、配置可用的yum源,

3)、执行yuminstallgrub2-efi*;

功能实现:

1)、确定所需驱动,

启动文件中添加方法:

{

insmodnet

insmodefinet

insmodtftp

insmodgzio

insmodpart_gpt

insmodefi_gop

insmodefi_uga

}

2)、确定系统引导方式,

a)、网络

b)、光驱

c)、硬盘

3)、确定引导os版本,

linux

4)、确定所需额外功能。

a)、无盘引导

b)、kickstart启动。

脚本实现:

实现步骤如下:

1)、开始,生成工作目录,确定系统版本;

2)、确定kernel、驱动文件路径;

3)、确定系统启动参数;

4)、生成grub.cfg文件配置驱动,设置网络,启动选项;

5)、生成包含grub.cfg的grub2.efi文件,启动自动进入grub2环境;

6)、配置输出文件路径;

7)、删除缓存文件;结束。

scripts:

#!/bin/bash

#program:

#onlyusetogeneratoravalidbootloaderfile(orksloaderfile).

#condition:

#yoursystemmusthavegrub2-efiinstalled.

functionsep()#生成分割线

{

echo-e"\033[33m=======================================\033[0m"

}

functionconfig()#启动引导配置

{

echo$os|greprh7#不同系列os引导参数配置

if[$-eq0];then

repo=inst.repo

else

repo=repo

fi

#grub.cfg文件配置

cat>boot/grub/grub.cfg<<eof

settimeout=0

menuentry"$os"--classos{

#添加必备驱动,网络、硬盘、显卡

insmodnet

insmodefinet

insmodtftp

insmodgzio

insmodpart_gpt

insmodefi_gop

insmodefi_uga

setnet_default_server=100.2.36.2#设置dhcp服务器

net_add_addreno0efinet0100.2.36.9#设置静态ip

echo'loadinginitialvmlinuzramdisk...'

#配置系统引导参数

linux(tftp)/images/rhel/$os/vmlinuz$repo=http://100.2.36.3/iso/redhat/$osmodprobe.blacklist=qat_c62xinst.ks=http://100.2.36.194/ks/ali/auto-rh73-64.cfg

echo'loadinginitialinitrdramdisk...'

initrd(tftp)/images/rhel/$os/initrd.img

}

eof

#.............ks.efi..............

#配置额外功能,kickstart

echo

read-p"buildagrubforks-boot(y/n)"check

if["$check"=="y"];then

echo$os|greprh7

if[$-eq0];then

ks=inst.ks

else

read-p"whichnicyouwanttoconfig(eth0/eth1/..):"ksde

ks="ksdevice=$ksdeks"

fi

#read-p"enterthenameofksfile:"ksname

#read-p"enterthepath:"kspath

sed-i"15alinux(tftp)/images/rhel/$os/vmlinuz$repo=http://100.2.36.3/iso/redhat/$os$ks=http://100.2.36.2/ks/rhel/rhel${release}.cfg"boot/grub/grub.cfg

sed-i'15d'boot/grub/grub.cfg

fi

#...................................

}

functiongenerate()#一键生成gurb.efi文件

{

if["$check"=="y"];then

os=${os}_ks

fi

grub2-mkstandalone-d/usr/lib/grub/x86_64-efi/-ox86_64-efi--fonts="unicode"-obootx64.efiboot/grub/grub.cfg

read-p"enterthedirtoputgrubfile,leaveblankfordefault(defaultis/var/lib/tftpboot/grub2.cfg/rhel):"location#输入生成的grub.efi文件存放的路径

if["$location"==""];then

cpbootx64.efi/var/lib/tftpboot/grub2.cfg/rhel/${os}.efi

else

cpbootx64.efi$location/$os.efi

fi

rm/root/desktop/workspace-rf#删除临时文件

}

###############main#################

echo

mkdir-p/root/desktop/workspace/grub2-efi/#生成工作目录

cd/root/desktop/workspace/grub2-efi/

read-p"entertherelease(66_6472_64):"release

os=rh$release

dir=rhel

mkdir-p$os/boot/grub/

cd$os

config#系统配置

generate生成所需文件

###############end################

通过上面具体实施方式,所述技术领域的技术人员可容易的实现本发明。但是应当理解,本发明并不限于上述的具体实施方式。在公开的实施方式的基础上,所述技术领域的技术人员可任意组合不同的技术特征,从而实现不同的技术方案。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1