一种CF卡操作系统的更新方法技术方案

技术编号:36709731 阅读:37 留言:0更新日期:2023-03-01 09:35
本发明专利技术公开了一种CF卡操作系统的更新方法,通过Linux系统的debugfs工具删除并重新创建CF卡上的extlinux文件,添加引导参数rd.live.ram,使得CF卡可读写;将CF卡中的操作系统内核、initrd和extlinux文件更新,更新extlinux文件的引导参数rd.live.ram,使initrd在升级完后找到位于硬盘上root分区的根文件系统,且在initrd完成准备工作后,执行pivot_root指令切换到root分区的根文件系统中,实现对运行中的CF卡操作系统的升级。本发明专利技术能够在不需要拔出CF卡的情况下升级操作系统,避免了业务停止和返厂重新烧录的缺陷。避免了业务停止和返厂重新烧录的缺陷。避免了业务停止和返厂重新烧录的缺陷。

【技术实现步骤摘要】
一种CF卡操作系统的更新方法


[0001]本专利技术属于存储设备系统更新的
,具体涉及一种CF卡操作系统的更新方法。

技术介绍

[0002]由于Linux系统具有开源的特性、软件授权费用低和应用开发资源丰富等优点,已经得到了广泛的应用,并且在民用和办公以及开发领域具有越来越多的用户。CF卡(Compact Flash)作为一种存储设备,革命性的使用了闪存,具有可永久性保存信息,无需电源,速度快,重量轻,耗电量小,体积小等特点,CF卡可以直接安装在芯片上的控制器接口,不带驱动器,无移动的部件,发生机械故障的可能性很小,数据更安全,这使它成为优良的多功能的存储系统,这种可随机携带的控制器使CF卡与多种平台相兼容,适合软件生产厂商生产安装有软件产品的操作系统镜像。只要将CF卡插入到电脑的CF卡插槽中,即可启动其中的Linux操作系统。然而,后期如果要对已经生产的CF卡操作系统进行升级,就必须要将CF卡拔出,返厂重新烧写新的操作系统进行升级。
[0003]对CF卡的Linux操作系统进行升级比升级普通的Linux操作系统要困难许多,主要是因为在默认情况下,启动过程中,initrd会将squahsFS只读挂载到CF卡目录,而不是加载到内存中,否则会严重影响系统性能。因此,在操作系统运行过程中CF卡是不可写的,如果需要升级必须关机,停止正在运行的操作系统,将CF卡拔下后,将新的操作系统烧写进CF卡中进行升级,这就势必会对当前正在运行的业务产生影响。
[0004]现有技术CN200710043619.0公开了基于移动设备存储卡来更新闪存操作系统的方法,需要通过移动设备上的存储卡重新烧录闪存操作系统,在更新操作系统时需要将系统断电,不适合用于对已经出厂的设备进行升级,因为这意味着CF卡必须返厂重新烧录,系统中正在运行的程序必须被迫停止。
[0005]squashFS是一套基于Linux内核使用的压缩只读文件系统,大小通常超过1G,解压后的大小可达好几个G。在CF卡操作系统中,squashFS位于CF卡内,系统启动时会将其解压挂载。如果直接挂载到CF卡目录,那么CF卡是只读的,不可进行写入操作。而如果把它加载到内存中,可以对CF卡实现读写的操作,然而,squashFS的大小可达好几个G,将它加载到内存中会严重影响系统性能。
[0006]因此,本专利技术提供了一种CF卡操作系统的更新方法,能够在CF卡操作系统运行时进行升级,无需拔出CF卡或者关闭电源,保证了运行程序的连贯运行。

技术实现思路

