Horarios Kernel PANIC

Ver horario do kernel panic

Linux: ( imprime linha com PANIC: + 2 linhas antes )

grep -B 2 'PANIC:' /var/log/syslog

SCO: ( imprime linha com PANIC: + 3 linhas antes )

awk '/PANIC:/{for(i=1;i<=x;)print a[i++];print}{for(i=1;i<x;i++)a[i]=a[i+1];a[x]=$0;}' x=3 /var/adm/syslog

Ver motivo de kernel panic:

Linux: ( imprime linha com PANIC: + 2 linhas antes + 45 depois )

grep -B 2 -A 45 'PANIC:' /var/log/syslog

Analisar Kernel Dump SCO

Ao dar kernel panic no SCO, use o procedimento para analisar a causa da falha

O arquivo de dump nao mostra a hora do kernel panic. Para saber a hora aproximada do panic use:

awk '/PANIC:/{for(i=1;i<=x;)print a[i++];print}{for(i=1;i<x;i++)a[i]=a[i+1];a[x]=$0;}' x=3 /var/adm/syslog

Entre no diretorio onde estao os arquivos salvos de dump

cd /var/spool/dump/

Descompacte um arquivo de dump

bzip2 -d panic.2017-01-23.16\:14.bz2

Extraia do dump o tipo de informacao que deseja

crash -d /var/spool/dump/panic.2017-01-23.16\:14 -n /stand/unix -w /tmp/crash-file
> panic
> trace
> stack
> user
> proc
> quit

Para ler o dump:

cat /tmp/crash-file | more

Compilando kernel 4 no debian 8

1 – Instale pacotes necessários para a compilação e empacotamento do kernel

apt-get install git fakeroot build-essential ncurses-dev xz-utils libssl-dev wget kernel-package

2 – Faça download do código fonte do kernel

cd /usr/src 
wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.5.tar.xz

3 – Descompacte o kernel e crie link simbólico para compilação

tar xvf linux-4.5.tar.xz
ln -sf /usr/src/linux-4.5 /usr/src/linux

4 – Copie o arquivo de configuração do kernel atual para configurar o novo kernel a partir dele.

cp /boot/config-$(uname -r) .config

5 – Configure o kernel, em seguida salve o novo .config

make menuconfig

6 – Limpe a árvore de compilação

make-kpkg clean

7 – Compile o kernel usando a quantidade de núcleos  do processador que desejar  “-j”

fakeroot make-kpkg --initrd --revision=1.0.custom kernel_image kernel_headers -j 4

8 – Instale o novo kernel

dpkg -i linux-image-4.5.0_1.0.custom_amd64.deb
dpkg -i linux-headers-4.5.0_1.0.custom_amd64.deb

*Reinicie o computador e escolha o novo kernel no boot, após fazer o login digite uname -r para ver a versão do kernel que está em execução

KERNEL

1 – Instale os pacotes necessários para compilação do novo kernel

apt-get install libc6-dev gcc libncurses5-dev make patch initrd-tools

2 – Baixe o código fonte do kernel em http://www.kernel.org

wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.17.8.tar.bz2

3 – Descompacte o código fonte do kernel em “/usr/src”

tar -xjvf linux-2.6.17.8.tar.bz2 -C /usr/src
cd /usr/src/

4 – Crie um link simbólico do diretório que contém o código fonte para “linux”

ln -sf linux-2.6.17.8 linux

5 – Entre em “/usr/src/linux”

cd linux

6 – Selecione as opções de compilação do kernel

make menuconfig

* Marque as opções de compilação conforme sua preferência

ATENÇÃO: Cuidado na hora de selecionar como módulo as opções do kernel. Nem tudo pode ser marcado como módulo. Algumas opções devem ser (built-in) incorporaradas no kernel, como sistema de arquivos ext3

7 – Entre com o comando “make” para compilar o kernel

make

8 – Instale os módulos que foram compilados (isso irá criar uma pasta com os módulos compilados “/lib/modules/2.6.17-8”)

make modules_install

9 – Copie a imagem gerada do kernel “vmlinuz-2.6.17.8” e “System.map-2.6.17.8” para “/boot”

make install

10 – Crie o “initrd.img” com os módulos do kernel compactado

mkinitrd -o /boot/initrd.img-2.6.17.8 /lib/modules/2.6.17.8/

11 – Edite o arquivo de configuração do Grub da seguinte forma:

vi /boot/grub/menu.lst

title Debian GNU/Linux, kernel 2.6.17.8
root (hd0,0)
kernel /boot/vmlinuz-2.6.17.8 root=/dev/hda1 ro
initrd /boot/initrd.img-2.6.17.8
savedefault
boot

12 – Testando: reinicie o servidor e selecione a opção do novo kernel

init 6