當前位置:首頁 » 編程軟體 » kdump內核編譯配置

kdump內核編譯配置

發布時間: 2022-08-06 21:37:45

㈠ 在linux中,如沒有足夠內存配置kmp,會出現什麼情況

kmp是在系統崩潰、死鎖或者死機的時候用來轉儲內存運行參數的一個工具和服務,打個比方,如果系統一旦崩潰那麼正常的內核就沒有辦法工作了,在這個時候將由kmp產生一個用於capture當前運行信息的內核,該內核會將此時的內存中的所有運行狀態和數據信息收集到一個mp core文件中以便於Red Hat工程師分析崩潰原因,一旦內存信息收集完成,系統將自動重啟。這和以前的diskmp,netmp是同樣道理。只不過kmp是RHEL5特有的。

所以這個系統沒有足夠的內存分配給進程了可能會導致kmp,kmp本身是不需要分配內存的。

㈡ Kmp 在linux系統中是什麼意思 具體做什麼用

kmp是在系統崩潰、死鎖或者死機的時候用來轉儲內存運行參數的一個工具和服務。
打個比方,如果系統一旦崩潰那麼正常的內核就沒有辦法工作了,在這個時候將由kmp產生一個用於capture當前運行信息的內核,該內核會將此時的內存中的所有運行狀態和數據信息收集到一個mp
core文件中以便於RedHat工程師分析崩潰原因,一旦內存信息收集完成,系統將自動重啟。這和以前的diskmp,netmp是同樣道理。只不過kmp是RHEL6特有的。
查看Linux系統是否打開kmp:
執行命令:ulimit -c 如果輸出為 0 ,則代表沒有打開。如果為unlimited則已經打開。
臨時打開/關閉Linux的Kmp方法:
ulimit-c unlimited 打開;
ulimit-c 0 關閉;
修改配置文件進行打開/關閉kmp方法:
1.vi/ect/profile文件在文件末尾加入新行,ulimit-s-c unlimited>/dev/null 2>&1
2.保存退出:wq!
3.執行source/etc/profile 使當期設置生效
4.通過ulimit-c 查看下是否已經成功打開。

㈢ 在Linux開啟kmp轉儲機制後,在內核崩潰時kmp會轉儲哪些有用的信息

主要是注冊內部數據和管理賬戶的數據 其他估計重啟之後系統將會自動檢測數據是否發生錯誤

㈣ virtualbox里的linux在啟動的時候提示說memory for crash kernel(0*0 to 0*0)notwithin permissible range

解決辦法:
這個信息由於沒有配置kmp服務的原因,並沒有什麼危害可以忽略。
kmp是一個新的,而且非常可信賴的內核崩潰轉儲機制。崩潰轉儲數據可以從一個新啟動的內核的上下文中獲取,而不是從已經崩潰的內核的上下文。當系統崩潰時,kmp使用kexec啟動到第二個內核。第二個內核通常叫做捕獲內核(capture kernel),以很小內存啟動,並且捕獲轉儲鏡像。

方法一,在圖形模式下配置:
我們可以採用下面的圖形界面進行配置和啟用,步驟如下:
----配置kmp。
選擇菜單「Applications」——「system tools」——「kmp」,彈出「Kernel Dump Configuration」窗口,選中Enable kmp,設置New kmp Memory(MB): 128MB(推薦大小)
----重新啟動系統。

方法二: 編輯/etc/grub.conf,在內核行的末尾添加 [email protected]
舉例:
kernel /boot/vmlinuz-2.6.17-1.2519.4.21.el5 ro root=LABEL=/ rhgb quiet [email protected]
修改之後,重啟系統。128M內存(從16M開始)不被正常的系統使用,為捕獲內核保留。
現在,保留內存已經設置了,打開kmp初始腳本,啟動服務:
# chkconfig kmp on
# service kmp start

試試以上的方法,不行的話,再跟問!!!

㈤ kmp如何配置使用呀

linux的不知道,WINDOWS的知道。。。。

㈥ linux下的root,bin, cdrom,etc,initrd,lib分別主要放哪些文件的啊

總體的,不好歸類的

/media 用來掛載usb存儲設備,DVD, CD-ROM等
/mnt 用來臨時掛載文件系統,可插拔的設備應該掛載到/media上去
/home 除root之外的用戶目錄的默認所在地
/root root用戶目錄
/bin 最常用的命令
/sbin 系統管理員使用的命令(sbin=system bin)
/usr/local 使用源碼安裝的話,一般把prefix目錄指定到這里,如/usr/local/ruby
/usr/share/applications desktop文件是桌面的菜單項
~/.gnome*,~/.gconf* gnome面板的個人配置信息,當gnome面板亂了,可以嘗試刪除這些文件來恢復默認面板

