LINUX.ORG.RU
ФорумAdmin

[debian][из горящего танка] Сервер перестал грузиться

 


0

1

Сервер с 5 дебианом и Proxmox PVE. Вчера выпустили апдейт PVE. Обновился по apt-get update + apt-get upgrade. После перезагрузки стало грустно.

Перегрузился в rescure system, позмонтировал разделы. В syslog вот такая хрень:

Apr  1 03:15:30 hz kernel: button: disagrees about version of symbol module_layout
Apr  1 03:15:30 hz kernel: pcspkr: disagrees about version of symbol module_layout
Apr  1 03:15:30 hz kernel: snd_page_alloc: disagrees about version of symbol module_layout
Apr  1 03:15:30 hz kernel: wmi: disagrees about version of symbol module_layout
Apr  1 03:15:30 hz kernel: button: disagrees about version of symbol module_layout
Apr  1 03:15:30 hz kernel: i2c_core: disagrees about version of symbol module_layout
Apr  1 03:15:30 hz kernel: soundcore: disagrees about version of symbol module_layout
Apr  1 03:15:30 hz kernel: i2c_i801: disagrees about version of symbol module_layout
Apr  1 03:15:30 hz kernel: snd: disagrees about version of symbol module_layout
Apr  1 03:15:30 hz kernel: evdev: disagrees about version of symbol module_layout
Apr  1 03:15:30 hz kernel: evdev: disagrees about version of symbol module_layout
Apr  1 03:15:30 hz kernel: snd_timer: disagrees about version of symbol module_layout
Apr  1 03:15:30 hz kernel: snd_pcm: disagrees about version of symbol module_layout
Apr  1 03:15:30 hz kernel: snd_pcsp: disagrees about version of symbol module_layout
Apr  1 03:15:30 hz kernel: pcspkr: disagrees about version of symbol module_layout
Apr  1 03:15:30 hz kernel: Adding 10485752k swap on /dev/mapper/vg0-swap.  Priority:-1 extents:1 across:10485752k 
Apr  1 03:15:30 hz kernel: EXT3-fs warning: maximal mount count reached, running e2fsck is recommended
Apr  1 03:15:30 hz kernel: EXT3 FS on dm-0, internal journal
Apr  1 03:15:30 hz kernel: ext2: disagrees about version of symbol module_layout
Apr  1 03:15:30 hz kernel: crc16: disagrees about version of symbol module_layout
Apr  1 03:15:30 hz kernel: jbd2: disagrees about version of symbol module_layout
Apr  1 03:15:30 hz kernel: ext4: disagrees about version of symbol module_layout
Apr  1 03:15:30 hz kernel: crc16: disagrees about version of symbol module_layout
Apr  1 03:15:30 hz kernel: jbd2: disagrees about version of symbol module_layout
Apr  1 03:15:30 hz kernel: ext4: disagrees about version of symbol module_layout
Apr  1 03:15:30 hz kernel: stp: disagrees about version of symbol module_layout
Apr  1 03:15:30 hz kernel: bridge: disagrees about version of symbol module_layout
Apr  1 03:15:30 hz kernel: stp: disagrees about version of symbol module_layout
Apr  1 03:15:30 hz kernel: bridge: disagrees about version of symbol module_layout
Apr  1 03:15:30 hz kernel: cpufreq_stats: disagrees about version of symbol module_layout
Apr  1 03:15:30 hz kernel: cpufreq_powersave: disagrees about version of symbol module_layout
Apr  1 03:15:30 hz kernel: cpufreq_conservative: disagrees about version of symbol module_layout
Apr  1 03:15:30 hz kernel: cpufreq_userspace: disagrees about version of symbol module_layout
Apr  1 03:15:30 hz kernel: speedstep_centrino: disagrees about version of symbol module_layout
Apr  1 03:15:30 hz kernel: acpi_cpufreq: disagrees about version of symbol module_layout
Apr  1 03:15:31 hz postfix/master[2208]: daemon started -- version 2.5.5, configuration /etc/postfix
Apr  1 03:15:31 hz kernel: x_tables: disagrees about version of symbol module_layout
Apr  1 03:15:31 hz kernel: ip_tables: disagrees about version of symbol module_layout
Apr  1 03:15:31 hz kernel: x_tables: disagrees about version of symbol module_layout
Apr  1 03:15:31 hz kernel: ipt_REJECT: disagrees about version of symbol module_layout

