LINUX.ORG.RU

grub + шаловливые ручки = fail


0

1

Народ, нужна помощь. Сидел я дома и тыкал во все что видел пытливый взор из пунктов меню администрирование. Система Ubuntu 10.04. Тыкал значит тыкал... тыкнул в пункт «проверка системы» или как-то так называется. Он где-то полчаса работал, но как я понимаю завис напрочь. Дальше я еще понастраивал слегонца, но ничего особо не трогал системного (настройки клавиатуры там и прочее).

Перезагрузился, и теперь получаю волшебную ошибку. Идет инфа биоса, потом по идее загрузчик (он не ждет выбора операционки, поэтому могу только догадываться что он отрабатывает), потом kernel panic :)

По поводу чего паника точно не помню, пишу сейчас не будучи дома, но что-то связанное с VFS вроде (

Короче понимаю что бред полный, но как-то так ( Вопрос - что делать имея диск с убунтой. В чем может быть проблема?


возможно, ты прервал проверку диска. тогда нужно загрузиться с livecd и проверить диск с помощью fsck. как это сделать легко найти в гугле за 10 секунд.

второе по вероятности то, что grub не может найти корень, т.к. изменился идентификатор раздела. в таком случае нужно опять же загрузиться с livecd, посмотреть под каким именем корень (например, с помощью fdisk -l) и поправить его в конфиге grub.

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

> второе по вероятности то, что grub не может найти корень

Если не может найти корень - там вроде не кернел паник.

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

эмм... наверное, да.

но кернел паник возможен, если /boot на отдельном разделе, т.е., ядро-то грузится, а вот корень убежал.

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

возможно, ты прервал проверку диска. тогда нужно загрузиться с livecd и проверить диск с помощью fsck

ну это первое что пришло в голову, диск убунты я уже нашел, просто хочется узнать все возможные варианты чтоб как дураку не бегать через пол города к рабочему компу и узнавать что еще можно сделать )

второе по вероятности то, что grub не может найти корень, т.к. изменился идентификатор раздела. в таком случае нужно опять же загрузиться с livecd, посмотреть под каким именем корень (например, с помощью fdisk -l) и поправить его в конфиге grub.

возможно... только с какого перепуга ему менять идентификатор не знаю даже...

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

кернел паник. В любом случае грузиться с livecd и проверять /boot/grub/menu.lst Но вообще странно, насколько я знаю, в бубунте используется /dev/disk/by-uuid/ и изменения порядка иницализации хардов роли играть не должно.

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

нет, раздела всего 3. корень, своп, доп раздел на втором винте (типа под бэкап потом хочу сделать)

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

кернел паник это же сообщение ядра, значит корневой раздел находится? откуда еще груб может взять образ ядра...

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

в основном по ключевым словам kernel panic VFS находит истории «успеха» с неудачной компиляцией ядра, когда не включена поддержка тех или иных ФС или винтов ) Чисто теоретически можно натыкать в меню администрирования убунты что-то, что способно изменить загружаемые в ядро модули или само ядро? )

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

grub как бы оперирует идентификаторами hd(x,y), вот там то он образ и находит. А ядро оперирует уже /dev/s(h)daX. И вот их то оно уже находит. А по какой причине - надо начинать с конфига граба смотреть.

silw ★★★★★
()

Загрузитесь с зажатым Shift, появится меню загрузчика. На пункте меню ubuntu нажмите e, в конец строки, которая начинается на «linux», допишите «loglevel=9 vga=6» без кавычек, уберите quiet и splash. Нажмите Ctrl+X, дождитесь паники и сфотографируйте экран. Фотографию выложите на http://ompldr.org/ и дайте ссылку сюда.

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

omg )

собственно загрузился с флешки, но это извращение, ибо с флешки лайв убунты стартует полчаса. точно ошибка звучит так:

[ 0.848449] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block (0,0)

погуглив (собсна я щас с флешки сижу на дохлом компе) нашел такие строки

kernal panic VFD Unable to mount root fs on unknown block (0,0) means its trying to use /dev/hda1 as your ubuntu drive. if its hda4 then grub should be using (0,3) as the root fs.check your /boot/grub/menu.lst and make sure it reads properly. for example mine is hda2 and says

Quote: root (hd0,1) yours should be (hd0,3)

Собсна файла /boot/grub/menu.lst у меня не нашлось 0_о может и в этом дело, может и нет... я теряюсь в догадках. как советовали файловую систему я проверил, а вот с меню.лст накладочка

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

Эта инструкция устарела.
Показывайте boot/grub/grub.cfg.

