Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: После чистки старых ядер невозможно дождаться окончания процесса генерации  (Прочитано 961 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн asvetl

  • Автор темы
  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля
Доброго дня всем!

Есть у нас в организации инет-шлюз, сервачок на ubuntu server 12.04. Черт меня дернул подчистить на /boot старые ядра. После чистки немного прифигел, когда система сгенерила для grub только memtest. Оказывается, удаляя по одному ядра через apt-get, удалилось и текущее. В общем, и усталость, и невнимательность, и что там еще привели к тому, что боюсь сервер перезагружать.

Пробую, как пишет система, dpkg --configure -a и зависаю на

Настраивается пакет linux-image-3.5.0-32-generic (3.5.0-32.53~precise1) ...
Running depmod.
update-initramfs: deferring update (hook will be called later)
Not updating initrd symbolic links since we are being updated/reinstalled
(3.5.0-32.53~precise1 was configured last, according to dpkg)
Not updating image symbolic links since we are being updated/reinstalled
(3.5.0-32.53~precise1 was configured last, according to dpkg)
Examining /etc/kernel/postinst.d.
run-parts: executing /etc/kernel/postinst.d/apt-auto-removal 3.5.0-32-generic /boot/vmlinuz-3.5.0-32-generic
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 3.5.0-32-generic /boot/vmlinuz-3.5.0-32-generic
update-initramfs: Generating /boot/initrd.img-3.5.0-32-generic

Ждал сутки, снимал задачу, заново запускал - все тот же результат. Помогите хотя бы проскочить этот "update-initramfs: Generating /boot/initrd.img-3.5.0-32-generic", чтоб перегрузиться, дальше я разрулю сам.

apt-get при попытке установить ядра немного старее тоже ругается на неувязки и предлагает опять же dpkg --configure -a

Оффлайн vselax

  • Активист
  • *
  • Сообщений: 309
    • Просмотр профиля
Если совсем дуболомно, то можно собрать свое ядро с нужным именем и номером, но придется качать тулзы, что иногда нежелательно.

Оффлайн asvetl

  • Автор темы
  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля
Да скачать то можно, просто собрать ядро - опять же будет вызван dpkg --configure по-любому, а он как раз и не проходит.

Может, какой процесс прибить или временные файлы вычистить, или просто прочитать, где у него затык?

В логах я не знаю, куда рыть, в обычном /var/log/messages ничего по этому поводу не ругается.

Оффлайн vselax

  • Активист
  • *
  • Сообщений: 309
    • Просмотр профиля
Цитировать
опять же будет вызван dpkg --configure по-любому
Когда? Я так понимаю, это как-то связанно с генерацией .deb пакета? Так его не обязательно делать. Установите make install`ом. Ядро лежит аккуратно, вычистить просто.
Попробуйте еще через aptitude ядро поставить, он лучше разные проблемы разруливает.

Оффлайн asvetl

  • Автор темы
  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля
alex@brak:~$ sudo aptitude install linux-image-3.5.0-34-generic
E: Работа dpkg прервана, вы должны вручную запустить «sudo dpkg --configure -a» для устранения проблемы.
E: Работа dpkg прервана, вы должны вручную запустить «sudo dpkg --configure -a» для устранения проблемы.
alex@brak:~$

все равно натыкаюсь на эту команду ((

dpkg просто конфигурирует свежеустановленные пакеты, а генерятся в моем случае файлы для загрузки. Ща попробую найти информацию по установке ядер в ubuntu, попробую.

Пользователь решил продолжить мысль 17 Июнь 2013, 15:53:16:
Нашел скрипт для автоматической установки нового ядра в ubuntu. Но опять же

Running depmod.
update-initramfs: deferring update (hook will be called later)
Examining /etc/kernel/postinst.d.
run-parts: executing /etc/kernel/postinst.d/apt-auto-removal 3.8.8-030808-generic /boot/vmlinuz-3.8.8-030808-generic
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 3.8.8-030808-generic /boot/vmlinuz-3.8.8-030808-generic
update-initramfs: Generating /boot/initrd.img-3.8.8-030808-generic

и висим. Додумался посмотреть параллельно, что ж там за активность через ps -axf, и вот дерево процесса:

3441 ?        Ss     0:00  \_ sshd: alex [priv]   
 3646 ?        S      0:00  |   \_ sshd: alex@pts/0   
 3647 pts/0    Ss     0:00  |       \_ -bash
 4042 pts/0    S+     0:00  |           \_ sudo sh kernel-3.8.8
 4043 pts/0    S+     0:00  |               \_ sh kernel-3.8.8
 4054 pts/0    S+     0:00  |                   \_ sudo dpkg -i linux-headers-3.8.8-030808-generic_3.8.8-030808.201304170248_amd64.deb linux-headers-3.8.8-030808_3.8.8-030808.201304170248_all.deb linux-image-3.8.8-030808-generic_3.8.8-030808.201304170248_amd64.deb linux-image-extra-3.8.8-030808-generic_3.8.8-030808.201304170248_amd64.deb
 4055 pts/0    S+     0:05  |                       \_ dpkg -i linux-headers-3.8.8-030808-generic_3.8.8-030808.201304170248_amd64.deb linux-headers-3.8.8-030808_3.8.8-030808.201304170248_all.deb linux-image-3.8.8-030808-generic_3.8.8-030808.201304170248_amd64.deb linux-image-extra-3.8.8-030808-generic_3.8.8-030808.201304170248_amd64.deb
 4103 pts/0    S+     0:00  |                           \_ /usr/bin/perl /var/lib/dpkg/info/linux-image-3.8.8-030808-generic.postinst configure
 4127 pts/0    S+     0:00  |                               \_ run-parts --verbose --exit-on-error --arg=3.8.8-030808-generic --arg=/boot/vmlinuz-3.8.8-030808-generic /etc/kernel/postinst.d
 4142 pts/0    S+     0:00  |                                   \_ /bin/sh -e /etc/kernel/postinst.d/initramfs-tools 3.8.8-030808-generic /boot/vmlinuz-3.8.8-030808-generic
 4144 pts/0    S+     0:00  |                                       \_ /bin/sh /usr/sbin/update-initramfs -c -t -k 3.8.8-030808-generic -b /boot
 4146 pts/0    S+     0:00  |                                           \_ /bin/sh /usr/sbin/mkinitramfs -o /boot/initrd.img-3.8.8-030808-generic.new 3.8.8-030808-generic
 4408 pts/0    S+     0:00  |                                               \_ /bin/sh /usr/sbin/mkinitramfs -o /boot/initrd.img-3.8.8-030808-generic.new 3.8.8-030808-generic
 4409 pts/0    S+     0:00  |                                                   \_ modprobe --set-version=3.8.8-030808-generic --ignore-install --quiet --show-depends btrfs
 4410 pts/0    S+     0:00  |                                                   \_ awk /^insmod/ { print $2 }

Так вот, можно ли обмануть этот список прог, подсунуть ему уже что-то готовое?
« Последнее редактирование: 17 Июнь 2013, 15:53:16 от asvetl »

Оффлайн vselax

  • Активист
  • *
  • Сообщений: 309
    • Просмотр профиля
Кроме ядра, менеджер пакетов работает нормально?

Пользователь решил продолжить мысль 17 Июнь 2013, 16:08:18:
Видимо, придется собрать ядро из исходников. Посмотрите рецепт:
http://help.ubuntu.ru/wiki/%D1%81%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_%D1%8F%D0%B4%D1%80%D0%B0
Можно попробовать собрать ядро на другой машине, но она должна быть аналогична серверу (та же версия ubuntu, та же архитектура процессора). Просто на старой, я думаю, теперь могут возникнуть проблемы с выполнением
make oldconfigведь старое ядро уже выпилено.

Пользователь решил продолжить мысль 17 Июнь 2013, 16:22:56:
Вот, нашел рецепт:

(Нажмите, чтобы показать/скрыть)

Ваше ядро наверняка будет модульным. Не слишком увлекайтесь его оптимизацией, просто соберите, установите, перезагрузитесь с ним, удалите "хвосты" от старого ядра и установите новое.

Пользователь решил продолжить мысль 17 Июнь 2013, 16:26:25:
Не забудьте
sudo update-grubпосле установки ядра сделать!
« Последнее редактирование: 17 Июнь 2013, 16:26:25 от vselax »

Оффлайн asvetl

  • Автор темы
  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля
vselax, что apt-get, что aptitude просят все равно запустить "dpkg --configure -a".

Пользователь решил продолжить мысль 17 Июнь 2013, 16:37:37:
скорее всего, стопорится на update-initramfs - больно уж часто после этой строки подвисон

Пользователь решил продолжить мысль 17 Июнь 2013, 16:46:55:
Ага, что-то новое, после aptitude -clean уже запустился apt-get и говорит:

# apt-get install make
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Предлагаемые пакеты:
  make-doc
НОВЫЕ пакеты, которые будут установлены:
  make
обновлено 0, установлено 1 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
не установлено до конца или удалено 4 пакетов.
Необходимо скачать 119 kБ архивов.
После данной операции, объём занятого дискового пространства возрастёт на 324 kB.
Получено:1 http://ua.archive.ubuntu.com/ubuntu/ precise-updates/main make amd64 3.81-8.1ubuntu1.1 [119 kB]
Получено 119 kБ за 0с (213 kБ/c)
Selecting previously unselected package make.
(Чтение базы данных ... на данный момент установлено 159570 файлов и каталогов.)
Распаковывается пакет make (из файла .../make_3.81-8.1ubuntu1.1_amd64.deb)...
Обрабатываются триггеры для man-db ...
Настраивается пакет linux-image-3.5.0-32-generic (3.5.0-32.53~precise1) ...
Running depmod.
update-initramfs: deferring update (hook will be called later)
Failed to symbolic-link /boot/initrd.img-3.5.0-32-generic to initrd.img:File exists at /var/lib/dpkg/info/linux-image-3.5.0-32-generic.postinst line 614.
dpkg: не удалось обработать параметр linux-image-3.5.0-32-generic (--configure):
 подпроцесс установлен сценарий post-installation возвратил код ошибки 17
Настраивается пакет linux-image-3.5.0-34-generic (3.5.0-34.55~precise1) ...
Running depmod.
update-initramfs: deferring update (hook will be called later)
Failed to symbolic-link boot/initrd.img-3.5.0-34-generic to initrd.img:File exists at /var/lib/dpkg/info/linux-image-3.5.0-34-generic.postinst line 614.
dpkg: не удалось обработать параметр linux-image-3.5.0-34-generic (--configure):
 подпроцесс установлен сценарий post-installation возвратил код ошибки 17
Настраивается пакет linux-image-3.8.8-030808-generic (3.8.8-030808.201304170248) ...
Running depmod.
update-initramfs: deferring update (hook will be called later)
The link /initrd.img is a dangling linkto /boot/initrd.img-3.8.8-030808-generic
Examining /etc/kernel/postinst.d.
run-parts: executing /etc/kernel/postinst.d/apt-auto-removal 3.8.8-030808-generic /boot/vmlinuz-3.8.8-030808-generic
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 3.8.8-030808-generic /boot/vmlinuz-3.8.8-030808-generic
update-initramfs: Generating /boot/initrd.img-3.8.8-030808-generic


На 614 строке у нас код:

614:    symlink($Old . "$Name", "$Link_Dest") ||
615:      die("Failed to symbolic-link ${Old}$Name to $Link_Dest:$!");
616:    warn "ln -s ${Old}$Name $Link_Dest" if $DEBUG;

Значит, не нравится ему ссылка

/boot/initrd.img-3.5.0-34-generic to initrd.img:File exists at /var/lib/dpkg/info/linux-image-3.5.0-34-generic.postinst line 614.
Попробую удалить и снова запустить apt-get

Пользователь решил продолжить мысль 17 Июнь 2013, 16:53:53:
Нет, все равно стопоримся на
update-initramfs: Generating /boot/initrd.img-3.8.8-030808-generic
« Последнее редактирование: 17 Июнь 2013, 16:53:53 от asvetl »

Оффлайн vselax

  • Активист
  • *
  • Сообщений: 309
    • Просмотр профиля
Цитировать
Распаковывается пакет make (из файла .../make_3.81-8.1ubuntu1.1_amd64.deb)...
Обрабатываются триггеры для man-db ...
Настраивается пакет linux-image-3.5.0-32-generic (3.5.0-32.53~precise1) ...
Running depmod.
update-initramfs: deferring update (hook will be called later)
Хм, установка make затрагивает ядро?
Остается грязный хак: установить точно такую систему на виртуалку, из нее скопировать ядро в поврежденную систему. Но я не знаю как это переживет initramfs? Ну и grub обновить. Потом придется рисковать и перезагружать. На какое время можно остановить систему?

Оффлайн asvetl

  • Автор темы
  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля
Да я уже и сам пробую аналогичный сервер на виртуалбоксе поднять, если уж копирование ядра не сработает, то буду clonezilla на помощь звать. Сервер в принципе на ночь свободен, если договориться со всеми коннектящимися снаружи вовремя поделать свою удаленную работу. Проблема в том, что от города далеко и не хотелось бы потом искать способ вернуться в город.

 

Страница сгенерирована за 0.085 секунд. Запросов: 25.