Подскажите как починить

★★★★★

У тебя системы пытается загрузить модули ядра, собранные не для того ядра, которое в данный момент работает. Попробуй снести все пакеты с ядрами, модулями и initrd и установить их заново.

Deleted
()
Ответ на: комментарий от Deleted

Да я догадался уже. Думал хоть какие ядра загрузить, чтобы сеть ожила. Проблема в том, что я не понимаю, как это сделать.

Я могу в rescure грузиться 2 способами:

- в сетевой дебиан, оттуда подключить диски и сделать chroot
- в сетевой vKVM, который сам подцепит винты и загрузит систему в виртуалке

В первом случае ядра не ставятся, ругаются что /proc/modules не находит,

Во втором случае у меня не подмонтирован /boot, а в KVM-ной консоли почем-то не работают часть разделителей, в т.ч. и '/'. Тупо не подмонтировать /boot ^) . Вместо / почему-то 7 набирается.

Vit ★★★★★
() автор топика
Ответ на: комментарий от Vit

В первом случае ядра не ставятся, ругаются что /proc/modules не находит,

Подмонтируй procfs в chroot:

mount -t proc none /path/to/chroot/proc
Можно ещё на всякий случай /sys примонтировать (sysfs).

Deleted
()
Ответ на: комментарий от Vit

Это не то же самое?

По идее то же самое. Но если скрипты в пакете в ядром не видят /proc/modules, то либо /proc не примонтирован а chroot'е, либо в rescue-системе криво собрано ядро и /proc/modules там нет в принципе.

P.S. Кстати, а на кой чёрт при установке ядра нужен /proc/modules? Фигня в общем какая-то...

Deleted
()
Ответ на: комментарий от Deleted

Пробовал это:

apt-get install linux-image-2.6.26-2-amd64
apt-get install pve-kernel-2.6.35-1-pve

Лог по первому:

http://pastebin.com/TksaRN1r

Лог по второму:

http://pastebin.com/d3W871se

Файлы вроде в /boot создались. Но в меню груба не добавились. Почему при установке стандартного ядра ошибка - не понял.

Мне надо сейчас хоть какое-то ядро завести с сетью, дальше надеюсь что проще будет PVE-шное откатить/переставить.

Родной пакет, который накрылся - pve-kernel-2.6.32-4-pve

Vit ★★★★★
() автор топика
Ответ на: комментарий от Vit

PS. Подмонтировал как вы сказали, без chroot-prepare хетцнеровского. Вроде полегчало, но еще не до конца.

Vit ★★★★★
() автор топика
Ответ на: комментарий от Vit
apt-get install linux-image-2.6.26-2-amd64
apt-get install pve-kernel-2.6.35-1-pve

ИМХО нужно ставить что-то одно, хотя и конфликтовать они не должны. И перед установкой снести всё, что касалось старых ядер (возможно после удаления пакетов нужно ещё подчистить /boot).

Файлы вроде в /boot создались. Но в меню груба не добавились. Почему при установке стандартного ядра ошибка - не понял.

Ошибки локали можно игнорировать, либо сделать что-то типа

export LANG=en_US.UTF-8
В меню груба ничего не добавилось как раз из-за того, что скрипт update-grub (который этим и занимается) выда ошибку. Попробуй удалить /boot/grub/menu.lst и после этого запустить update-grub руками.

Мне надо сейчас хоть какое-то ядро завести с сетью, дальше надеюсь что проще будет PVE-шное откатить/переставить.

Я бы попробовал для начала поставить только родное дебиановское.

Кстати говоря, обновление до ядра 2.6.35 при «родном» для lenny 2.6.26 может что-нибудь поломать в юзерспейсе. Как минимум acpid (если он используется) работать перестанет =).

Deleted
()
Ответ на: комментарий от Vit