/boot目錄,kernel相關部分

/boot/symvers-%{KRELEASE}.gz 保存著內核中所有符號的crc值
/boot/System.map-%{KRELEASE} 給kernel使用的符號表(symbol table)
/boot/vmlinuz-%{KRELEASE} 可引導的、壓縮的內核
/boot/initrd-%{KRELEASE}.img 包含了支持 Linux 系統兩階段引導過程所需要的必要可執行程序和系統文件
/boot/config-%{KRELEASE} 包括kernel的make config
/boot/message cpio格式的打包文件,存放Grub的配置信息,裡麵包括了圖片,文字說明等內容
/boot目錄,grub配置

/boot/grub/menu.lst 一個鏈接文件,真實文件是grub.conf
/boot/grub/grub.conf grub的配置文件
/boot/grub/device.map 設備的映射文件
/boot/grub/splash.xpm.gz grub開機畫面的gzip壓縮包
/boot/grub/stageN 一般有stage1和stage2,是grub的核心,受限於mbr512位元組的大小限制,所以切開成幾個,stage1是用來載入stage2的
/boot/grub/XXX_stage1_5 stage2文件較大,一般存放於文件系統中,需要XXX_stage1_5來識別各種各樣的文件系統
/etc目錄,系統用戶/用戶組

/etc/passwd 存放所有系統用戶及相關信息
/etc/shadow 存放所有系統用戶的密碼信息
/etc/group 存放所有系統用戶組及相關信息
/etc/gshadow 存放所有系統用戶組的密碼信息
/etc目錄,系統啟動流程相關

/etc/issue 發行版信息
/etc/redhat-release redhat版本信息

/etc/inittab 系統初始化配置
/etc/init.d 存放服務腳本的地方
/etc/rc[0-6S].d 每個運行級別對應的服務,里邊的腳本都是鏈接到/etc/init.d目錄
/etc/rc rc啟動腳本
/etc/rc.local 在所有init腳本結束後調用
/etc/rc.sysinit 在系統啟動時運行一次
/etc/profile 環境變數配置
/etc/profile.d 保存一些腳本,可在/etc/profile中調用
~/.bash_profile 針對某個用戶的配置,會調用.bash_rc
~/.bashrc 針對某個用戶的配置,會調用/etc/bashrc
/etc/bashrc 使用bash時,可設置全局環境配置
~/.bash_history 命令的歷史記錄
~/.bash_logout 用戶退出時執行
/etc/xinetd.conf xinetd的配置文件
/etc/xinetd.d 存放xinetd服務的地方
/etc目錄,基本應用配置相關

/etc/skel 存放用戶文件的「骨架」,當一個用戶創建的時候,里邊的文件就會拷貝到相應的home目錄
/etc/X11 存放X Window的系統配置文件,例如xorg.conf
/etc/DIR_COLORS ls的時候,文件/文件夾顯示的顏色
/etc/mtab 記錄目前掛載的文件系統信息
/etc/fastboot 由shutdown -f 所產生的 ,在重啟之後, 系統會去檢查這個文件是否存在以決定是否要執行fsck
/etc/nologin 系統關閉的時候自動產生,里邊放著shutdown message。在這個時候如果有用戶企圖登錄,就會列印出這個文件存放的message,然後阻止你登錄
/etc/fstab 默認的文件系統掛載情況
/etc/virc vi的配置

/etc/vimrc vim的配置

/etc/wgetrc wget的配置
/etc/yum.conf yum的配置

/etc/yum.repos.d yum源的存放位置
/etc/kmp.conf kmp內核的配置文件

/etc/my.cnf mysql的配置文件

/etc/ssh ssh的配置文件目錄,重要的有sshd_config

/etc/syslog.conf syslog的配置文件

/etc/updatedb.conf updatedb的配置文件

/etc/mtools.conf mtools配置,用於在*UNIX系統中直接訪問dos/win文件系統
/etc/sysctl.conf sysctl預載入的配置文件
/etc/moprobe.conf modprobe的配置文件
/etc/ld.so.conf 載入動態鏈接庫的配置文件,默認會載入ld.so.conf.d里邊的配置
/etc/ld.so.conf.d 存放動態鏈接庫的配置文件
/etc/ld.so.cache 動態鏈接庫的緩存,二進制文件,可以通過ldconfig --print-cache查看
/etc/services 網路服務列表(服務名,埠,協議等)
/etc目錄,域名解析,主機訪問控制

