Обновил slackware (Cannot open root)

SLAX, Deep Style, ZenWalk

Модератор: Модераторы разделов

splinter
Сообщения: 33
ОС: Linux slackware 11

Обновил slackware

Сообщение splinter »

Всем здрям. Обновил slackware как сказанно в UPGRADE.TXT, правда обновлял с 12.0 до 12.2, изменил lilo.conf, после перезагрузки вываливается ошибка VFS: Cannot open root device "341" or unknown(3,65). Заметил что сменились названия разделов. раньше linux был на /dev/hdb1 стал /dev/sdb1, MBR прописан в /dev/sda1, переделал lilo.conf и fstab, указав в качестве root=/dev/sdb1 записал lilo в MBR /dev/sda ошибка все равено осталась. Подскажите как запустить систему :(
Спасибо сказали:
seeman
Сообщения: 1
ОС: Slackware,rpm-based,FreeBSD

Re: Обновил slackware

Сообщение seeman »

У меня тоже самое при попытке поставить свежее ванильное ядро с kernel.org. Имена разделов-это во всех новых ядрах теперь sd* вместо hd* (унификация)
Опцию отключающую унификацию в конфиге ядра не нашел. Подсовывал oldconfig-бесполезно. Кто-нибудь делал?
2 splinter: Я восстановил старую систему так-
Загрузись с дистрибутивного cd-rom со слакой,
затем

Код: Выделить всё

mkdir /mnt/hd
mount /dev/hda2 /mnt/hd (подразумеваю, что boot,sbin и etc на одном разделе-hda2)
chroot /mnt/hd

Верни в систему старый каталог /boot, со старым ядром (надеюсь есть бэкап или оно по крайней мере на месте осталось).
далее отредактируй lilo.conf, пропиши в нем свое старое ядро.

Типа:

Код: Выделить всё

image=/boot/vmlinuz(образ ядра)
label=linux
read-only


затем так:

Код: Выделить всё

/sbin/lilo -C /etc/lilo.conf
reboot

Должно запуститься старое ядро.

Новое сам пока не могу запустить :(
У тебя изощренный ум, Гэндальф, но ты не мудр.
Саруман Белый.
Спасибо сказали:
Аватара пользователя
bormant
Сообщения: 1354

Re: Обновил slackware

Сообщение bormant »

Тут нужно несколько уточнений:
1) какое из новых ядер стало текущим, huge или generic?
2) какой версии mkinitrd использовался для изготовления initrd?
3) все ли .new файлы были рассмотрены и проставлены вместо старых?
Стоит поставить обновленные mkinitrd-1.3.3-i486-1_slack12.2.tgz и udev-141-i486-2_slack12.2.tgz, там именно это (обработка симлинка на симлинк на / (/dev/root)) было исправлено.
Спасибо сказали:
splinter
Сообщения: 33
ОС: Linux slackware 11

Re: Обновил slackware

Сообщение splinter »

bormant писал(а):
13.05.2009 15:26
Тут нужно несколько уточнений:
1) какое из новых ядер стало текущим, huge или generic?
2) какой версии mkinitrd использовался для изготовления initrd?
3) все ли .new файлы были рассмотрены и проставлены вместо старых?
Стоит поставить обновленные mkinitrd-1.3.3-i486-1_slack12.2.tgz и udev-141-i486-2_slack12.2.tgz, там именно это (обработка симлинка на симлинк на / (/dev/root)) было исправлено.

huge, .new не менял, mkinitrd подозреваю что должен был обновиться с дистрибутивом.
Спасибо сказали:
Аватара пользователя
bormant
Сообщения: 1354

Re: Обновил slackware

Сообщение bormant »

splinter писал(а):
14.05.2009 09:46
.new не менял

а как же п.6 UPGRADE.TXT ?
6. Fix your config files. Some of the config files in /etc are going to
need your attention. You'll find the new incoming config files on
your system with the ".new" extension. You may need to fill these in
with information from your old config files and then move them over.

Feel brave? You can use this little script to install all of the
.new config files in /etc. If you've made any local changes you'll
need to add them to the newly installed files. Your old config files
will be copied to *.bak. Anyway, it might be an easier starting
point. Here it is:

#!/bin/sh
cd /etc
find . -name "*.new" | while read configfile ; do
if [ ! "$configfile" = "./rc.d/rc.inet1.conf.new" \
-a ! "$configfile" = "./group.new" \
-a ! "$configfile" = "./passwd.new" \
-a ! "$configfile" = "./shadow.new" ]; then
cp -a $(echo $configfile | rev | cut -f 2- -d . | rev) \
$(echo $configfile | rev | cut -f 2- -d . | rev).bak 2> /dev/null
mv $configfile $(echo $configfile | rev | cut -f 2- -d . | rev)
fi
done

Так что, думаю, нужно
1а) попробовать загрузиться в установленную слаку с диска 12.2 (на boot: ответить согласно подсказке isolinux-а про загрузку (после = пробел!) hugesmp.s root=/dev/sdb1 rdinit= ro). Не исключено, что не загрузится, тогда
1б) загрузиться с диска 12.2, на boot: нажать enter, смонтировать корень (например в /mnt) и
2) в etc все-таки разобраться с .new файлами, пусть и с помощью процитированного выше скрипта (в случае п.1б скорректировав вторую строку с cd /etc на cd /mnt/etc). перегрузиться.
3) Если не исправилось, выполнить п.1б, проапгрейдится до udev-141-i486-2_slack12.2.tgz (скачать, выполнить "#ROOT=/mnt upgradepkg udev-141-i486-2_slack12.2.tgz"), снова выполнить п.2

Просьба в случае любого (положительного или отрицательного) результата отписаться тут.

Обновление mkinitrd будет нужно до перехода на generic* ядро. Тот, который в дистре, имеет связанную с тем-же (/dev/root) багу.
Спасибо сказали: