太阳城集团

  • / 6
  • 下载费用:30 金币  

一种保障LINUX操作系统正常启动的方法.pdf

摘要
申请专利号:

CN201611088146.1

申请日:

2016.11.29

公开号:

CN106776128A

公开日:

2017.05.31

当前法律状态:

实审

有效性:

审中

法律详情: 实质审查的生效IPC(主分类):G06F 11/14申请日:20161129|||公开
IPC分类号: G06F11/14 主分类号: G06F11/14
申请人: 邦彦技术股份有限公司
发明人: 祝启政
地址: 518000 广东省深圳市南山区深圳市软件产业基地第5栋B座901室
优先权:
专利代理机构: 深圳市德锦知识产权代理有限公司 44352 代理人: 丁敬伟
PDF完整版下载: PDF下载
法律状态
申请(专利)号:

CN201611088146.1

授权太阳城集团号:

|||

法律状态太阳城集团日:

2017.06.23|||2017.05.31

法律状态类型:

实质审查的生效|||公开

摘要

本发明公开了一种保障Linux系统正常启动的方法,包括下列步骤:在硬盘分区时,创建一与原始根分区大小相同的分区作为快照分区;安装Linux操作系统至原始根分区中;修改/boot中的原始initramfs镜像文件;修改/boot中的原始initramfs镜像文件的步骤具体包括:用gunzip命令和cpio命令将原始initramfs镜像文件解包到一预定目录中;在预定目录中加入device-mapper软件包;当sbin子目录中不存在dmsetup命令,则将所含device-mapper软件包里面的dmsetup命令放到sbin子目录中;编辑init脚本程序,修改其挂载根文件系统的代码,加入相应的代码逻辑;生成新的initramfs镜像文件以覆盖原始initramfs镜像文件。本发明通过采用以上这种方法之后,在硬盘上的文件系统损坏时,无需人工参与,即可自动恢复系统而正常启动,可保证操作系统能够正常启动。

权利要求书

1.一种保障Linux系统正常启动的方法,其特征在于,该方法包括下列步骤:
在硬盘分区时,创建一与原始根分区大小相同的分区作为快照分区;
安装所述Linux操作系统至所述原始根分区中;
修改/boot中的原始initramfs镜像文件;
所述修改/boot中的原始initramfs镜像文件的步骤具体包括:
用gunzip命令和cpio命令将所述原始initramfs镜像文件解包到一预定目录中;
在所述预定目录中加入device-mapper软件包;
当sbin子目录中不存在dmsetup命令,则将所述所含device-mapper软件包里面的
dmsetup命令放到所述sbin子目录中;
编辑init脚本程序,修改其挂载根文件系统的代码,加入相应的代码逻辑;
生成新的initramfs镜像文件以覆盖所述原始initramfs镜像文件。
2.如权利要求1所述的方法,其特征在于,所述原始initramfs镜像文件是一个gz格式
压缩的cpio文件。
3.如权利要求1所述的方法,其特征在于,所述修改/boot中的原始initramfs镜像文件
具体是修改所述原始initramfs镜像文件的init脚本程序,并视存在与否加入dmsetup程序
到sbin目录。
4.如权利要求1所述的方法,其特征在于,所述Linux系统为Red hat、CentOS或Ubuntu
Server发行版系统。
5.如权利要求1所述的方法,其特征在于,所述保障Linux系统正常启动的方法应用于
MTCA环境中硬盘文件系统损坏的情况。
6.如权利要求1所述的方法,其特征在于,所述Packages存在于安装光盘中。
7.如权利要求1所述的方法,其特征在于,所述相应的代码逻辑包括:根据配置文件的
内容确定是否挂载快照分区、是否对文件系统进行检查和修复、以及是否对新文件的合并
处理。
8.如权利要求1所述的方法,其特征在于,所述生成新的initramfs镜像文件以覆盖所
述原始initramfs镜像文件文件的步骤具体是采用cpio命令和gzip命令生成新的
initramfs镜像文件以覆盖所述原始initramfs镜像文件。
9.如权利要求1所述的方法,其特征在于,所述预定目录为目录initramfs-new,所述
device-mapper软件包具体是Packages中的device-mapper软件包。

说明书

一种保障Linux操作系统正常启动的方法

技术领域

本发明涉及Linux操作系统领域,尤其涉及一种保障Linux操作系统正常启动的方
法。

背景技术

目前,由于MTCA平台广泛应用于环境稳定性不高的场合,经常面临一些设备整框
断电的情况,会给正在读写中的硬盘造成一定影响,比如数据不完整、文件系统损坏等问
题,尤其是后者,严重时会导致板卡上的系统无法启动,板卡因而无法正常工作。MTCA平台
中配备硬盘的板卡主要是x86计算板,由于x86架构的通用性,各个厂家为节约成本、方便使
用、快速部署等方面考虑,一般不会专门为其开发系统,而是直接安装成熟稳定的Linux发
行版,如Redhat、CentOS、Ubuntu Server等,这些系统在启动时如果检测到硬盘上的文件系
统损坏,会采取保守修复,即仅当文件并无实际损坏、只是文件系统记录表为非clean状态
时,才进行轻微的状态修复,修复成功后正常启动。如果确实有文件损坏,则系统不进行修
复,也不会正常启动,而是进入一种维护模式,需要用户连接显示器进入系统,手动做一些
备份数据、修复系统之类的工作;该模式只是一个最小化系统,不会运行用户部署的各种软
件和服务,也就是说板卡没有正常工作。目前,安装这些系统的x86计算板一旦出现文件损
坏、系统无法启动的情况,主要是靠用户连接显示器手工修复,不仅对用户的技术能力要求
高,而且在MTCA应用场合中,显示器和有技能的人并非经常在现场,发现和解决问题将大大
滞后,该问题对工作的不良影响较大。

发明内容

本发明的主要目的在于提供一种保障Linux操作系统正常启动的方法,在硬盘上
的文件系统损坏时,仍可保证该Linux操作系统能够正常启动。

为实现上述目的,本发明提供的保障Linux系统正常启动的方法,包括下列步骤:
在硬盘分区时,创建一与原始根分区大小相同的分区作为快照分区;安装所述Linux操作系
统至所述原始根分区中;修改/boot中的原始initramfs镜像文件;所述修改/boot中的原始
initramfs镜像文件的步骤具体包括:用gunzip命令和cpio命令将所述原始initramfs镜像
文件解包到一预定目录中;在所述预定目录中加入device-mapper软件包;当sbin子目录
中不存在dmsetup命令,则将所述所含device-mapper软件包里面的dmsetup命令放到所述
sbin子目录中;编辑init脚本程序,修改其挂载根文件系统的代码,加入相应的代码逻辑;
生成新的initramfs镜像文件以覆盖所述原始initramfs镜像文件。

优选地,所述原始initramfs镜像文件是一个gz格式压缩的cpio文件。

优选地,所述修改/boot中的原始initramfs镜像文件具体是修改所述原始
initramfs镜像文件的init脚本程序,并视存在与否加入dmsetup程序到sbin目录。

优选地,所述Linux系统为Red hat、CentOS或Ubuntu Server发行版系统。

优选地,所述保障Linux系统正常启动的方法应用于MTCA环境中硬盘文件系统损
坏的情况。

优选地,所述Packages存在于安装光盘中。

优选地,所述相应的代码逻辑包括:根据配置文件的内容确定是否挂载快照分区、
是否对文件系统进行检查和修复、以及是否对新文件的合并处理。

优选地,所述生成新的initramfs镜像文件以覆盖所述原始initramfs镜像文件文
件的步骤具体是采用cpio命令和gzip命令生成新的initramfs镜像文件以覆盖所述原始
initramfs镜像文件。

优选地,所述预定目录为目录initramfs-new,所述device-mapper软件包具体是
Packages中的device-mapper软件包。

在本发明中,通过采用以上这种保障Linux系统正常启动的方法之后,在硬盘上的
文件系统损坏时,不需要人工参与,即可自动恢复系统而正常启动,可保证操作系统能够正
常启动。

附图说明

图1为本发明保障Linux系统正常启动的方法一实施例的流程示意图;

图2为图1中修改/boot中的原始initramfs镜像文件步骤的具体流程示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明提供了一种保障Linux系统正常启动的方法,适用于MTCA环境中硬盘文件
系统损坏的情况下使用。主要是利用Linux系统的设备映射(device mapper)机制和文件系
统快照(snapshot)功能,并且不需要修改Linux内核或已有程序,解决硬盘上的文件系统损
坏时操作系统的启动问题,而该Linux系统包括但不限于Redhat、CentOS、Ubuntu Server等
发行版。

图1为本发明保障Linux系统正常启动的方法一实施例的流程示意图。图2为图1中
修改/boot中的原始initramfs镜像文件步骤的具体流程示意图。请结合参照图1和图2,该
保障Linux系统正常启动的方法的工作流程如下:

步骤S10:在硬盘分区时,创建一与原始根分区大小相同的分区,以作为快照分区。

在本实施中,开始的准备工作:硬盘分区,与平时的操作过程相同,唯一要注意的
是硬盘分区时要多划分出一个与根分区大小相同的分区,后面作为快照分区使用。

步骤S20:安装Linux操作系统至所述原始根分区中。

在本实施中,还包括安装相关部署软件等操作。

步骤S30:修改/boot中的原始initramfs镜像文件。

上述步骤中,具体是修改原始initramfs镜像文件中的init脚本程序。其中,原始
initramfs镜像文件是一个gz格式压缩的cpio文件。

步骤S30具体步骤如下:

步骤S310:用gunzip命令和cpio命令将所述原始initramfs镜像文件解包到一预
定目录中,可定义该预定目录为目录initramfs-new;

步骤S320:在所述预定目录中加入Packages(Packages可存在于安装光盘中)中所
含device-mapper软件包,当sbin子目录中不存在dmsetup命令,则将所含device-mapper软
件包里面的dmsetup命令放到sbin子目录中。如果当sbin子目录中已经存在dmsetup命令,
则无需此操作。

步骤S330:编辑init脚本程序,修改其挂载根文件系统的代码,加入相应的代码逻
辑。

其中,该相应的代码逻辑:根据配置文件的内容确定是否挂载快照分区、是否对文
件系统进行检查和修复、以及是否对新文件的合并处理。

步骤S340:采用cpio命令和gzip命令生成新的initramfs镜像文件以覆盖所述原
始initramfs镜像文件。

在执行上述方法之后,启动该Linux系统,内核运行修改后的init程序,并解析/
boot/snapshot.cfg配置文件;根据解析后的配置文件内容决定下一步流程,具体包括以下
3种流程:

第1种流程:如果解析后的配置文件内容为不启用快照功能,则按原来的方式挂载
根分区,该Linux系统将正常启动。

第2种流程:如果解析后的配置文件内容为启用快照功能,则挂载快照分区,并用
fsck命令检查文件系统是否损坏,当检查结果为无损坏则该Linux系统将正常启动。当检查
结果为有损坏则擦除快照分区、重新挂载,修复系统状态回到创建快照时的状态,该Linux
系统将正常启动。

第3种流程:如果解析后的配置文件内容为合并快照分区中的文件到根分区中,则
将快照分区用snapshot-merge类型挂载,挂载后内核会自动开始合并,用dmsetup status
命令检查到合并完成后,擦除快照分区,将配置文件内容改为启用快照,然后重启该Linux
系统,重启后,该Linux系统将正常启动。

在本实施例中,通过执行采用本发明这种保障Linux系统正常启动的方法之后,在
硬盘上的文件系统损坏时,不需要人工参与,即可自动恢复系统而正常启动,可保证操作系
统能够正常启动。

另外,在其它实施例中,可根据设备映射机制中snapshot类型的写时复制(COW)技
术,对新根分区上文件的写操作会写入到硬盘的快照分区,原来的根分区中的所有文件不
受影响,也就是受到保护。每次系统启动时,修改过的init程序如果检测到快照分区中的数
据有损坏,则擦除快照分区,重新挂载,系统状态回到创建快照时的状态。系统启动挂载文
件系统时,是否挂载快照分区可以根据配置文件进行选择。刚装完系统、服务软件没有部署
好时不用挂载,等服务软件部署好之后再配置为需要挂载(称为创建快照),这样如果文件
损坏系统状态回退时能回到一个健康完整、服务良好的状态。系统运行过程中可能会产生
新的数据文件,如果希望把这些数据合并到原根分区中保护起来,也可以修改配置文件,下
次系统启动时修改过的init脚本程序会自动把快照分区中的文件合并到原根分区,然后重
新创建快照。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发
明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技
术领域,均同理包括在本发明的专利保护范围内。

关 键 词:
一种 保障 LINUX 操作系统 正常 启动 方法
  专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
太阳城集团本文
本文标题:一种保障LINUX操作系统正常启动的方法.pdf
链接地址:http://zh228.com/p-6019753.html
太阳城集团我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服客服 - 联系我们

copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备17046363号-1 
 


收起
展开
葡京赌场|welcome document.write ('');