/etc/host.conf 定義DNS客戶端主機發出域名解析的處理順序,默認是先查看/etc/hosts文件,再發送遠程請求
/etc/hosts 自定義ip-域名解析
/etc/resolv.conf DNS伺服器地址
/etc/hosts.allow 和hosts.deny一起用來作為tcpd伺服器的配置文件,tcpd伺服器可以控制外部IP對本機服務的訪問。hosts.allow控制可以訪問本機的IP地址
/etc/hosts.deny 控制禁止訪問本機的IP。如果和hosts.allow的配置有沖突,以hosts.deny為准
/etc目錄,定時任務控制

/etc/crontab cron任務的配置文件,一般在里邊配置有cron.hourly,cron.daily,cron.weekly和cron.monthly
/etc/cron.d 如果你要在特殊的時間使用crontab,可以把配置放到文件夾里邊,配置的格式和/etc/crontab一樣
/etc /cron.daily 每天定時任務
/etc/cron.hourly 每小時定時任務
/etc/cron.monthly 每月定時任務
/etc/cron.weekly 每星期定時任務
/etc/cron.allow 指定那些用戶可以使用crontab
/etc/cron.deny 指定哪些用戶禁止使用crontab,如果文件存在且為空,所有人都可以使用,如果文件不存在,那麼只有root可以使用
/etc/at.allow 指定那些用戶可以使用at
/etc/at.deny 指定哪些用戶禁止使用at,如果文件存在且為空,所有人都可以使用,如果文件不存在,那麼只有root可以使用
/dev目錄 硬體設備信息
/dev/hd[a-z] 第幾個IDE硬碟
/dev/tty[0-9] 第幾個虛擬控制台
/dev/sd[a-z] 第幾個SCSI或SATA硬碟
/dev/zero 一個無窮盡地提 供0(NULL)的設備,可以用來初始化文件
/dev/null 一個空設備,可以向它輸出任何數據,而任何寫入它的輸出都會被拋棄。如果不想讓消息以標准輸出顯示或寫入文件,那麼可以將消息重定向到位桶
/dev/stderr 鏈接文件,指向/proc/self/fd/2(標准錯誤)
/dev/stdin 鏈接文件,指向/proc/self/fd/0(標准輸入)
/dev/stdout 鏈接文件,指向/proc/self/fd/1(標准輸出)
/dev/console 系統控制台,也就是直接和系統連接的監視器。如果你用cat查看該設備,並敲入一些內容,可以看到在屏幕上回顯
/dev/fd[0-9] 第幾個軟碟機設備
/dev/st SCSI磁帶驅動器
/dev/pty 提供遠程登陸偽終端支持。在進行Telnet登錄時就要用到該設備
/dev/ttys 計算機串列介面,對於DOS來說就是com1口

/dev/cua 計算機串列介面,與數據機一起使用的設備
/proc目錄 虛擬文件系統

/proc/apm Advanced Power Management(APM)系統信息,與apm命令相關
/proc/buddyinfo 每個內存區中的每個order有多少塊可用,和內存碎片問題有關
/proc/cmdline 啟動時傳遞給kernel的參數信息
/proc/cpuinfo cpu的信息
/proc/crypto 內核使用的所有已安裝的加密密碼及細節
/proc/devices 已經載入的設備並分類
/proc/dma 已注冊使用的ISA DMA頻道列表
/proc/execdomains Linux內核當前支持的execution domains
/proc/fb 幀緩沖設備列表,包括數量和控制它的驅動
/proc/filesystems 內核當前支持的文件系統類型
/proc/interrupts x86架構中的每個IRQ中斷數
/proc/iomem 每個物理設備當前在系統內存中的映射
/proc/ioports 一個設備的輸入輸出所使用的注冊埠范圍
/proc/kcore 代表系統的物理內存,存儲為核心文件格式,里邊顯示的是位元組數,等於RAM大小加上4kb
/proc/kmsg 記錄內核生成的信息,可以通過/sbin/klogd或/bin/dmesg來處理
/proc/loadavg 根據過去一段時間內CPU和IO的狀態得出的負載狀態,與uptime命令有關
/proc/locks 內核鎖住的文件列表
/proc/mdstat 多硬碟,RAID配置信息(md=multiple disks)
/proc/meminfo RAM使用的相關信息
/proc/misc 其他的主要設備(設備號為10)上注冊的驅動
/proc/moles 所有載入到內核的模塊列表
/proc/mounts 系統中使用的所有掛載
/proc/mtrr 系統使用的Memory Type Range Registers (MTRRs)
/proc/partitions 分區中的塊分配信息
/proc/pci 系統中的PCI設備列表
/proc/slabinfo 系統中所有活動的 slab 緩存信息
/proc/stat 所有的CPU活動信息
/proc/sysrq-trigger 使用echo命令來寫這個文件的時候,遠程root用戶可以執行大多數的系統請求關鍵命令,就好像在本地終端執行一樣。要寫入這個文件,需要把/proc/sys/kernel/sysrq不能設置為0。這個文件對root也是不可讀的
/proc/uptime 系統已經運行了多久
/proc/swaps 交換空間的使用情況
/proc/version Linux內核版本和gcc版本
/proc/bus 系統匯流排(Bus)信息,例如pci/usb等

