В последнее время у меня возникают проблемы с тестовым сервером. Он был установлен несколько дней назад и работал нормально до вчерашнего дня, пока не просыпался после перезагрузки. Загрузчик не нашел корневое устройство. Ошибка:
Gave up waiting for root device.
ALERT! /dev/mapper/vg_mru-lv_mru_root does not exists. dropping to shell!
Я загрузился в оболочке восстановления, смонтировал устройства, подключился к системе, и все прошло нормально, поэтому я просто увеличил время rootdelay до 90 и перезагрузился. Так что это сработало в другой день. Но теперь я получаю ту же ошибку, за которой следует:
udevd[112]: worker [119] unexpectedly returned with status 0x0100
udevd[112]: worker[119] failed while handling '/devices/virtual/block/md0'
udevd[112]: worker [120] unexpectedly returned with status 0x0100
udevd[112]: worker[120] failed while handling '/devices/virtual/block/md1'
Если я подожду около 5 минут, а затем напишу exit int intramfs shell, загрузка продолжится как обычно, и компьютер станет полностью работоспособным.
В сообщениях таких строк несколько десятков:
Sep 30 21:58:48 mru-server kernel: [ 1038.291536] lost page write due to I/O error on dm-15
и
Sep 29 10:02:16 mru-server kernel: [ 0.845246] ACPI Warning: Incorrect checksum in table [OEMB] - A4, should be 9F (20090903/tbutils-314)
Компьютер под управлением ubuntu 10.04, 2 диска 1TD, зеркально отображаемых в raid1, два устройства raid md0 и md1, каждое из которых содержит одну группу томов LVM. Оба диска прошли короткое с.м.р. тест. Память также прошла один проход memtest86 +. И это было проверено 24 часа 2 дня назад.
Ошибка Debian # 583917 выглядит как-то похоже, но в Ubuntu установлена более старая версия mdadm.
Еще я подозреваю, что lvm. Когда я использую cat / proc / modules в оболочке intramfs, появляется дюжина модулей raid, но нет модуля lvm.
При необходимости я могу предоставить вам дополнительные данные.
grub.cfg
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by /usr/sbin/grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#
### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
load_env
fi
set default="0"
if [ ${prev_saved_entry} ]; then
set saved_entry=${prev_saved_entry}
save_env saved_entry
set prev_saved_entry=
save_env prev_saved_entry
set boot_once=true
fi
function savedefault {
if [ -z ${boot_once} ]; then
saved_entry=${chosen}
save_env saved_entry
fi
}
function recordfail {
set recordfail=1
if [ -n ${have_grubenv} ]; then if [ -z ${boot_once} ]; then save_env recordfail; fi; fi
}
insmod raid
insmod mdraid
insmod lvm
insmod ext2
set root='(vg_mru-lv_mru_usr)'
search --no-floppy --fs-uuid --set 48111d09-5c3d-48e4-be9d-0ab141c8cb4a
if loadfont /share/grub/unicode.pf2 ; then
set gfxmode=640x480
insmod gfxterm
insmod vbe
if terminal_output gfxterm ; then true ; else
# For backward compatibility with versions of terminal.mod that don't
# understand terminal_output
terminal gfxterm
fi
fi
insmod raid
insmod mdraid
insmod lvm
insmod ext2
set root='(vg_mru-lv_mru_boot)'
search --no-floppy --fs-uuid --set 4523fbba-a68d-413a-9606-c68094438879
set locale_dir=($root)/grub/locale
set lang=en
insmod gettext
if [ ${recordfail} = 1 ]; then
set timeout=-1
else
set timeout=10
fi
### END /etc/grub.d/00_header ###
### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=white/black
set menu_color_highlight=black/light-gray
### END /etc/grub.d/05_debian_theme ###
### BEGIN /etc/grub.d/10_linux ###
menuentry 'Ubuntu, with Linux 2.6.32-25-server' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod raid
insmod mdraid
insmod lvm
insmod ext2
set root='(vg_mru-lv_mru_boot)'
search --no-floppy --fs-uuid --set 4523fbba-a68d-413a-9606-c68094438879
linux /vmlinuz-2.6.32-25-server root=/dev/mapper/vg_mru-lv_mru_root ro rootdelay=90
initrd /initrd.img-2.6.32-25-server
}
menuentry 'Ubuntu, with Linux 2.6.32-25-server (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod raid
insmod mdraid
insmod lvm
insmod ext2
set root='(vg_mru-lv_mru_boot)'
search --no-floppy --fs-uuid --set 4523fbba-a68d-413a-9606-c68094438879
echo 'Loading Linux 2.6.32-25-server ...'
linux /vmlinuz-2.6.32-25-server root=/dev/mapper/vg_mru-lv_mru_root ro single
echo 'Loading initial ramdisk ...'
initrd /initrd.img-2.6.32-25-server
}
menuentry 'Ubuntu, with Linux 2.6.32-24-server' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod raid
insmod mdraid
insmod lvm
insmod ext2
set root='(vg_mru-lv_mru_boot)'
search --no-floppy --fs-uuid --set 4523fbba-a68d-413a-9606-c68094438879
linux /vmlinuz-2.6.32-24-server root=/dev/mapper/vg_mru-lv_mru_root ro rootdelay=90
initrd /initrd.img-2.6.32-24-server
}
menuentry 'Ubuntu, with Linux 2.6.32-24-server (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod raid
insmod mdraid
insmod lvm
insmod ext2
set root='(vg_mru-lv_mru_boot)'
search --no-floppy --fs-uuid --set 4523fbba-a68d-413a-9606-c68094438879
echo 'Loading Linux 2.6.32-24-server ...'
linux /vmlinuz-2.6.32-24-server root=/dev/mapper/vg_mru-lv_mru_root ro single
echo 'Loading initial ramdisk ...'
initrd /initrd.img-2.6.32-24-server
}
### END /etc/grub.d/10_linux ###
### BEGIN /etc/grub.d/20_memtest86+ ###
menuentry "Memory test (memtest86+)" {
insmod raid
insmod mdraid
insmod lvm
insmod ext2
set root='(vg_mru-lv_mru_boot)'
search --no-floppy --fs-uuid --set 4523fbba-a68d-413a-9606-c68094438879
linux16 /memtest86+.bin
}
menuentry "Memory test (memtest86+, serial console 115200)" {
insmod raid
insmod mdraid
insmod lvm
insmod ext2
set root='(vg_mru-lv_mru_boot)'
search --no-floppy --fs-uuid --set 4523fbba-a68d-413a-9606-c68094438879
linux16 /memtest86+.bin console=ttyS0,115200n8
}
### END /etc/grub.d/20_memtest86+ ###
### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###
### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###
Спасибо за ответы!
С уважением, Андраз
Я столкнулся с этим недавно при обновлении машины с Ubuntu Januty до Ubuntu Karmic. У меня тоже было 2 группы томов, одна из которых содержала около 20 логических томов, а вторая - с root и некоторыми снимками.
Моя проблема заключалась в добавлении еще одного снимка LVM, что привело к тому, что время инициализации подсистемы LVM прошло больше времени, чем ядро будет ждать, пока станет доступна корневая файловая система.
Решением было добавить параметр «rootdelay = 180» в строку ядра в /boot/grub/menu.lst (эта возможность - одна из причин, по которой я все еще использую устаревшие версии grub).
Это действительно увеличивает время загрузки, но на долго работающем сервере я не считаю это серьезной проблемой.
Хорошо, думаю, я решил это.
У меня есть две группы томов: vg_mru для хост-системы и vg_virt для виртуальных систем. Недавно я тестировал некоторые функции снимков LVM, в том числе пытался перезаписать снимки сверх их емкости. У меня пока нет точной причины, но удаление всех тестовых логических томов на vg_virt решило ее.
Я считаю, что LVM должен делать какой-то сборщик мусора, когда задействованы снимки. Когда вы удалили тестовый LV на vg_virt, осталось много снимков?
Поддерживает ли ваш диск S.M.A.R.T? Если да, не могли бы вы его посмотреть? Мне это кажется отказом диска. (Или, может быть, сбой ОЗУ)