PS. Подмонтировал как вы сказали, без chroot-prepare хетцнеровского. Вроде полегчало, но еще не до конца.

Удалось запуститься хоть с каким-нибудь из установленных ядер?

Deleted
()
Ответ на: комментарий от Deleted

Пока квест здесь:

cd /mnt
mkdir rescue
mount /dev/vg0/root /mnt/rescue
mount /dev/md0 /mnt/rescue/boot
mount --bind /dev /mnt/rescue/dev/
mount --bind /proc /mnt/rescue/proc/
mount --bind /sys /mnt/rescue/sys/
chroot /mnt/rescue /bin/bash

После этого ядра ставится и менюшка груба перестраивается (хоть и ругалось на локали). Но по сислогу грузится все равно старое ядро, хотя я на первое место поставил 35-е:

title		Debian GNU/Linux, kernel 2.6.35-1-pve
root		(hd0,0)
kernel		/vmlinuz-2.6.35-1-pve root=/dev/mapper/vg0-root ro 
initrd		/initrd.img-2.6.35-1-pve

title		Debian GNU/Linux, kernel 2.6.35-1-pve (single-user mode)
root		(hd0,0)
kernel		/vmlinuz-2.6.35-1-pve root=/dev/mapper/vg0-root ro single
initrd		/initrd.img-2.6.35-1-pve

title		Debian GNU/Linux, kernel 2.6.32-4-pve
root		(hd0,0)
kernel		/vmlinuz-2.6.32-4-pve root=/dev/mapper/vg0-root ro 
initrd		/initrd.img-2.6.32-4-pve

title		Debian GNU/Linux, kernel 2.6.32-4-pve (single-user mode)
root		(hd0,0)
kernel		/vmlinuz-2.6.32-4-pve root=/dev/mapper/vg0-root ro single
initrd		/initrd.img-2.6.32-4-pve

title		Debian GNU/Linux, kernel 2.6.26-2-amd64
root		(hd0,0)
kernel		/vmlinuz-2.6.26-2-amd64 root=/dev/mapper/vg0-root ro 
initrd		/initrd.img-2.6.26-2-amd64

title		Debian GNU/Linux, kernel 2.6.26-2-amd64 (single-user mode)
root		(hd0,0)
kernel		/vmlinuz-2.6.26-2-amd64 root=/dev/mapper/vg0-root ro single
initrd		/initrd.img-2.6.26-2-amd64

Что я еще забыл, чтобы 35 ядро грузиться стало?

Vit ★★★★★
() автор топика
Ответ на: комментарий от Vit

Покажи весь конфиг grub'а. Там где-то должно быть указано (опция «default») какой пункт грузить по умолчанию.

Deleted
()
Ответ на: комментарий от Deleted

Нет, там другой косяк - сейчас загрузился из KVM - груб по-прежнему показывает старое меню. только из 2 пунктов, с 32 ядром.

Где я ошибся?

Vit ★★★★★
() автор топика
Ответ на: комментарий от Deleted

rescue:/boot/grub# ls
default e2fs_stage1_5 jfs_stage1_5 menu.lst minix_stage1_5 stage1 x86_64-pc
device.map fat_stage1_5 menu.bak menu.lst~ reiserfs_stage1_5 stage2 xfs_stage1_5
rescue:/boot/grub#


Чего в дебиане пятом было, то и стоит. Я только диск разметил, PVE накатил, и на хостовую ноду не лез. Сегодня вот черт дернул проапгрейдиться, мля

Vit ★★★★★
() автор топика
Ответ на: комментарий от Vit

Да, /boot на отдельном разделе, зеркале. Остальное мето - тоже зеркало, потом LVM, потом тома.

Во, а могло зеркало бута развалиться, чтобы писалось на один диск, а грузилось с другого?

Vit ★★★★★
() автор топика
Ответ на: комментарий от Vit

Покажи _всё_ содержимое menu.lst.

И что такое /dev/md0? Массив RAID1? Если да, то он случаем у тебя не рассинхронизирован?

Deleted
()
Ответ на: комментарий от Vit