/proc/driver 驅動信息
/proc/fs 文件系統信息
/proc/ide ide設備信息
/proc/irq 中斷請求設備信息
/proc/net 網卡設備信息
/proc/scsi scsi設備信息
/proc/tty tty設備信息
/proc/net/dev 顯示網路適配器及統計信息
/proc/vmstat 虛擬內存統計信息
/proc/vmcore 內核panic時的內存映像
/proc/diskstats 取得磁碟信息
/proc/schedstat kernel調度器的統計信息

/proc/zoneinfo 顯示內存空間的統計信息,對分析虛擬內存行為很有用

/proc目錄, 進程N的信息

/proc/N pid為N的進程信息
/proc/N/cmdline 進程啟動命令
/proc/N/cwd 鏈接到進程當前工作目錄
/proc/N/environ 進程環境變數列表
/proc/N/exe 鏈接到進程的執行命令文件
/proc/N/fd 包含進程相關的所有的文件描述符
/proc/N/maps 與進程相關的內存映射信息
/proc/N/mem 指代進程持有的內存,不可讀
/proc/N/root 鏈接到進程的根目錄
/proc/N/stat 進程的狀態
/proc/N/statm 進程使用的內存的狀態
/proc/N/status 進程狀態信息,比stat/statm更具可讀性
/proc/self 鏈接到當前正在運行的進程
/var目錄 存放經常變化數據的地方

/var/lib/rpm 存放大多數rpm相關的文件
/var/cache/yum yum升級時下載的rpm文件的臨時存放地,還包括系統中rpm包的頭信息
/var/spool/cron/$username 每個用戶自定義的cron任務,可以使用crontab或vi來操作
/var/lock 一般用來存放文件鎖

/var/log 一般用來存放日誌文件
/var/run 一般用來存放pid文件
/var/crash 一般是存放系統崩潰時產生的信息

/var/cache 一般用來存放緩存信息,例如yum package的緩存

/etc/sysconfig目錄 系統基本配置

/etc/sysconfig/amd 為amd提供操作參數,用來自動mount/unmount文件系統
/etc/sysconfig/apmd 由apmd使用來配置電源設置

/etc/sysconfig/arpwatch 在啟動的時候傳遞給arpwatch守護進程的參數
/etc/sysconfig/authconfig 設置主機使用的驗證方式
/etc/sysconfig/autofs 自動掛載設備的自定義選項
/etc/sysconfig/clock 系統硬體時鍾的設置
/etc/sysconfig/desktop 設置新用戶的桌面和進入運行級別5所使用的顯示管理器
/etc/sysconfig/dhcpd 在啟動的時候傳遞給dhcpd守護進程的參數
/etc/sysconfig/gpm 在啟動的時候傳遞給gpm守護進程的參數
/etc/sysconfig/hwconf 列出kudzu檢測到的所有硬體
/etc/sysconfig/i18n 默認系統語言,系統支持的所有語言,默認系統字體
/etc/sysconfig/init 系統啟動時的顯示方式
/etc/sysconfig/ip6tables-config 在系統啟動或者ip6tables服務啟動時,內核用來設置IPv6包過濾

/etc/sysconfig/iptables-config 在系統啟動或者iptables服務啟動時,內核用來設置包過濾
/etc/sysconfig/keyboard 控制鍵盤的行為
/etc/sysconfig/kudzu 在啟動的時候通過kudzu觸發一次安全的系統硬體探查
/etc/sysconfig/named 在啟動的時候傳遞給named守護進程的參數
/etc/sysconfig/netmp netmp服務的配置文件
/etc/sysconfig/network 網路的配置信息
/etc/sysconfig/ntpd 在啟動的時候傳遞給ntpd守護進程的參數
/etc/sysconfig/radvd 在啟動的時候傳遞給radvd守護進程的參數
/etc/sysconfig/samba 在啟動的時候傳遞給smbd/nmbd守護進程的參數
/etc/sysconfig/selinux selinux的基本控制選項
/etc/sysconfig/spamassassin 在啟動的時候傳遞給spamd守護進程的參數
/etc/sysconfig/squid 在啟動的時候傳遞給squid守護進程的參數
/etc/sysconfig/vncservers 配置vnc服務啟動的方式
/etc/sysconfig/xinetd 在啟動的時候傳遞給xinetd守護進程的參數
/proc/sys目錄 系統重要配置參數,涉及眾多內核參數
/proc/sys/fs/file-max 可以分配的文件句柄的最大數目
/proc/sys/fs/file-nr 已分配文件句柄的數目、已使用文件句柄的數目、文件句柄的最大數目
/proc/sys/fs/inode-* 任何以名稱「inode」開頭的文件所執行的操作與上面那些以名稱「file」開頭的文件所執行的操作一樣,但所執行的操作與索引節點有關,而與文件句柄無關
/proc/sys/fs/overflowuid 和 /proc/sys/fs/overflowgid 這兩個文件分別保存那些支持 16 位用戶標識和組標識的任何文件系統的用戶標識(UID)和組標識(GID)
/proc/sys/fs/super-max 該文件指定超級塊處理程序的最大數目。掛裝的任何文件系統需要使用超級塊,所以如果掛裝了大量文件系統,則可能會用盡超級塊處理程序
/proc/sys/fs/super-nr 顯示當前已分配超級塊的數目
/proc/sys/kernel/acct 該文件有三個可配置值,根據包含日誌的文件系統上可用空間的數量(以百分比表示),這些值控制何時開始進行進程記帳:如果可用空間低於這個百分比值,則停止進程記帳/如果可用空間高於這個百分比值,則開始進程記帳/檢查上面兩個值的頻率(以秒為單位)
/proc/sys/kernel/ctrl-alt-del 該值控制系統在接收到 ctrl+alt+delete 按鍵組合時如何反應
/proc/sys/kernel/domainname 配置網路域名
/proc/sys/kernel/hostname 主機名
/proc/sys/kernel/msgmax 指定了從一個進程發送到另一個進程的消息的最大長度
/proc/sys/kernel/msgmnb 指定在一個消息隊列中最大的位元組數
/proc/sys/kernel/msgmni 指定消息隊列標識的最大數目
/proc/sys/kernel/panic 如果發生「內核嚴重錯誤(kernel panic)」,內核在重新引導之前等待的時間
/proc/sys/kernel/printk 該文件有四個數字值,它們根據日誌記錄消息的重要性,定義將其發送到何處
/proc/sys/kernel/shmall 在任何給定時刻系統上可以使用的共享內存的總量(以位元組為單位)
/proc/sys/kernel/shmax 內核所允許的最大共享內存段的大小(以位元組為單位)
/proc/sys/kernel/shmmni 用於整個系統共享內存段的最大數目
/proc/sys/kernel/sysrq 如果該文件指定的值為非零,則激活 System Request Key
/proc/sys/kernel/threads-max 內核所能使用的線程的最大數目
/proc/sys/net/core/message_burst 寫新的警告消息所需的時間(以 1/10 秒為單位);在這個時間內所接收到的其它警告消息會被丟棄。這用於防止某些企圖用消息「淹沒」您系統的人所使用的拒絕服務攻擊
/proc/sys/net/core/message_cost 存有與每個警告消息相關的成本值。該值越大,越有可能忽略警告消息
/proc/sys/net/core/netdev_max_backlog 在介面接收數據包的速率比內核處理這些包的速率快時,允許送到隊列的數據包的最大數目
/proc/sys/net/core/optmem_max 每個套接字所允許的最大緩沖區的大小
/proc/sys/net/core/rmem_default 接收套接字緩沖區大小的預設值(以位元組為單位)
/proc/sys/net/core/rmem_max 接收套接字緩沖區大小的最大值(以位元組為單位)。

/proc/sys/net/core/wmem_default 發送套接字緩沖區大小的預設值(以位元組為單位)。

/proc/sys/net/core/wmem_max 發送套接字緩沖區大小的最大值(以位元組為單位)

/proc/sys/net/ipv4/ip_forward ip轉發是否生效
/proc/sys/net/ipv4/tcp_retrans_collapse 控制TCP雙方窗口協商出現錯誤的時候的一些重傳的行為。但是在老的2.6的核 (<2.6.18)里頭,這個重傳會導致kernel oops,kernel panic,所以如果出現有 tcp_retrans_*樣子的kernel panic,可以把這個參數給設置成0

/proc/sys/vm/buffermem 控制用於緩沖區內存的整個系統內存的數量(以百分比表示)。它有三個值,通過把用空格相隔的一串數字寫入該文件來設置這三個值。用於緩沖區的內存的最低百分比/如果發生所剩系統內存不多,而且系統內存正在減少這種情況,系統將試圖維護緩沖區內存的數量/用於緩沖區的內存的最高百分比
/proc/sys/vm/freepages 控制系統如何應對各種級別的可用內存。它有三個值,通過把用空格相隔的一串數字寫入該文件來設置這三個值。如果系統中可用頁面的數目達到了最低限制,則只允許內核分配一些內存/如果系統中可用頁面的數目低於這一限制,則內核將以較積極的方式啟動交換,以釋放內存,從而維持系統性能/內核將試圖保持這個數量的系統內存可用。低於這個值將啟動內核交換
/proc/sys/vm/kswapd 控制允許內核如何交換內存。它有三個值,通過把用空格相隔的一串數字寫入該文件來設置這三個值:內核試圖一次釋放的最大頁面數目。如果想增加內存交換過程中的帶寬,則需要增加該值/內核在每次交換中試圖釋放頁面的最少次數/內核在一次交換中所寫頁面的數目。這對系統性能影響最大。這個值越大,交換的數據越多,花在磁碟尋道上的時間越少。然而,這個值太大會因「淹沒」請求隊列而反過來影響系統性能

/proc/sys/vm/pagecache 該文件與/proc/sys/vm/buffermem 的工作內容一樣,但它是針對文件的內存映射和一般高速緩存

/proc/sys/vm/dirty_background_ratio 記錄當所有被更改頁面總大小占工作內存超過某個限制時,pdflush 會開始寫回工作,默認是10%
/proc/sys/vm/dirty_ratio 控制文件系統的文件系統寫緩沖區的大小,單位是百分比,表示系統內存的百分比,表示當寫緩沖使用到系統內存多少的時候,開始向磁碟寫出數據。默認是40%
/proc/sys/vm/dirty_writeback_centisecs 記錄pdflush進程把page cache里邊的內容寫入磁碟的時間周期,默認是5秒
/proc/sys/vm/dirty_expire_centisecs 控制一個更改過的頁面經過多長時間後被認為是過期的、必須被寫回的頁面,默認是30秒
/proc/sys/vm/laptop_mode 是否使用筆記本模式,在kernel2.6之後支持

㈦ linux內核驅動佔用時間多久會導致內核崩潰

