首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏若城技术专栏

    【linux命令讲解大全】067.文件查看与内核引导工具:hexdump和kexec

    ./ kexec 从当前正在运行的内核引导到一个新内核 补充说明 kexec命令是Linux内核的一个补丁,让您可以从当前正在运行的内核直接引导到一个新内核。 kexec的好处 要求高可用性的系统,以及需要不断重新启动系统的内核开发人员,都将受益于kexec。 因为kexec跳过了系统重新启动过程中最耗时的部分(也就是固件初始化硬件设备的阶段),所以重新启动变得非常快,可用性得到了提高。 语法 kexec(选项) 选项 -l:指定内核映像文件; -e:允许当前被加载的内核; -f:强制立即调用系统调用“kexec”,而不调用“shutdown”; -t:指定新内核的类型; -u:卸载当前的 kexec目标内核。

    33510编辑于 2024-03-02
  • 来自专栏皮振伟的专栏

    [linux][qemu]PVPanic的实现原理以及应用

    isa' iobase='0x505'/> </panic> config guest boot arguments and reboot guest : append “crash_kexec_post_notifiers panic on guest : #echo 1 > /proc/sys/kernel/sysrq #echo c > /proc/sysrq-trigger 5,about “crash_kexec_post_notifiers 代码选自linux-4.4,如果没有配置“crash_kexec_post_notifiers”,那么,配置了kdump的情况下,会发生kdump,不会再继续执行到panic_notifier_list 所以,需要在guest的boot args里面配置“crash_kexec_post_notifiers”确保带外可以监控到。

    3.2K30发布于 2018-12-07
  • 来自专栏云服务笔记

    CentOS 7.x 卸载 iptables 有风险,卸载后系统异常如何完美修复?

    iptables 后,一般不会在意输出信息,不好意思,你错过了重点,输出信息中包含了如下一段内容: 没想到吧.jpg 这里提示我们不仅卸载了 iptables 服务,同时还卸载了15个软件包,这包含了网卡驱动、kexec 1.4 M kbd x86_64 1.15.5-13.el7 @anaconda 1.3 M kexec-tools abrt-addon-vmcore abrt-cli abrt-console-notification dhclient dracut-network firewalld initscripts iproute kbd kexec-tools

    5.4K80发布于 2020-03-27
  • 来自专栏皮振伟的专栏

    [linux][qemu]PVPanic的缺陷和完善

    如果配置crash_kexec_post_notifiers,那么guest发生了kernel panic之后,会调用pvpanic的callback函数,就会写io port 0x505(默认地址), 所以,解决办法就是在pvpanic中增加新的逻辑: 如果没有加载kexec crash loaded,那么写原来的BIT 0。 如果加载了kexec crash loaded,那么写新定义的BIT 1。 ? 在qemu侧,对于pvpanic设备的BIT 0操作,还是维持原来的逻辑。

    2.4K20发布于 2020-02-25
  • 来自专栏人人都是极客

    Linux Kdump 机制详解

    fi 原理分析 kexec 实现了crash kernel 的加载。 核心分为两部分: kexec_file_load()/kexec_load() 负责在起始时就把备份的 kernel 和 initrd 加载好到内存。 在 kexec_tools 使用 kexec_file_load() 系统调用加载 crash kernel 时,就顺带把 /proc/vmcore 的 elf header 需要的大部分数据准备好了: kexec_file_load() → kimage_file_alloc_init() → kimage_file_prepare_segments() → arch_kexec_kernel_image_load () → __crash_kexec() → machine_kexec() 接收 elfheadr (运行在 crash kernel) 在 carsh kernel 中首先会接收到 normal kernel

    6.8K20编辑于 2022-05-30
  • 来自专栏虚拟化笔记

    如何优雅地编译kernel

    is not set # CONFIG_KEXEC_VERIFY_SIG is not set CONFIG_BLK_DEV_NBD=m 我经常用qemu-nbd修改镜像里内容,nbd模块是必需的。 sig会导致kexec加载内核不成功,我发现sig就是我的克星,不影响功能,懒得研究,一关了之。 kdumpctl: kdump: kexec: failed to load kdump kernel kdumpctl: kdump: Starting kdump: [FAILED] systemd /sbin/kexec -s -d -p '--command-line=BOOT_IMAGE=(hd0,msdos1)/vmlinuz-4.18.0-80.7.1.el8.x86_64 ro biosdevname el8.x86_64 lzma_decompress_file: read on /boot/vmlinuz-4.18.0-80.7.1.el8.x86_64 of 65536 bytes failed kexec_file_load

    1.6K10编辑于 2022-04-28
  • 来自专栏虚拟化笔记

    如何优雅地编译kernel

    is not set # CONFIG_KEXEC_VERIFY_SIG is not set CONFIG_BLK_DEV_NBD=m 我经常用qemu-nbd修改镜像里内容,nbd模块是必需的。 sig会导致kexec加载内核不成功,我发现sig就是我的克星,不影响功能,懒得研究,一关了之。 kdumpctl: kdump: kexec: failed to load kdump kernel kdumpctl: kdump: Starting kdump: [FAILED] systemd /sbin/kexec -s -d -p '--command-line=BOOT_IMAGE=(hd0,msdos1)/vmlinuz-4.18.0-80.7.1.el8.x86_64 ro biosdevname el8.x86_64 lzma_decompress_file: read on /boot/vmlinuz-4.18.0-80.7.1.el8.x86_64 of 65536 bytes failed kexec_file_load

    1.3K00发布于 2021-07-08
  • 来自专栏Linux问题笔记

    云服务器 virtblk_ioctl gpf 内核crash问题分析

    crash> btPID: 1370 TASK: ffff922804b441c0 CPU: 1 COMMAND: "fdisk" #0 [ffff9226746dbae8] machine_kexec at ffffffffba265b24 #1 [ffff9226746dbb48] __crash_kexec at ffffffffba322342 #2 [ffff9226746dbc18] crash_kexec at ffffffffba322430 #3 [ffff9226746dbc30] oops_end at ffffffffba985798 #4 [ffff9226746dbc58

    1.2K30编辑于 2022-08-10
  • 来自专栏linux驱动个人学习

    kdump

    下面的代码就是在源码kernel/panic.c文件中的panic函数的部分 其实真正的跳转的函数在__crash_kexec里面的,让我们来看看__crash_kexec这个函数的乾坤吧: 在这个函数里面 ,主要讲讲的就是machine_kexec: 进入这个函数,在x86的机器下,会执行一个叫做relocate_kernel的函数,这个函数就是执行一个.S文件 (这是一个汇编代码),在这里完成跳转到crash

    1.2K10编辑于 2023-05-31
  • 来自专栏Linux问题笔记

    云服务器 virtblk_ioctl gpf 内核crash问题分析

    crash> btPID: 1370 TASK: ffff922804b441c0 CPU: 1 COMMAND: "fdisk" #0 [ffff9226746dbae8] machine_kexec at ffffffffba265b24 #1 [ffff9226746dbb48] __crash_kexec at ffffffffba322342 #2 [ffff9226746dbc18] crash_kexec at ffffffffba322430 #3 [ffff9226746dbc30] oops_end at ffffffffba985798 #4 [ffff9226746dbc58

    1.2K30编辑于 2022-11-03
  • 来自专栏用户8156813的专栏

    Linux crash分析简明参考

    环境下的安装首先确认当前系统中是否已经安装过kdump.可以运行如下命令确认kdump服务是否已进有了:systemctl status kdump.service.如果没有,则按照如下步骤安装:1) 安装kexec-tools 执行如下命令:yum install kexec-tools2) 设置crashkernel预留内存大小 vim /etc/default/grub找到“GRUB_CMDLINE_LINUX”这一行,对其中的 如果没有安装,可以参考如下步骤:1) 安装kdump工具sudo apt install linux-crashdump 安装过程中会有一些选项要你确认.2) 修改配置文件修改 /etc/default/kexec ,设置LOAD_KEXEC=true修改/etc/default/kdump-tools,设置USE_KDUMP=13) 验证kdump功能运行如下测试命令验证,同样需要注意的是这将触发重启.sudo

    3.3K00编辑于 2023-12-03
  • 来自专栏东风微鸣技术博客

    如何实现Linux服务Crash后自动重启?

    reboot-immediate, poweroff, poweroff-force, poweroff-immediate, exit, exit-force, soft-reboot, soft-reboot-force, kexec , kexec-force, halt, halt-force 和 halt-immediate.

    2.5K40编辑于 2023-09-01
  • 来自专栏程序员菜谱

    Systemd-服务启动顺序

    v systemd-reboot.service systemd-poweroff.service systemd-halt.service systemd-kexec.service v reboot.target poweroff.target halt.target kexec.target

    15K130发布于 2021-03-12
  • 来自专栏For XX - 专注于技术本身

    笔记本安装Linux按下关机按钮、合上盖子等操作阻止电脑休眠

    kexec 不懂 suspend 待机 hibernate 进入休眠(内存数据存入硬盘,关闭电源) hybrid-sleep 混合睡眠=睡眠+休眠,主要是为台式机设计的,内存和CPU还是活的。

    1.7K20编辑于 2022-06-10
  • 来自专栏深度学习与python

    字节跳动提出 KVM 内核热升级方案,效率提升 5.25 倍

    改进一:通过在 hypervisor 中引入必要的静态页面分配,保证 kexec 重启过程中的状态保持。 静态分配主要有用户态和内核态两部分工作。 -device vfio-pci,addr=06.0,host={dev} 然后,通过 cpr-save -> kexec -> 启动 qemu -> restore 的流程来热升级整个 L1。 相比之下,如果用内核和 QEMU 的主线版本来执行上面的流程,可以采用 savevm 到磁盘后 kexec 重启并 loadvm 的步骤。 此外,在 Virtio 设备标准,QEMU 热升级,Linux 启动时间,io_uring,kexec 等方面,团队也进行了深入的研究和优化。我们将会在本文和后续文章中持续分享相关技术和最新进展。

    1.4K20编辑于 2022-11-28
  • 来自专栏运维开发王义杰

    Linux: 深入探讨KDUMP,内核崩溃调试利器

    一、KDUMP的工作原理 KDUMP利用了kexec机制,它允许在内核崩溃后直接加载并运行一个新的内核,而无需通过BIOS或固件重新引导系统。 系统崩溃时切换内核:当主内核发生崩溃时,通过kexec机制加载并启动预先配置的崩溃内核。 安装KDUMP工具 在大多数Linux发行版中,KDUMP工具可以通过包管理器安装,例如在CentOS或RHEL中: bash sudo yum install kexec-tools 2.

    2.9K20编辑于 2024-06-26
  • 来自专栏cloudskyme

    vmware安装ubuntu12.04嵌套安装xen server(实现嵌套虚拟化)

    libpci-dev libsdl-dev python-dev texinfo libc6-dev uuid-dev bison flex fakeroot build-essential crash kexec-tools

    1.5K51发布于 2018-03-20
  • 来自专栏全栈程序员必看

    用vmware安装ubuntu_vmware安装ubuntu黑屏

    libpci-dev libsdl-dev python-dev texinfo libc6-dev uuid-dev bison flex fakeroot build-essential crash kexec-tools

    1.2K20编辑于 2022-11-11
  • 来自专栏笔记+

    crash分析rw_semaphore引发的系统hung问题

    bt PID: 89 TASK: ffff8801745ceeb0 CPU: 3 COMMAND: "khungtaskd" #0 [ffff8807ff4ffcb0] machine_kexec at ffffffff8105c52b #1 [ffff8807ff4ffd98] __crash_kexec at ffffffff81104adf #2 [ffff8807ff4ffea8]

    3.3K110发布于 2020-05-09
  • 来自专栏Mr.Wang

    Redpower服务器安装debian系统遇到的问题

    /dev/sdb/install initrd.gz vmlinux "这两个文件是引导文件" ~bash$ cd /var/petitboot/mnt/dev/sdb/install ~bash$ kexec

    76420编辑于 2023-03-13
领券