Ubuntu server 12.04, превращенный в squashfs (toram) и частые паники ядра при запуске

У меня есть 64-битный сервер Ubuntu 12.04, упакованный в squashfs и загружающийся в оперативную память с помощью опции toram. Когда я перезагружаю машину, я испытываю панику в ядре 3 раза из 5, иногда несколько раз подряд, но в конечном итоге это сработает.

Это ошибка, которую я получаю:

Target filesystem doesn't have requested /sbin/init.
run-init: opening console: No such file or directory
Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000100

Очевидно, что / sbin / init существует, так как иногда система загружается без каких-либо проблем, без каких-либо изменений.

Более того, машина совершенно новая, и memtest предполагает, что нет проблем с самой оперативной памятью.

Вот как была подготовлена ​​моя установка:

  • Я собрал ядро ​​Ubuntu-3.11.0-18.32 со встроенной поддержкой aufs и squashfs на внешнем 64-битном сервере Ubuntu 12.04 VirtualBox VM.
  • Ядро было установлено на целевой машине, и я сделал squashfs из копии файловой системы с опцией -always-use-fragments.
  • Я установил сценарии Debian live-boot-3.0.1-1, чтобы иметь возможность загружать squashfs в RAM. Пункт меню grub выглядит так:

    menuentry 'Ubun2RAM' --class ubuntu --class gnu-linux --class gnu --class os {
    linux   /boot/vmlinuz-$(uname -r) BOOT=LIVE boot=live toram=filesystem.squashfs rw quiet splash apparmor=0 security="" $vt_handoff kernel.panic=1
    initrd  /boot/initrd.img-$(uname -r)
    }
    

Это основано на руководстве Ubun2RAM, доступном по адресу http://roadha.us/2013/01/resilient-ubuntu-boot-to-ram-usb-stick/, основное отличие в том, что в моем случае "ящик для большого пальца" и "target" - это одна установка сервера Ubuntu.

Я пытался либо выяснить, что вызывает панику ядра, либо заставить систему перезапуститься при ее обнаружении, передав kernel.panic=1 в качестве параметра загрузки, или поместив его в /etc/sysctl.conf.
Проблема в том, что я не могу просмотреть журналы неудачной попытки запуска (так как система загружается в ОЗУ), и система никогда не перезагружается после возникновения паники ядра (несмотря на то, что я настроил ее таким образом, как я думал).

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

Любой вклад приветствуется.
MJD

1 ответ

Решение

Мне удалось это выяснить.

Очевидно, старый диск, на котором я сохранил образ файловой системы, иногда не готов, когда сделана попытка доступа (и я узнал об этом случайно). Я никогда не ожидал, что версия с активной загрузкой, помеченная как "стабильная", не будет иметь функции ожидания готовности диска, но, похоже, это так. К счастью, я обнаружил, что есть альфа-ветка 4.x, и обновление до 4.0~alpha21 решило мою проблему.

Я также позаботился о том, чтобы проблема не была связана с моим ядром, и получил точно такой же результат с исходниками ядра 3.11.0-20.34, скомпилированными на данной машине.

Другие вопросы по тегам