設置
1.安裝kexec-tools工具,至於如何安裝,在此不再多 說。
2.編譯支持kmp的系統內核,我們叫他primary kernel。
確認以下內核選項已經被打開並重編內核。
1) 使能"kexec system call => Processor type and features." ,使內核支持kexec系統調用
CONFIG_KEXEC=y
2) 使能"Filesystem" => "Pseudo
filesystems."=> "sysfs file system support"
CONFIG_SYSFS=y
注意:如果"General Setup."=>"Configure standard kernel features (for small system)" 沒有打開的話,"sysfs file system support"可能並不會在"Pseudo
filesystems."中出現,如果是 這種情況,可以直接檢nfig文件,確認CONFIG_SYSFS是不是已經開啟。
grep 'CONFIG_SYSFS'nfig
3)使能"Kernel hacking."=>"Compile the kernel with debug info" ,保證編譯出的內核帶有調試符號。因為mp分析工具在讀取和分析mp文件時需要這些調試符號。
CONFIG_DEBUG_INFO=Y
3. 編譯mp-capture kernel
針對不同的架構,內核選項也有不同,但是不論哪種架構,以下兩個選項是必選的
"Processor type and features"=> "kernel crash mps"
CONFIG_CRASH_DUMP=y
"Filesystems" => "Pseudo filesystems"=>"/proc/vmcore support"
CONFIG_PROC_VMCORE=y
(當 CONFIG_CRASH_DUMP 被選中時,CONFIG_PROC_VMCORE會被自動選中)
下面我們看一下針對不同的架構,編 譯內核還有哪些特殊的選項
1)i386 和x86_64
*在i386上,使能高內存支持"Processor type and features"=>"high memory support"
CONFIG_HIGHMEM64G=y
or
CONFIG_HIGHMEM4G
* 在i386 和x86_64上,關閉"Processor type and features"=>"symmetric multi-processing support"
CONFIG_SMP=n
如果沒有將該選項設為n,則需要在載入mp- capture kernel時指定參數maxcpus=1。
*如果想編譯一個載入地址可浮動的內核,則選中"Processor type and features"=>"Build a relocatable kernel"
CONFIG_RELOCATABLE=y
* 設置合適的值給"Processor type and features"=>"Physical address where the kernel is loaded"
該值的設置與內核載入地址是否是可浮動的(即是否選中CONFIG_RELOCATABLE)有關。
如 果內核載入地址不可浮動, 則該值必須與[email protected]中的X相同(至於[email protected]的含義即如何使用將在後面講到),例 如:[email protected],則CONFIG_PHYSICAL_START=0x100000
0。
如果內核載入地址可 浮動,則CONFIG_PHYSICAL_START的值便可不必在意,使用默認的即可。不過為了保險起見,為了能使kmp正確執 行,CONFIG_PHYSICAL_START的值不論在何時,都要於X的值相同。
2)ppc64
除了前面兩個必須的選項,其 余選項默認即可。
3)ia64
除了前面兩個必須的選項,其餘選項默認即可。
4.准備好兩個內核後,即可按如下步 驟使用kmp
1)使用primary kernel啟動系統,但是要在啟動參數中加入「[email protected]」,Y表示為mp-capture kernel 預留了多少內存空間,X該段空間的起始地址,即內核選項中CONFIG_PHYSICAL_START的值。
對於x86和x86_64架構,一般 使用[email protected],CONFIG_PHYSICAL_START=0x1000000
對於ppc64架構,一般使用 [email protected],CONFIG_PHYSICAL_START=0x2000000
對於ia64架構,通常使用 [email protected]
2)載入mp-capture kernel
系統啟動後,即可載入mp- capture kernle。
不同的架構,可以選擇使用為壓縮的mp-capture kernle (vmlinux) 或者壓縮過的mp-capture kernle(bzImage/vmlinuz)。
i386 和x86_64:
如果mp-capture kernel編譯時未選中CONFIG_RELOCATABLE,則只能使用vmlinux
如果mp-capture kernel編譯時打開了CONFIG_RELOCATABLE,則可以使用bzImage/vmlinuz
ppc64 :
只能使用vmlinux
ia64:
可以使用vmlinux或者vmlinuz.gz
載入方法:
kexec -p <mp-capture-kernel-vmlinux-image> \
--initrd=<initrd-for-mp-capture-kernel> --args-linux \
--append="root=<root-dev> <arch-specific-options>"
mp- capture-kernel-vmlinux-image:表示存放mp-capture kernel 的路徑
initrd-for- mp-capture-kernel:表示initrd的路徑,如果沒有,可以省略該參數
--args-linux:表示Pass linux kernel style options,沒看明白什麼意思,但是ia64架構不需要加這個參數,其他架構都要有。
--append: 該參數後跟內核啟動參數。
arch-specific-options:內核啟動參數的一部分,該處根據不同架構,填寫不同參數。 i386, x86_64 和 ia64 填"1 irqpoll maxcpus=1 reset_devices",ppc64填"1 maxcpus=1 noirqdistrib reset_devices"。
註:
默認情況下,ELF文件頭採用ELF64格式存儲以支持那些擁有超過 4GB內存的系統。但是可以指定「--elf32-core-headers」標志以 強制使用ELF32格式的ELF文件頭。這個標志是有必要注意的,一個重要的原因就是:當前版本的GDB不能在一個32位系統上打開一個使用ELF64格 式的vmcore文件。ELF32格式的文件頭不能使用在一個「沒有物理地址擴展」(non-PAE)的系統上。(即是說,少於4GB內存的系統)
1 這個參數,將啟動「轉儲捕捉內核」到一個沒有網路支持的單用戶模式。如果你希望有網路支持,那麼使用「init 3」
maxcpus=1,這個前 面說過,如果CONFIG_SMP=n,則需要在啟動參數中加入maxcpus=1。
irqpoll 的啟動參數可以減低由於在「轉儲捕獲內核」中使用了「共享中斷」技術而導致出現驅動初始化失敗這種情況發生的概率。
舉例:
kexec -p /boot/vmlinux_capture --args-linux --append="root=/dev/nfs rw nfsroot=128.224.149.6:/tftpboot/cxu/15554/rootfs ip=dhcp console=ttyS0,115200 1 maxcpus=1 noirqdistrib reset_devices"
3)測試 kmp是否成功
手動產生一個crash:echo c > /proc/sysrq-trigger。
或者可以些一個強制產生 crash的模塊。
如果成功,系統將會進入熱啟動過程,系統啟動完成後,可以執行一下uname -a ,看看內核的名字是不是有-kmp的標簽呢?
然後就可以把生成的轉儲文件vmcore拷貝出來了,直接cp即可:
cp /proc/vmcore <anywhere>
也可以通過/dev/oldmem這個設備將其考出:
cd ~
mknod /dev/oldmem c 1 12
dd if=/dev/oldmem of=oldmem.001
成功將vmcore 拷貝出來後即可重啟系統了。
4)分析vmcore文件
在開始分析「轉儲文件」之前,應該確定重啟到一個穩定的內核。
可以 使用GDB在『轉儲文件』上做有限的分析。分析的時候需要「帶有調試信息的vmlinux文件」(編譯的時候帶有-g選項),運行如下命令:
gdb vmlinux vmcore
注意:GDB不能分析x86平台上以ELF64格式產生的「內核轉儲文件」。在一個最大內存為4GB的系統上,可 以通過在「轉儲捕捉內核」上指定「--elf32-core-headers」標志來使用ELF32格式的文件頭。
也可以使用Crash工具集來 分析Kmp產生的「內核轉儲文件」,crash 工具可以到網上下載:
~anderson/
以上文檔主要是翻譯自內核自帶文檔linux/Documentation/kmp/kmp.txt,部分使用自己的語言表達。如有錯誤,請指正。
標簽: 內核崩潰轉儲機制 Linux

