自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 linux kexec快速替换内核

暂时只记录过程,代码还在研究中概述kexec替换内核,能够在不硬重启系统(不重新初始化硬件等)的情况下重启内核,并完成内核替换。适用于升级内核、软件修复补丁等需要重启的情况方法编译新内核,生成vmlinuz下载内核,如下命令编译出内核模块 make menuconfig make make modules_install在代码目录arch/xxx/boot下找到bzImage,这就是压缩后的新内核vmlinux,即vmlinuz。将其放到/boot目录下,命名为新内核版本。如mv bz

2021-06-04 11:04:09 634

原创 Crash实用调试命令

准备对应内核版本vmlinux:下载kernel-debuginfo-xxx,安装后,位于/usr/lib/debug/lib/modules/$(uname -r)/vmlinux系统产生的vmcore查看vmcorecrash /usr/lib/debug/lib/modules/$(uname -r)/vmlinux vmcore调试命令查看crash堆栈:bt查看系统日志:log反汇编代码:dis -l function_name查看某个地址的值:rd address查看某个

2021-04-13 16:04:48 1428

原创 Linux kernel rpm包升级,搭建编译环境

1.推荐网址rpm.pbone.net2.需要准备的包(以升级到4.18.0-240.1.1.el8_3为准)kernel-4.18.0-240.1.1.el8_3.x86_64.rpmkernel-core-4.18.0-240.1.1.el8_3.x86_64.rpmkernel-devel-4.18.0-240.1.1.el8_3.x86_64.rpmkernel-modules-4.18.0-240.1.1.el8_3.x86_64.rpm3.安装顺序rpm -ivh kernel

2021-03-24 11:30:02 1703 5

原创 Centos虚机进入单用户模式修复文件系统与重置密码

虚机使用中能够经常遇到报错提示文件系统损坏需要修复,这里记录一下进入单用户模式修复的方法。修改内核启动参数引导界面,选择内核,按e进入编辑模式,找到启动参数那一行(一般是linux开头那一行),做如下修改。这里的修改都是临时修改仅限本次启动生效。1.修改其中的ro为rw init=/sysroot/bin/ssh2.如果系统在启动进单用户模式时卡住了,那么还要去掉console有关的参数(串口与重定向)console=tty0 console=ttyS0,115200n83.ctrl+x

2020-12-11 14:50:54 2235

原创 CVE-2020-15778 openssh漏洞修复

漏洞描述https://access.redhat.com/security/cve/cve-2020-15778简单来说,就是scp命令是可以注入特殊字段,在目标主机上执行指令的。原理是因为scp是通过ssh实现的,一样的需要用户名和密码才能登陆。也就是说,这个漏洞其实针对的是那些禁用了ssh但是没禁用scp的主机,针对这些主机,可以从外部通过scp实现和ssh一样的功能。漏洞修复方案1.升级到openssh-8.4以上的版本(要求操作系统版本在centos 8及以上)2.禁用scp命令m

2020-12-11 14:16:53 6857 4

原创 如何生成rpm包

从src.rpm生成rpm包src.rpm是rpm的源码包。有时候遇到rpm在环境上无法使用的情况(比如要在centos 7的环境上安装openssh 8.4的版本),需要在环境上重新编译rpm包。步骤:1.rpm -ivh xxx.src.rpm会在root目录下生成一个rpmbuild目录2.进入rpmbuild/SPECS目录,执行rpmbuild -ba xxx.spec如果没有rpmbuild命令需要安装下面的包yum install -y rpm-build3.执行完后产生的二

2020-11-26 10:45:13 1050

原创 linux centos系统启动失败:VFS:Unable to mount root fs on unknown-block

最近遇到了一次虚机系统启动失败,提示错误如图:根据字面意思,根目录的文件系统出问题了,无法挂载,导致系统无法启动。尝试了两个方法:1.将这个盘挂载到别的机器上通过fsck/xfs_repair修复。没有成功,再从这个盘启动报的一样的错误2.有可能是内核出现了问题。这种情形一般出现于更新内核/执行yum update的过程中出现了某些错误。这时候需要重新生成initframs生成initframs准备材料:centos标准镜像。这里用的是CentOS-7-x86_64-DVD-1908.iso

2020-08-24 12:08:27 8755 2

原创 logrotate设置日志转储