[0007]本专利技术的目的在于提供一种CF卡操作系统的更新方法,旨在解决上述问题。
[0008]本专利技术主要通过以下技术方案实现:一种CF卡操作系统的更新方法,包括以下步骤:步骤S100:将升级包上传到插有CF卡的电脑上,所述升级包包含操作系统内核、
initrd、根文件系统、extlinux文件以及更新脚本;步骤S200:运行升级包,解压升级包,运行更新脚本,执行更新;步骤S300:CF卡的initrd会根据extlinux中的引导参数rd.live.ram的值选择是否挂载squahsFS;首先利用Linux系统的debugfs删除CF卡上的旧extlinux文件,创建新的extlinux文件,添加引导参数rd.live.ram=1,使启动过程中,将CF卡中的squashFS镜像复制到内存中运行,使得CF卡变得可读写;步骤S400:备份CF卡和电脑硬盘中的文件,以防止后续操作失败导致数据丢失;步骤S500:替换CF卡中的操作系统内核、initrd、extlinux文件,修改extlinux文件的引导参数rd.live.ram,使initrd在升级完后找到位于硬盘分区上的根文件系统,并切换到根文件系统中,解压新操作系统的根文件系统到硬盘分区上,实现操作系统更新。
[0009]为了更好地实现本专利技术,进一步地,所述步骤S500中,选择硬盘中另一个分区作为新操作系统的root分区,root分区就是根文件系统所在的分区;对该分区进行格式化,将分区的标签设置为root,以便解压新操作系统的根文件系统到硬盘分区上。
[0010]为了更好地实现本专利技术,进一步地,所述步骤S500中,在修改extlinux文件的引导参数rd.live.ram时,将原来的引导参数rd.live.ram=1删除,然后,添加新的内核参数告知内核新的根文件系统所在位置,修改后的rd.live.ram=LABEL=root,使initrd在升级完后找到位于硬盘上root分区的根文件系统,且在initrd完成准备工作后,执行pivot_root指令切换到root分区的根文件系统中。
[0011]为了更好地实现本专利技术,进一步地,所述步骤S300包括以下步骤:步骤S301:CF卡上新建的extlinux读取extlinux引导文件,根据配置文件将内核参数传递给内核,加载内核并初始化内存;步骤S302:内核把initrd转化成正常的内存文件系统并释放initrd使用的内存;步骤S303:initrd作为root被挂载,赋予CF卡读写权限。
[0012]为了更好地实现本专利技术,进一步地,所述步骤S500包括以下步骤:步骤S501:linuxrc被执行,任何可执行文件做初始化;步骤S502:Linuxrc解压CF卡中的SquashFS镜像,只读挂载真正的根文件系统;步骤S503:linuxrc使用pivot_root系统调用把根文件系统并放在根目录;步骤S504:在根文件系统上执行正常的启动程序;步骤S505:升级成功后,移去initrd文件系统。
[0013]为了更好地实现本专利技术,进一步地,所述步骤S500中,在解压成功后,删除CF卡上的squashFS镜像文件,因为之后系统不再需要将squashFS解压挂载,删除squashFS文件可以节约CF卡空间。
[0014]为了更好地实现本专利技术,进一步地,若系统升级成功,则删除步骤S400中的备份文件。
[0015]本专利技术的有益效果如下:(1)本专利技术能够在不需要拔出CF卡的情况下升级操作系统,避免了业务停止和返厂重新烧录的成本;(2)本专利技术通过Linux系统的debugfs工具,可以删除并重新创建CF卡上的extlinux文件,添加引导参数rd.live.ram=1,使得CF卡可读写;并没有直接通过debugfs替
换CF卡中的文件,极大地降低了升级过程中的风险;(3)原本的CF卡操作系统采用了压缩的只读根文件系统,受限于CF卡本身的读写速度,性能方面不如安装在硬盘上的操作系统,而本专利技术将新的根文件系统直接解压到硬盘上,使得新操作系统在读写性能上远好于旧操作系统;与此同时,内核与initrd仍然保留在CF卡中,可以保留原本CF卡操作系统兼容硬盘阵列(RAID)或者加密硬盘场景的能力;(4)本专利技术将新的根文件系统解压到硬盘上,删除CF卡上的旧squashFS,使得后续启动过程中不再需要将squashFS解压挂载。一方面可以简化将来的升级流程,使得CF卡能够一直保持可读写状态本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种CF卡操作系统的更新方法,其特征在于,包括以下步骤:步骤S100:将升级包上传到插有CF卡的电脑上,所述升级包包含操作系统内核、initrd、根文件系统、extlinux文件以及更新脚本;步骤S200:运行升级包,解压升级包,运行更新脚本,执行更新;步骤S300:CF卡的initrd会根据extlinux中的引导参数rd.live.ram的值选择是否挂载squahsFS;首先利用Linux系统的debugfs删除CF卡上的旧extlinux文件,创建新的extlinux文件,添加引导参数rd.live.ram=1,使启动过程中,将CF卡中的squashFS镜像复制到内存中运行,使得CF卡变得可读写;步骤S400:备份CF卡和电脑硬盘中的文件,以防止后续操作失败导致数据丢失;步骤S500:替换CF卡中的操作系统内核、initrd、extlinux文件,修改extlinux文件的引导参数rd.live.ram,使initrd在升级完后找到位于硬盘分区上的根文件系统,并切换到根文件系统中,解压新操作系统的根文件系统到硬盘分区上,实现操作系统更新。2.根据权利要求1所述的一种CF卡操作系统的更新方法,其特征在于,所述步骤S500中,选择硬盘中另一个分区作为新操作系统的root分区,root分区就是根文件系统所在的分区;对该分区进行格式化,将分区的标签设置为root,以便解压新操作系统的根文件系统到硬盘分区上。3.根据权利要求2所述的一种CF卡操作系统的更新方法,其特征在于,所述步骤S500中,在修改extlinux文件的引导参数rd.live.ram时,将原来的引导参数rd.live.ram=1删除,然后,添加新的内核参数告...

【专利技术属性】
技术研发人员:翁羽苏吴永越买步云周虎
申请(专利权)人:成都安恒信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1