㈧ 說Kexec是基於kexec機制工作的,但關於Kmp到底是怎麼實現的

kmp是一種先進的基於kexec的內核崩潰轉儲機制。當系統崩潰時,kmp使用kexec啟動到第二個內核。第二個內核通常叫做捕獲內核,以很小內存啟動以捕獲轉儲鏡像。第一個內核保留了內存的一部分給第二內核啟動用。由於kmp利用kexec啟動捕獲內核,繞過了BIOS,所以第一個內核的內存得以保留。這是內核崩潰轉儲的本質。kmp需要兩個不同目的的內核,生產內核和捕獲內核。生產內核是捕獲內核服務的對像。捕獲內核會在生產內核崩潰時啟動起來,與相應的ramdisk一起組建一個微環境,用以對生產內核下的內存進行收集和轉存。注意,在啟動時,kmp保留了一定數量的重要的內存,為了計算系統需要的真正最小內存,加上kmp使用的內存數量,以決定真正的最小內存的需求。為了更好的容錯,這個機制最好還是啟用

㈨ 在安裝虛擬機的時候,那個kmp是個什麼東西

1,什麼是java虛擬機 Java虛擬機(JVM)是Java Virtual Machine的縮寫,它是一個虛構出來的計算機,是通過在實際的計算機上模擬模擬各種計算機功能模擬來實現的。Java虛擬機有自己完善的硬體架構,如處理器、堆棧、寄存器等,還具有相應的指令系統。 2,為什麼使用Java虛擬機? Java語言最重要的特點就是可以在任何操作系統中運行。使用Java虛擬機就是為了支持與操作系統無關,在任何系統中都可以運行。 3,Java虛擬機的基本原理 Java虛擬機屏蔽了與具體操作系統平台相關的信息,使得Java語言編譯程序只需生成在Java虛擬機上運行的目標代碼(位元組碼),就可以在多種平台上不加修改地運行。Java虛擬機在執行位元組碼時,實際上最終還是把位元組碼解釋成具體平台上的機器指令執行。 我們上網時,有些網頁是用java語言寫的,以及一些java程序腳本等等都需要系統中有Java虛擬機時才能打開察看。不過,有些惡意網頁有帶病毒的java腳本程序,使電腦中毒。但畢竟是少數。如果不裝的話可能中的毒就少一些,但這個虛擬機還是很實用的,很多地方都要用到,建議安裝。

㈩ Centos 在歡迎界面的kmp這步驟時,無論點什麼vmbox 都死機 ,哥們能幫忙嗎

就是提示你的內存太小,無法自動設置KDUMP,你可以把勾去掉,再finish等到系統安裝結束進到系統手動設置。到終端輸入system-config-kmp或「系統」-「管理」-「內核崩潰轉儲」。不過沒什麼作用,你的系統不崩潰就用不上,一般禁用因為要分一部分內存單獨給kmp而且其他進程不能去使用這部分內存,當然如果你是系統內核開發人員就例外了

熱點內容
安卓版勇者斗惡龍8怎麼使用煉金 發布:2022-08-19 15:41:20 瀏覽:876
oracle創建資料庫sql 發布:2022-08-19 15:41:06 瀏覽:846
微助力活動源碼 發布:2022-08-19 15:41:00 瀏覽:377
微機內存儲 發布:2022-08-19 15:40:42 瀏覽:629
文件夾共享與安全設置 發布:2022-08-19 15:38:04 瀏覽:25
一台伺服器主機帶好多台電腦 發布:2022-08-19 15:36:47 瀏覽:782
資料庫關系除法 發布:2022-08-19 15:35:14 瀏覽:78
android3g開發 發布:2022-08-19 15:31:52 瀏覽:124
安卓微信動態封面怎麼設置 發布:2022-08-19 15:31:49 瀏覽:676
如何用win7配置web伺服器 發布:2022-08-19 15:31:47 瀏覽:970