在不设置转储的情况下,日志文件会越来越大,随着时间积累甚至会达到数G。这时候需要设置日志转储。logrotate会根据已有的配置文件,在文件的大小超过了规定值时,将当前的日志文件做压缩,同时删除最老的文件新增/修改需要设置转储logrotate的所有配置文件都在/etc/logrotate.d目录下一个常见的文件格式:"/var/log/syslog""/var/log/user.log"{ # truncate file, do not delete & recreate co

2020-07-13 20:32:12 1044

原创 linux下修改dns server与host name:/etc/resolv.conf与/etc/hosts

dns server是域名解析服务器,能够将域名(比如www.baidu.com)解析成真正的IP,在/etc/resolv.conf下可以看到当前设置的nameserver[root@localhost ~]# cat /etc/resolv.conf# Generated by NetworkManagernameserver 114.114.114.114nameserver 8.8.8.8/etc/hosts记录的是ip与hostname的对应关系,相当于给对应的ip起了别名。比如根据

2020-06-11 12:33:13 1459

原创 NTP调整系统时间同步

使用ntp可以将节点和服务器之间的时间同步。同步的是系统时间(即date命令查看)。详细介绍参考http://doc.ntp.org/4.1.0/ntpd.htm配置ntp server配置了ntp server后,client端才能和server端同步配置文件路径是/etc/ntp.conf在其中添加server ntp.ntsc.ac.cn preferserver 127.0.0.1可以添加多个server,这样在其中一个server不能联通时会去跟别的server同步。加上prefe

2020-05-27 19:41:33 5372 1

原创 ubuntu下qemu创建arm虚拟机、uefi shell启动系统并与物理机通信

因为个人需要,搭建了一台arm仿真的虚拟机。具体细节和原理可以网上搜索,这里仅记录过程qemu创建虚拟机1.下载镜像(用于安装系统),下载QEMU_EFI.fd(用于引导启动操作系统,地址http://releases.linaro.org/components/kernel/uefi-linaro/16.02/release/qemu64/)2.创建虚拟盘,这里选择的qocw2格式,名称是...

2020-04-03 14:38:19 3927 1

原创 valgrind安装与使用

valgrind是一款可用于检测内存、分析函数调用的程序,程序内部可以仿真模拟指定的进程。下载与安装http://valgrind.org/downloads/current.html下载source code后,参照目录下的README文件安装:./configure --prefix=安装路径(只可用绝对路径,安装后不要手动移动目录)makemake install成功安装后,...

2020-03-10 20:37:32 1433

原创 systemtab语法与使用方法

systemtab是Linux下可用的内核探测与调试工具,可以自定义想要检测的函数,输出调试打印。编译与运行编译可执行模块:stap systemtab_script -m modulesystemtab_script:自己写的systemtab脚本module:生成的内核ko模块名编译后,会将写好的脚本编译成内核Ko执行生成的内核ko:staprun module.ko语法#...

2020-03-09 10:56:42 546

原创 linux watchdog驱动工作原理

无论硬件watchdog还是由软件模拟的硬件watchdog,最终都是管理的/dev/watchdog文件。Linux内核自身有watchdog驱动的实现,其主要代码在drivers/watchdog下。其工作的大概流程是,先注册watchdog驱动,系统通过start启动/dev/watchdog设备后,由定时的ping来保证喂狗,如果在timeout时间内检测到都没有喂狗的话,就会系统复位修复...

2020-03-02 15:35:32 1670

原创 linux 内核watchdog机制

Watchdog,是内核用于检测系统CPU是否锁死的机制。一旦检测到系统CPU出现锁死的情况,watchdog会主动触发系统复位。常见的CPU锁死的情况分为soft-lockup与hard-lockup,分别对应的是线程在CPU上一直得不到调度与中断在系统中得不到响应。Soft-lockupSoft-lockup的检测原理,是内核会在每个CPU上注册一个watchdog线程,这个线程会由内核的...

2020-02-28 14:54:54 2011

原创 WINDOWS与LINUX下生成并管理ssh key的方法

ssh key可以用于管理git上的仓库或是用于连接远程服务器时用于做校验。通过在本地生成一对公钥私钥,由远端保存公钥,在向远端发出连接请求时,通过校验公钥私钥是否配对来认证。WINDOWS生成ssh key的方法Windows下的ssh key默认存在在 C:\user\你的名字\.ssh下。首先需要下载git。网址(https://git-scm.com/downloads)。下载...

2020-02-04 15:45:32 728

原创 LINUX下创建新的硬盘分区

LINUX下创建新的硬盘分区fdisk 查看分区,其中的/dev/sda有空闲存储空间没有使用新建分区fdisk /dev/sda进入命令模式,输入n添加新的分区。可以选择主分区、扩展分区以及新分区的大小。创建完成后输入w保存变更再次使用fdisk查看分区,可以看到/dev/sda下有个新分区了此时新分区还不能使用,需要格式化并挂载到系统中格式化分区 mkfs -t ext4 /...

2020-02-04 11:21:19 4078

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除