AITap ★★★★★
()
Ответ на: комментарий от nekto
ubuntu@ubuntu:/media/2fb32700-e658-4874-916a-7c001d9ad9c0/boot$ pwd
/media/2fb32700-e658-4874-916a-7c001d9ad9c0/boot
ubuntu@ubuntu:/media/2fb32700-e658-4874-916a-7c001d9ad9c0/boot$ find . -name "*lst*"
./grub/command.lst
./grub/crypto.lst
./grub/moddep.lst
./grub/terminal.lst
./grub/partmap.lst
./grub/fs.lst
./grub/parttool.lst
./grub/video.lst
./grub/handler.lst
ubuntu@ubuntu:/media/2fb32700-e658-4874-916a-7c001d9ad9c0/boot$ 
nekto
() автор топика
Ответ на: комментарий от nekto
ubuntu@ubuntu:/media/2fb32700-e658-4874-916a-7c001d9ad9c0/boot$ cat grub/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 ext2
set root='(hd0,2)'
search --no-floppy --fs-uuid --set 2fb32700-e658-4874-916a-7c001d9ad9c0
if loadfont /usr/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 ext2
set root='(hd0,2)'
search --no-floppy --fs-uuid --set 2fb32700-e658-4874-916a-7c001d9ad9c0
set locale_dir=($root)/boot/grub/locale
set lang=ru
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, с Linux 2.6.32-24-generic' --class ubuntu --class gnu-linux --class gnu --class os {
	recordfail
	insmod ext2
	set root='(hd0,2)'
	search --no-floppy --fs-uuid --set 2fb32700-e658-4874-916a-7c001d9ad9c0
	linux	/boot/vmlinuz-2.6.32-24-generic root=UUID=2fb32700-e658-4874-916a-7c001d9ad9c0 ro   quiet splash
	initrd	/boot/initrd.img-2.6.32-24-generic
}
menuentry 'Ubuntu, с Linux 2.6.32-24-generic (режим восстановления)' --class ubuntu --class gnu-linux --class gnu --class os {
	recordfail
	insmod ext2
	set root='(hd0,2)'
	search --no-floppy --fs-uuid --set 2fb32700-e658-4874-916a-7c001d9ad9c0
	echo	'Загружается Linux 2.6.32-24-generic ...'
	linux	/boot/vmlinuz-2.6.32-24-generic root=UUID=2fb32700-e658-4874-916a-7c001d9ad9c0 ro single 
	echo	'Загружается начальный ramdisk ...'
	initrd	/boot/initrd.img-2.6.32-24-generic
}
### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_memtest86+ ###
menuentry "Memory test (memtest86+)" {
	insmod ext2
	set root='(hd0,2)'
	search --no-floppy --fs-uuid --set 2fb32700-e658-4874-916a-7c001d9ad9c0
	linux16	/boot/memtest86+.bin
}
menuentry "Memory test (memtest86+, serial console 115200)" {
	insmod ext2
	set root='(hd0,2)'
	search --no-floppy --fs-uuid --set 2fb32700-e658-4874-916a-7c001d9ad9c0
	linux16	/boot/memtest86+.bin console=ttyS0,115200n8
}
### END /etc/grub.d/20_memtest86+ ###

### BEGIN /etc/grub.d/30_os-prober ###
if [ ${timeout} != -1 ]; then
  if keystatus; then
    if keystatus --shift; then
      set timeout=-1
    else
      set timeout=0
    fi
  else
    if sleep --interruptible 3 ; then
      set timeout=0
    fi
  fi
fi
### 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 ###

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

Больше похоже на то, что здесь общая пурга

ubuntu@ubuntu:/media/2fb32700-e658-4874-916a-7c001d9ad9c0/etc/default$ cat grub 
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.

GRUB_DEFAULT=0
GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_LINUX_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"
ubuntu@ubuntu:/media/2fb32700-e658-4874-916a-7c001d9ad9c0/etc/default$ 

nekto
() автор топика
Ответ на: комментарий от AITap
/dev/loop0: TYPE="squashfs" 
/dev/loop1: UUID="815b6d1c-2cf5-4f7d-835e-0de001f401c2" TYPE="ext3" 
/dev/sda1: UUID="bfa60cad-2e5a-4649-8898-c21f8b6bf054" TYPE="swap" 
/dev/sda2: UUID="2fb32700-e658-4874-916a-7c001d9ad9c0" TYPE="ext4" 
/dev/sdb1: UUID="a02ca2b3-f611-469e-ab74-2243bb4916aa" TYPE="ext4" 
/dev/sdc1: UUID="3A26-8829" TYPE="vfat" 

образ, флешка, своп, корень, второй жесткий

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

/dev/sda2: UUID=«2fb32700-e658-4874-916a-7c001d9ad9c0» TYPE=«ext4»

