CN108920215A - 一种通过initramfs收集系统日志的方法 - Google Patents
一种通过initramfs收集系统日志的方法 Download PDFInfo
- Publication number
- CN108920215A CN108920215A CN201810789886.0A CN201810789886A CN108920215A CN 108920215 A CN108920215 A CN 108920215A CN 201810789886 A CN201810789886 A CN 201810789886A CN 108920215 A CN108920215 A CN 108920215A
- Authority
- CN
- China
- Prior art keywords
- initramfs
- log
- kernel
- transmitted
- usb flash
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
Abstract
本发明提供一种通过initramfs收集系统日志的方法,具体包括如下步骤:启动日志收集模块收集系统启动日志;tmp目录收集模块收集tmp目录日志;将系统的根目录重新挂载为读写形式;将收集到的系统相关日志传输到系统根目录设备中。步骤将系统的根目录重新挂载为读写形式,包括:查询系统根目录设备;创建临时挂载目录;卸载当前挂载目录;重新挂载系统根目录到临时挂载目录。
Description
技术领域
本发明涉及服务器系统技术领域,具体涉及一种通过initramfs收集系统日志的方法。
背景技术
当Linux系统启动过程或安装过程中遇到问题,停留在initramfs系统界面无法启动时,需要提供相关启动日志文件给研发人员分析,而这些initramfs的临时日志是保存在内存中的临时文件,重启后日志将丢失。
发明内容
为了克服上述现有技术中的不足,本发明一种通过initramfs收集系统日志的方法,以解决上述技术问题。
本发明的技术方案是:
一种通过initramfs收集系统日志的方法,包括如下步骤:
收集系统的相关日志;
将系统的根目录重新挂载为读写形式;
将收集到的系统相关日志传输到系统根目录设备中。
进一步的,步骤收集系统的相关日志,包括:
启动日志收集模块收集系统启动日志;
tmp目录收集模块收集tmp目录日志。
进一步的,步骤将系统的根目录重新挂载为读写形式,包括:
查询系统根目录设备;
创建临时挂载目录;
卸载当前挂载目录;
重新挂载系统根目录到临时挂载目录。
进一步的,该方法还包括:
设置kernel编译选项,使系统启动到initramfs时能够识别访问到U盘或移动磁盘设备;
将收集到的系统相关日志传输到U盘或移动磁盘设备。
进一步的,步骤设置kernel编译选项,使系统启动到initramfs时能够识别访问到U盘或移动磁盘设备,包括:
修改kernel编译选项中的CONFIG_FAT_FS=y,CONFIG_MSDOS_FS=y,CONFIG_VFAT_FS=y,将磁盘驱动加入到标准Linux kernel的initfamfs中,使系统启动到initramfs时能够识别访问到U盘或移动磁盘设备。
进一步的,步骤修改kernel编译选项中的CONFIG_FAT_FS=y,CONFIG_MSDOS_FS=y,CONFIG_VFAT_FS=y,将磁盘驱动加入到标准Linux kernel的initfamfs中,使系统启动到initramfs时能够识别访问到U盘或移动磁盘设备,具体包括:
解压内核源码包;
删除源代码目录中残留的.o文件及其它从属文件;
配置内核选项;
编译内核及模块;
安装内核及模块;
启动内核至initramfs中,识别vfat、fat、msdos格式的磁盘设备。
进一步的,步骤将收集到的系统相关日志传输到U盘或移动磁盘设备,包括:
获取待传送日志文件的数据承载量,并将待传送日志文件的数据承载量与第一承载量阈值进行比较;
当待传送日志文件的数据承载量大于第一承载量阈值时,将待传送日志文件的数据承载量分解为若干个待传送数据分片;
将若干个待传送数据分片传输至U盘或移动磁盘设备;
U盘或移动磁盘设备接收若干个待传送数据分片,并将若干个待传送数据分片组合还原成原始的待传送日志文件。
进一步的,步骤获取待传送日志文件的数据承载量,并将待传送日志文件的数据承载量与第一承载量阈值进行比较之后还包括:
当待传送日志文件的承载量小于第一承载量阈值,将该待传送日志文件设置为普通文件;
将所述普通文件发送至U盘或移动磁盘设备。
BootLoader是在操作系统内核运行之前由BIOS或UEFI引导运行的程序,可以初始化硬件设备、建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用操作系统内核准备好正确的环境。
在操作系统安装时,BIOS模式下bootloader程序被写入硬盘的活动分区的主引导记录(MBR,446字节)中,被BIOS调用引导内核;而在UEFI模式下,bootloader程序则被写入EFI分区中,被UEFI调用执行引导内核。
initramfs是一个压缩的小型根目录结构镜像,其中包含了启动阶段中必须的驱动模块、可执行文件和启动脚本等。当系统启动时,initramfs被BIOS作为BootLoader加载到内存中,将解压后的initramfs挂载为根目录,将它作为临时的根文件系统。
从以上技术方案可以看出,本发明具有以下优点: 将系统的根目录重新挂载为读写形式,将initramfs中产生的临时日志文件信息写入系统根目录的磁盘中保存,当系统重新正常启动后,可以读取到这部分initramfs的临时日志文件,方便分析定位系统问题。还可通过修改kernel编译选项,将相关磁盘驱动加入到标准Linux kernel的initfamfs中,使系统启动到initramfs时能够识别访问到U盘或移动磁盘设备,拷取相关日志文件。
此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
由此可见,本发明与现有技术相比,具有突出的实质性特点和显著地进步,其实施的有益效果也是显而易见的。
附图说明
图1为实施例一提供的一种通过initramfs收集系统日志的方法流程示意图;
图2为实施例二提供的一种通过initramfs收集系统日志的方法流程示意图;
图3为将系统的根目录重新挂载为读写形式流程示意图;
图4为设置系统启动到initramfs时能够识别访问到U盘或移动磁盘设备流程示意图。
具体实施方式
下面结合附图并通过具体实施例对本发明进行详细阐述,以下实施例是对本发明的解释,而本发明并不局限于以下实施方式。
实施例一
如图1所示,一种通过initramfs收集系统日志的方法,包括如下步骤:
S1:收集系统的相关日志;
S2:将系统的根目录重新挂载为读写形式;
S3:将收集到的系统相关日志传输到系统根目录设备中。
步骤S1包括:
S11:启动日志收集模块收集系统启动日志;
S12:tmp目录收集模块收集tmp目录日志。
步骤S2,包括:
S21:查询系统根目录设备;
S22:创建临时挂载目录;
S23:卸载当前挂载目录;
S24:重新挂载系统根目录到临时挂载目录。
实施例二
如图2所示,一种通过initramfs收集系统日志的方法,包括如下步骤:
S1:收集系统的相关日志;
S2:将系统的根目录重新挂载为读写形式;
S3:将收集到的系统相关日志传输到系统根目录设备中。
步骤S1包括:
S11:启动日志收集模块收集系统启动日志;
S12:tmp目录收集模块收集tmp目录日志。
如图3所示,步骤S2,包括:
S21:查询系统根目录设备;
S22:创建临时挂载目录;
S23:卸载当前挂载目录;
S24:重新挂载系统根目录到临时挂载目录。
该方法还包括:
S4:设置kernel编译选项,使系统启动到initramfs时能够识别访问到U盘或移动磁盘设备;
如图4所示,步骤S4中,设置kernel编译选项,使系统启动到initramfs时能够识别访问到U盘或移动磁盘设备,包括:
修改kernel编译选项中的CONFIG_FAT_FS=y,CONFIG_MSDOS_FS=y,CONFIG_VFAT_FS=y,将磁盘驱动加入到标准Linux kernel的initfamfs中,使系统启动到initramfs时能够识别访问到U盘或移动磁盘设备,具体包括:
S41:解压内核源码包;
S42:删除源代码目录中残留.o文件及其它从属文件;
S43:配置内核选项;
S44:编译内核及模块;
S45:安装内核及模块;
S46:启动内核至initramfs中,识别vfat、fat、msdos格式的磁盘设备。
S5:将收集到的系统相关日志传输到U盘或移动磁盘设备。
实施例三
一种通过initramfs收集系统日志的方法,包括如下步骤:
S11:收集启动日志:
# journalctl -xb > /run/log/journalctl.out
# dmesg > /run/log/dmesg.out;
S12:收集tmp目录日志:
# tar -czvf tmp.tar.gz /tmp
# cp tmp.tar.gz /run/log;
S21:查询系统根目录设备:
# blkid
/dev/mapper/rhel-root;
S22:创建临时挂载目录:
# mkdir /test;
S23:卸载当前挂载目录:
# umount /sysroot;
S24:重新挂载系统根目录到临时目录:
# mount /dev/mapper/rhel-root /test;
S3:传输日志到系统根目录设备中:
# cp -rf /run/log/* /test/tmp/;
S4:设置kernel编译选项,使系统启动到initramfs时能够识别访问到U盘或移动磁盘设备;
步骤S4中,设置kernel编译选项,使系统启动到initramfs时能够识别访问到U盘或移动磁盘设备,包括:
修改kernel编译选项中的CONFIG_FAT_FS=y,CONFIG_MSDOS_FS=y,CONFIG_VFAT_FS=y,将磁盘驱动加入到标准Linux kernel的initfamfs中,使系统启动到initramfs时能够识别访问到U盘或移动磁盘设备,具体包括:
S41:解压内核源码包:
# tar -xzvf linux-3.2.12.tar.gz -C /usr/src
# cd /usr/src/linux-3.2.12;
S42:删除源代码目录中残留的.o文件及其它从属文件:
# make clean
# make mrproper;
S43:配置内核选项:
# make menuconfig;
在图形界面中修改如下内核编译选项,使其能够支持相关磁盘设备格式
CONFIG_FAT_FS=y,CONFIG_MSDOS_FS=y,CONFIG_VFAT_FS=y
或者直接修改.config内核编译选项文件中的如上选项也可:
# vim .config;
S44:编译内核及模块:
# make
# make modules;
S45:安装内核及模块:
# make modules_install
# make install;
S46:启动内核至initramfs中,识别vfat、fat、msdos格式的磁盘设备。
S5:将收集到的系统相关日志传输到U盘或移动磁盘设备,包括:
S51:获取待传送日志文件的数据承载量,并将待传送日志文件的数据承载量与第一承载量阈值进行比较;
S52: 当待传送日志文件的数据承载量大于第一承载量阈值时,将待传送日志文件的数据承载量分解为若干个待传送数据分片;
S53:将若干个待传送数据分片传输至U盘或移动磁盘设备;
S54: U盘或移动磁盘设备接收若干个待传送数据分片,并将若干个待传送数据分片组合还原成原始的待传送日志文件。
步骤S51之后还包括:
S501:当待传送日志文件的承载量小于第一承载量阈值,将该待传送日志文件设置为普通文件;
S502:将所述普通文件发送至U盘或移动磁盘设备。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (8)
1.一种通过initramfs收集系统日志的方法,其特征在于,包括如下步骤:
收集系统的相关日志;
将系统的根目录重新挂载为读写形式;
将收集到的系统相关日志传输到系统根目录设备中。
2.根据权利要求1所述的一种通过initramfs收集系统日志的方法,其特征在于,步骤收集系统的相关日志,包括:
启动日志收集模块收集系统启动日志;
tmp目录收集模块收集tmp目录日志。
3.根据权利要求2所述的一种通过initramfs收集系统日志的方法,其特征在于,步骤将系统的根目录重新挂载为读写形式,具体包括:
查询系统根目录设备;
创建临时挂载目录;
卸载当前挂载目录;
重新挂载系统根目录到临时挂载目录。
4.根据权利要求2所述的一种通过initramfs收集系统日志的方法,其特征在于,该方法还包括:
设置kernel编译选项,使系统启动到initramfs时能够识别访问到U盘或移动磁盘设备,将收集到的系统相关日志传输到U盘或移动磁盘设备。
5.根据权利要求4所述的一种通过initramfs收集系统日志的方法,其特征在于,步骤设置kernel编译选项,使系统启动到initramfs时能够识别访问到U盘或移动磁盘设备,将收集到的系统相关日志传输到U盘或移动磁盘设备,包括:
修改kernel编译选项中的CONFIG_FAT_FS=y,CONFIG_MSDOS_FS=y,CONFIG_VFAT_FS=y,将磁盘驱动加入到标准Linux kernel的initfamfs中,使系统启动到initramfs时能够识别访问到U盘或移动磁盘设备,将收集到的系统相关日志传输到U盘或移动磁盘设备。
6.根据权利要求5所述的一种通过initramfs收集系统日志的方法,其特征在于,步骤修改kernel编译选项中的CONFIG_FAT_FS=y,CONFIG_MSDOS_FS=y,CONFIG_VFAT_FS=y,将磁盘驱动加入到标准Linux kernel的initfamfs中,使系统启动到initramfs时能够识别访问到U盘或移动磁盘设备,具体包括:
解压内核源码包;
删除源代码目录中残留的.o文件及其它从属文件;
配置内核选项;
编译内核及模块;
安装内核及模块;
启动内核至initramfs中,识别vfat、fat、msdos格式的磁盘设备。
7.根据权利要求4所述的一种通过initramfs收集系统日志的方法,其特征在于,步骤设置kernel编译选项,使系统启动到initramfs时能够识别访问到U盘或移动磁盘设备,将收集到的系统相关日志传输到U盘或移动磁盘设备中,将收集到的系统相关日志传输到U盘或移动磁盘设备,包括:
S51:获取待传送日志文件的数据承载量,并将待传送日志文件的数据承载量与第一承载量阈值进行比较;
S52: 当待传送日志文件的数据承载量大于第一承载量阈值时,将待传送日志文件的数据承载量分解为若干个待传送数据分片;
S53:将若干个待传送数据分片传输至U盘或移动磁盘设备;
S54: U盘或移动磁盘设备接收若干个待传送数据分片,并将若干个待传送数据分片组合还原成原始的待传送日志文件。
8.根据权利要求7所述的一种通过initramfs收集系统日志的方法,其特征在于,步骤S51之后还包括:
S501:当待传送日志文件的承载量小于第一承载量阈值,将该待传送日志文件设置为普通文件;
S502:将所述普通文件发送至U盘或移动磁盘设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810789886.0A CN108920215A (zh) | 2018-07-18 | 2018-07-18 | 一种通过initramfs收集系统日志的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810789886.0A CN108920215A (zh) | 2018-07-18 | 2018-07-18 | 一种通过initramfs收集系统日志的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108920215A true CN108920215A (zh) | 2018-11-30 |
Family
ID=64415830
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810789886.0A Pending CN108920215A (zh) | 2018-07-18 | 2018-07-18 | 一种通过initramfs收集系统日志的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108920215A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110162341A (zh) * | 2019-05-16 | 2019-08-23 | 济南浪潮高新科技投资发展有限公司 | 一种uefi引导系统的多启动系统及方法 |
CN112579256A (zh) * | 2020-12-14 | 2021-03-30 | 上海英方软件股份有限公司 | 一种linux迁移方法及装置 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102141955A (zh) * | 2011-03-30 | 2011-08-03 | 东方通信股份有限公司 | 一种基于Linux的内核日志系统及实现方法 |
CN102262543A (zh) * | 2010-05-25 | 2011-11-30 | 上海中标软件有限公司 | 抗掉电的Linux系统启动方法 |
CN102567051A (zh) * | 2011-12-14 | 2012-07-11 | 中标软件有限公司 | 一种制备龙芯平台图形化安装系统的方法及装置 |
CN102929747A (zh) * | 2012-11-05 | 2013-02-13 | 中标软件有限公司 | 基于龙芯服务器的Linux操作系统崩溃转储的处理方法 |
CN103378986A (zh) * | 2012-04-28 | 2013-10-30 | 鸿富锦精密工业(深圳)有限公司 | 系统事件日志记录系统及方法 |
CN104123300A (zh) * | 2013-04-26 | 2014-10-29 | 上海云人信息科技有限公司 | 数据分布式存储系统及方法 |
CN104239443A (zh) * | 2014-09-01 | 2014-12-24 | 英方软件(上海)有限公司 | 一种序列化数据操作日志的存储方法 |
CN105956172A (zh) * | 2016-05-23 | 2016-09-21 | 深圳市硅格半导体股份有限公司 | 日志信息的存储方法及装置 |
CN106227473A (zh) * | 2016-09-27 | 2016-12-14 | 天脉聚源(北京)传媒科技有限公司 | 一种将内存作为磁盘读写的实现方法和装置 |
CN106599320A (zh) * | 2016-12-30 | 2017-04-26 | 郑州云海信息技术有限公司 | 一种文件信息摘要值计算方法及装置 |
CN106603686A (zh) * | 2016-12-23 | 2017-04-26 | 郑州云海信息技术有限公司 | 一种基于分布式存储系统的文件传输方法 |
CN106709056A (zh) * | 2017-01-09 | 2017-05-24 | 郑州云海信息技术有限公司 | 一种nfs挂载目录导出方法及装置 |
CN108197008A (zh) * | 2018-01-31 | 2018-06-22 | 郑州云海信息技术有限公司 | 一种日志收集方法、系统、装置及计算机可读存储介质 |
-
2018
- 2018-07-18 CN CN201810789886.0A patent/CN108920215A/zh active Pending
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102262543A (zh) * | 2010-05-25 | 2011-11-30 | 上海中标软件有限公司 | 抗掉电的Linux系统启动方法 |
CN102141955A (zh) * | 2011-03-30 | 2011-08-03 | 东方通信股份有限公司 | 一种基于Linux的内核日志系统及实现方法 |
CN102567051A (zh) * | 2011-12-14 | 2012-07-11 | 中标软件有限公司 | 一种制备龙芯平台图形化安装系统的方法及装置 |
CN103378986A (zh) * | 2012-04-28 | 2013-10-30 | 鸿富锦精密工业(深圳)有限公司 | 系统事件日志记录系统及方法 |
CN102929747A (zh) * | 2012-11-05 | 2013-02-13 | 中标软件有限公司 | 基于龙芯服务器的Linux操作系统崩溃转储的处理方法 |
CN104123300A (zh) * | 2013-04-26 | 2014-10-29 | 上海云人信息科技有限公司 | 数据分布式存储系统及方法 |
CN104239443A (zh) * | 2014-09-01 | 2014-12-24 | 英方软件(上海)有限公司 | 一种序列化数据操作日志的存储方法 |
CN105956172A (zh) * | 2016-05-23 | 2016-09-21 | 深圳市硅格半导体股份有限公司 | 日志信息的存储方法及装置 |
CN106227473A (zh) * | 2016-09-27 | 2016-12-14 | 天脉聚源(北京)传媒科技有限公司 | 一种将内存作为磁盘读写的实现方法和装置 |
CN106603686A (zh) * | 2016-12-23 | 2017-04-26 | 郑州云海信息技术有限公司 | 一种基于分布式存储系统的文件传输方法 |
CN106599320A (zh) * | 2016-12-30 | 2017-04-26 | 郑州云海信息技术有限公司 | 一种文件信息摘要值计算方法及装置 |
CN106709056A (zh) * | 2017-01-09 | 2017-05-24 | 郑州云海信息技术有限公司 | 一种nfs挂载目录导出方法及装置 |
CN108197008A (zh) * | 2018-01-31 | 2018-06-22 | 郑州云海信息技术有限公司 | 一种日志收集方法、系统、装置及计算机可读存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110162341A (zh) * | 2019-05-16 | 2019-08-23 | 济南浪潮高新科技投资发展有限公司 | 一种uefi引导系统的多启动系统及方法 |
CN112579256A (zh) * | 2020-12-14 | 2021-03-30 | 上海英方软件股份有限公司 | 一种linux迁移方法及装置 |
CN112579256B (zh) * | 2020-12-14 | 2022-04-19 | 上海英方软件股份有限公司 | 一种linux迁移方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108614718B (zh) | 启动操作系统的方法、装置和实现装置 | |
US8495316B2 (en) | Efficient management of archival images of virtual machines having incremental snapshots | |
RU2446450C2 (ru) | Преобразование машин в виртуальные машины | |
US8312259B1 (en) | System and method for booting a computer from backup | |
CN102473089B (zh) | 用于双操作系统的文件系统 | |
US9454387B2 (en) | Method and system for installing portable executable applications | |
CN101014034A (zh) | 一种基于u盘服务器的集群解决方法 | |
EP3769224B1 (en) | Configurable recovery states | |
JP2012508932A (ja) | キャッシュデータおよびメタデータを管理すること | |
US20080117548A1 (en) | Storage Device And Storage System | |
US7711946B2 (en) | Method and apparatus for using filesystem operations to initiate device naming | |
US7200705B2 (en) | Method of checkpointing state of virtual memory for process | |
CN108920215A (zh) | 一种通过initramfs收集系统日志的方法 | |
US10459641B2 (en) | Efficient serialization of journal data | |
KR101303535B1 (ko) | 메인 메모리를 이용한 메모리 디스크 구성 방법 및 장치 | |
CN117591170B (zh) | 一种龙芯PMON平台支持基于OSTree系统的方法及装置、存储介质 | |
EP3769225B1 (en) | Free space pass-through | |
CN102591691B (zh) | 硬盘启动方法和基于bios的操作系统启动加载方法 | |
CN114448939B (zh) | 一种基于VirtualBox的获取宿主机IP地址的方法及后台服务器 | |
US11620136B2 (en) | Space snapshots | |
US6493806B1 (en) | Method and apparatus for generating a transportable physical level data block trace | |
KR100764875B1 (ko) | 플래시 메모리를 이용한 저전력환경을 위한 컴퓨터 시스템및 그 운영방법 | |
CN113535241B (zh) | 无盘启动方法、装置、终端设备和存储介质 | |
CN113495746B (zh) | 一种程序升级方法、装置、介质和电子设备 | |
KR20080026421A (ko) | 컴퓨터 시스템의 자동 관리 방법 및 그 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |