zoukankan      html  css  js  c++  java
  • Can't find kernel text map area from kcore

    kernel : 4.9.51
    kexec-tools : 2.0.4

    1.~ # ./kexec -p /boot/vmlinuz --initrd=/boot/initrd --command-line="`cat /proc/cmdline` irqpoll maxcpus=1 reset_devices"
    Unhandled rela relocation: R_X86_64_31
    原因:
        #x86_64
        export CFLAGS=-fPIC

    2. # /sbin/kexec -p /boot/vmlinuz --initrd=/boot/initrd --command-line="`cat /proc/cmdline` irqpoll maxcpus=1 reset_devices"
        
    Can't find kernel text map area from kcore
    Cannot load /boot/vmlinuz

     kexec-tools fixes for 4.9+ kernels

    Current fc25 kernel version is v4.10.

    4.9+ kernel has phys_base virtual address in vmcoreinfo rather it's
    symbol address. Therefore, backport makedumpfile patch "Adapt code to
    get value of phys_base"

    While doing that, also backport "kexec-tools/x86:
    get_kernel_vaddr_and_size off-by-one fix" to fix following with kexec
    -p:
     "Can't find kernel text map area from kcore"

    v4.11 kernel will have another fix for kcore ( 464920104bf7 /proc/kcore:
    update physical address for kcore ram and text)which allows only valid
    physical address to pass in PT_LOAD.With that fix in kernel, kexec-tools
    may not work always until we backport "build_mem_phdrs(): check if
    p_paddr is invalid" from kexec-tools. Since there does not seem any side
    effect of taking that kexec-tools commit even for v4.10 because
    "phdr->p_paddr != (unsigned long long)-1" will always be TRUE for them,
    therefore we take that kexec-tools patch as well.
    https://github.com/pratyushanand/kexec-tools/commit/2c8ce09f420fb0f1c3b4d700dc00f3a4ffbf94f5


    解法:升级到kexec-tools-2.0.15


  • 相关阅读:
    初识Kafka
    初学Linux (Linux_note)
    Zookeeper_ACL
    Zookeeper简单配置
    getWindow().setFlags
    设置session失效时间
    Android开发者必知的5个开源库
    oracle A用户访问B用户的表aa
    oracle 根据约束名查表名
    java ftp上载下传 遇到的问题
  • 原文地址:https://www.cnblogs.com/mull/p/7803798.html
Copyright © 2011-2022 走看看