Во, а могло зеркало бута развалиться, чтобы писалось на один диск, а грузилось с другого?

Да, мне тоже это в голову пришло.

Deleted
()
Ответ на: комментарий от Deleted

а proc вообще корректно монтировать биндом? Не, я не претендую на глубокие познания, но в генте я монтировал так:

mount -t proc none /mnt/rescue/proc

delete83 ★★
()
Ответ на: комментарий от Deleted
rescue:/boot/grub# cat /proc/mdstat 
Personalities : [raid1] 
md1 : active raid1 sdb2[1]
      1464870848 blocks [2/1] [_U]
      
md0 : active raid1 sdb1[1]
      263040 blocks [2/1] [_U]
      
unused devices: <none>
rescue:/boot/grub# 

rescue:/boot/grub# cat menu.lst
# menu.lst - See: grub(8), info grub, update-grub(8)
#            grub-install(8), grub-floppy(8),
#            grub-md5-crypt, /usr/share/doc/grub
#            and /usr/share/doc/grub-legacy-doc/.

## default num
# Set the default entry to the entry number NUM. Numbering starts from 0, and
# the entry number 0 is the default if the command is not used.
#
# You can specify 'saved' instead of a number. In this case, the default entry
# is the entry saved with the command 'savedefault'.
# WARNING: If you are using dmraid do not change this entry to 'saved' or your
# array will desync and will not let you boot your system.
default		0

## timeout sec
# Set a timeout, in SEC seconds, before automatically booting the default entry
# (normally the first entry defined).
timeout		5

# Pretty colours
color cyan/blue white/blue

## password ['--md5'] passwd
# If used in the first section of a menu file, disable all interactive editing
# control (menu entry editor and command-line)  and entries protected by the
# command 'lock'
# e.g. password topsecret
#      password --md5 $1$gLhU0/$aW78kHK1QfV3P2b2znUoe/
# password topsecret

#
# examples
#
# title		Windows 95/98/NT/2000
# root		(hd0,0)
# makeactive
# chainloader	+1
#
# title		Linux
# root		(hd0,1)
# kernel	/vmlinuz root=/dev/hda2 ro
#

#
# Put static boot stanzas before and/or after AUTOMAGIC KERNEL LIST

### BEGIN AUTOMAGIC KERNELS LIST
## lines between the AUTOMAGIC KERNELS LIST markers will be modified
## by the debian update-grub script except for the default options below

## DO NOT UNCOMMENT THEM, Just edit them to your needs

## ## Start Default Options ##
## default kernel options
## default kernel options for automagic boot options
## If you want special options for specific kernels use kopt_x_y_z
## where x.y.z is kernel version. Minor versions can be omitted.
## e.g. kopt=root=/dev/hda1 ro
##      kopt_2_6_8=root=/dev/hdc1 ro
##      kopt_2_6_8_2_686=root=/dev/hdc2 ro
# kopt=root=/dev/mapper/vg0-root ro

## default grub root device
## e.g. groot=(hd0,0)
# groot=(hd0,0)

## should update-grub create alternative automagic boot options
## e.g. alternative=true
##      alternative=false
# alternative=true

## should update-grub lock alternative automagic boot options
## e.g. lockalternative=true
##      lockalternative=false
# lockalternative=false

## additional options to use with the default boot option, but not with the
## alternatives
## e.g. defoptions=vga=791 resume=/dev/hda5
# defoptions=

## should update-grub lock old automagic boot options
## e.g. lockold=false
##      lockold=true
# lockold=false

## Xen hypervisor options to use with the default Xen boot option
# xenhopt=

## Xen Linux kernel options to use with the default Xen boot option
# xenkopt=console=tty0

## altoption boot targets option
## multiple altoptions lines are allowed
## e.g. altoptions=(extra menu suffix) extra boot options
##      altoptions=(single-user) single
# altoptions=(single-user mode) single

## controls how many kernels should be put into the menu.lst
## only counts the first occurence of a kernel, not the
## alternative kernel options
## e.g. howmany=all
##      howmany=7
# howmany=all

## should update-grub create memtest86 boot option
## e.g. memtest86=true
##      memtest86=false
# memtest86=true

## should update-grub adjust the value of the default booted system
## can be true or false
# updatedefaultentry=false

## should update-grub add savedefault to the default options
## can be true or false
# savedefault=false

## ## End Default Options ##

title		Debian GNU/Linux, kernel 2.6.35-1-pve
root		(hd0,0)
kernel		/vmlinuz-2.6.35-1-pve root=/dev/mapper/vg0-root ro 
initrd		/initrd.img-2.6.35-1-pve

title		Debian GNU/Linux, kernel 2.6.35-1-pve (single-user mode)
root		(hd0,0)
kernel		/vmlinuz-2.6.35-1-pve root=/dev/mapper/vg0-root ro single
initrd		/initrd.img-2.6.35-1-pve

title		Debian GNU/Linux, kernel 2.6.32-4-pve
root		(hd0,0)
kernel		/vmlinuz-2.6.32-4-pve root=/dev/mapper/vg0-root ro 
initrd		/initrd.img-2.6.32-4-pve

title		Debian GNU/Linux, kernel 2.6.32-4-pve (single-user mode)
root		(hd0,0)
kernel		/vmlinuz-2.6.32-4-pve root=/dev/mapper/vg0-root ro single
initrd		/initrd.img-2.6.32-4-pve

title		Debian GNU/Linux, kernel 2.6.26-2-amd64
root		(hd0,0)
kernel		/vmlinuz-2.6.26-2-amd64 root=/dev/mapper/vg0-root ro 
initrd		/initrd.img-2.6.26-2-amd64

title		Debian GNU/Linux, kernel 2.6.26-2-amd64 (single-user mode)
root		(hd0,0)
kernel		/vmlinuz-2.6.26-2-amd64 root=/dev/mapper/vg0-root ro single
initrd		/initrd.img-2.6.26-2-amd64

### END DEBIAN AUTOMAGIC KERNELS LIST
rescue:/boot/grub# 
Vit ★★★★★
() автор топика
Ответ на: комментарий от Deleted

Ты все изменения пишешь на sdb (который остался в массивах), а система походу грузится с sda, на котором до сих пор остался старый /boot =).

Deleted
()
Ответ на: комментарий от Vit

Желательно еще понять, какой диск реально надо «главным» делать. На случай если развалилось «задолго» до ребута моего.

Vit ★★★★★
() автор топика
Ответ на: комментарий от Vit

Желательно еще понять, какой диск реально надо «главным» делать. На случай если развалилось «задолго» до ребута моего.

Если всё настроено правильно и запись «в обход» RAID-массива не велась, то главным будет тот диск, который до сих пор находится в массиве и содержит свежие данные, то есть sdb.

Deleted
()
Ответ на: комментарий от Deleted

И ещё после пересборки массива надо сделать update-initramfs для всех ядер, так как в дебиане конфиг mdadm вшивается в initramfs.

Deleted
()
Ответ на: комментарий от Deleted

А как это сделать, не подскажете?

Может просто сказать apt-get install --reinstall ядроХХХ ?

Vit ★★★★★
() автор топика
Ответ на: комментарий от Vit

А как это сделать, не подскажете?

Примерно так (для каждой установленной версии ядра):

update-initramfs -k 2.6.35-1-pve

Может просто сказать apt-get install --reinstall ядроХХХ ?

По идее можно и так.

Deleted
()
Ответ на: комментарий от Deleted

Завелось. Вроде даже пашет.

Только тупит очень сильно. Когда сайты включены - и страницы тормозят, и ребилд миррора со скоростью черепахи. Есть какой-нибудь способ ускорить это дело?

Vit ★★★★★
() автор топика
Ответ на: комментарий от Vit

Можно либо ускорить синхронизацию массива и этим ещё сильнее затормозить сайты, либо наоборот - замедлить синхронизацию и ускорить сайты. Сразу всё - никак =). Подкручивай /proc/sys/dev/raid/speed_limit_* в нужную сторону.

Deleted
()
Ответ на: комментарий от Deleted

Спасибо что помогали. Пошел спать, потом бакапиться и сливать архивы.

Vit ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.