это корень

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

> sudo -i
Получить права суперпользователя и запустить от его имени интерактивный шелл

wget -O chroot.sh http://ompldr.org/vNW8wNw

Скачать скрипт, который монтирует данный раздел, подключает нужные файловые системы, копирует resolv.conf (это позволяет работать с сетью в chroot) и выполняет chroot внутрь данной файловой системы.

chmod +x chroot.sh

Дать права на выполнение скрипта

./chroot.sh UUID=«2fb32700-e658-4874-916a-7c001d9ad9c0»

chroot в данную файловую систему

update-initramfs -u -k all

обновить для всех ядер initramfs (специальный файл, содержащий драйверы для корневой системы и.т.п., его подгружает загрузчик вместе с ядром. возможно, этот файл был повреждён)

update-grub

Обновить конфигурационный файл grub2

exit

выйти из chroot

exit

выйти из интерактивного шелла с правами суперпользователя

exit # терминал закроется

завершить шелл с правами пользователя

AITap ★★★★★
()
Ответ на: комментарий от AITap
ubuntu@ubuntu:/media/2fb32700-e658-4874-916a-7c001d9ad9c0/boot$ sudo -i
root@ubuntu:~# wget -O chroot.sh http://ompldr.org/vNW8wNw
--2010-09-28 19:14:41--  http://ompldr.org/vNW8wNw
Resolving ompldr.org... 178.63.66.150
Connecting to ompldr.org|178.63.66.150|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1977 (1,9K) [text/x-shellscript]
Saving to: `chroot.sh'

100%[=======================================================================================================================================>] 1 977       --.-K/s   in 0,009s  

2010-09-28 19:14:41 (207 KB/s) - `chroot.sh' saved [1977/1977]

root@ubuntu:~# chmod +x chroot.sh
root@ubuntu:~# ls
chroot.sh
root@ubuntu:~# ./chroot.sh UUID="2fb32700-e658-4874-916a-7c001d9ad9c0"
Mounting UUID=2fb32700-e658-4874-916a-7c001d9ad9c0 to /mnt... OK
Mounting kernel and device filesystems: proc sys dev.
Copying /etc/resolv.conf.
Entering chroot.
--------------------------------------------------------------------------------
root@ubuntu:/# update-initramfs -u -k all
update-initramfs: Generating /boot/initrd.img-2.6.32-24-generic
root@ubuntu:/# update-grub
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-2.6.32-24-generic
Found initrd image: /boot/initrd.img-2.6.32-24-generic
Found memtest86+ image: /boot/memtest86+.bin
ls: невозможно получить доступ к /casper-rw-backing: Нет такого файла или каталога
ls: невозможно получить доступ к /casper-rw-backing: Нет такого файла или каталога
ls: невозможно получить доступ к /casper-rw-backing: Нет такого файла или каталога
ls: невозможно получить доступ к /casper-rw-backing: Нет такого файла или каталога
ls: невозможно получить доступ к /casper-rw-backing: Нет такого файла или каталога
ls: невозможно получить доступ к /casper-rw-backing: Нет такого файла или каталога
done
root@ubuntu:/# 

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

ls: невозможно получить доступ к /casper-rw-backing: Нет такого файла или каталога

это смертельно, или можно перезагружать комп? просто перезапуск около получаса занимает, у меня или флешка тормоз, или юсб порт тормоз

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

ок, перезагружусь тогда попробую. если не покатит перезагрузка около получаса. толи порт юсб тормоз, толи флешка, но убунту с флешки стартует мама как долго

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

рецепт со скриптом помог, хотя кажется стартовать система стала дольше. но работает как ей и положено.

а в чем ошибка то была?

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

сейчас я уже с убунты что на жестком диске пишу )

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

> а в чем ошибка то была?
Был повреждён файл initramfs, который используется ядром в качестве корневой файловой системы и в котором хранятся скрипты, при помощи которых подключаются необходимые модули, монтируется основная файловая система (например, она может быть шифрованной) и, наконец, запускается ubuntu с раздела на жёстком диске.

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

хм.

зависшее приложение из пункта меню Система - Администрирование - Проверка системы оказывается может сделать и такое...

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

Огромное спасибо за помощь, сам бы я не докопался и переустановил в лучшем случае убунту заново, в худшем (а может и более лучшем) ВинХП )

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

Хм, посмотрел я на этот system test и не заметил ничего подозрительного.

Можете точно указать, на каком этапе система повисла?

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

ммм, ну там выскакивает окно и еще окно с прогресбаром. вот собсна и все. прогресбар гдет час бегал пока я в инете сидел

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

потом перезагрузился и больше зайти не смог

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

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

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