Home » Ошибки » Kernel panic not syncing: VFS: Unable to mount root fs

Kernel panic not syncing: VFS: Unable to mount root fs

Словил сегодня неприятную ошибку на web сервере под CentOS 7. Уже начал потихоньку кирпичи откладывать, но в итоге отделался легким испугом. Поделюсь с вами решением этой неприятной ошибки, когда система просто не загружается.

Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, рекомендую познакомиться с онлайн-курсом «Администратор Linux» в OTUS. Курс не для новичков, для поступления нужно пройти .

Утро сисадмина не всегда начинается с кофе. Сегодня утром мне пишет один заказчик, а я как раз кофе наливал, что у него какие-то проблемы с web сервером — не загружаются картинки через админку. Захожу, проверяю, в самом деле. Движок пишет, что не может найти tmp папку. Ладно, думаю, ерунда какая-то, сейчас разберемся.

Захожу на сервер, смотрю логи сайта — ошибок нет. Смотрю системные логи за последнее время, тоже ничего особенного. Проверяю аптайм виртуалки — 370 дней. Думаю, пришло время для ребута. На виртуалке сайты не очень критичные, можно перезагрузить сервак. Думаю, что совмещу приятное с полезным — установлю последние обновления (ставятся регулярно, но без ребута) и перезагружусь.

Обновления не установились. Не запомнил, какая конкретно ошибка, но yum поругался на нехватку памяти. К слову, виртуалка была сильно зажата по памяти, потому что сайты там не сильно критичные жили, им приоритет низкий. Пошел на всякий случай на гипервизор и посмотрел консоль виртуальной машины. Там куча ошибок на нехватку памяти. Приходил OOM Killer и выключал Mysql. Удивился, что не было оповещений от мониторинга о нехватки памяти. Зашел в Zabbix, он показывает, что 200-300 мб памяти всегда были доступны. Надо будет отдельно разбираться, почему OOM Killer так рано прибивал Mysql сервер.

В общем, картинка вроде как в голове сложилась. Серверу не хватало памяти, он из-за этого начал глючить. Надо его перезагрузить и поднастроить, либо памяти добавить. Перезагружаю сервер. Жду… Не поднимается. Смотрю в консоль и начинаю немного мандражировать. Виртуалка не загружается, там ошибка:

Kernel panic not syncing: VFS: Unable to mount root fs

И много еще чего написано. Жаль, скрин сразу не сделал. Делаю ресет системе и снова вижу эту же ошибку. Тут запустилось производство кирпичей. В голове сразу же побежали мысли, что там с бэкапами. Делаться то они делаются, я даже уведомления в почте каждый день смотрю, что все в порядке. Но когда я последний раз вручную разворачивал эти бэкапы? Очень давно.

Еще один рестарт и та же ошибка. Немного запаниковал, встал, прошелся по комнате, подумал, что делать. Оценил обстановку. Больше всего испугался, что накрывается жесткий диск сервера, где куча всяких виртуалок и сайтов. Бэкапы вроде все есть, но все это настраивать, разворачивать, где-то сервак искать и т.д. В общем, думаю, примерно масштаб бедствия вы представляете.

Пошел на гипервизор, там вроде все в порядке, ошибок никаких нет. На других виртуалках тоже. С дисками, по идее, все нормально. А что же тогда тут случилось? В голову приходит мысль загрузиться на старом ядре. Выбираю старое ядро, загружаюсь — все в порядке. ОТЛЕГЛО.

Сразу стало понятно, в чем проблема. На серваке не хватало памяти. Я запустил обновление, оно отработало с ошибкой. Скорее всего не собрался initramfs для нового ядра. Загрузка старого ядра, в данном случае и было решением ошибки:

Kernel panic not syncing: VFS: Unable to mount root fs

Добавил виртуальной машине памяти, обновил ее еще раз. Теперь все прошло нормально. Перезагружаться пока не пробовал, вечером сделаю. Думаю, все в порядке будет.

Онлайн курс по Linux

Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, рекомендую познакомиться с онлайн-курсом «Администратор Linux» в OTUS. Курс не для новичков, для поступления нужны базовые знания по сетям и установке Linux на виртуалку. Обучение длится 5 месяцев, после чего успешные выпускники курса смогут пройти собеседования у партнеров. Что даст вам этот курс:
  • Знание архитектуры Linux.
  • Освоение современных методов и инструментов анализа и обработки данных.
  • Умение подбирать конфигурацию под необходимые задачи, управлять процессами и обеспечивать безопасность системы.
  • Владение основными рабочими инструментами системного администратора.
  • Понимание особенностей развертывания, настройки и обслуживания сетей, построенных на базе Linux.
  • Способность быстро решать возникающие проблемы и обеспечивать стабильную и бесперебойную работу системы.
Проверьте себя на вступительном тесте и смотрите подробнее программу по .

Выводы

Не понравилась статья и хочешь научить меня администрировать? Пожалуйста, я люблю учиться. Комментарии в твоем распоряжении. Расскажи, как сделать правильно!
  1. Очень внимательно относитесь к обновлениям. Не запускайте их в обычном терминале по ssh. Если оборвется связь и обновление ядра не выполнится полностью, можете получить такую же проблему, как я сегодня. Обновляйтесь в screen или tmux.
  2. Не торопитесь перезагружать сервер в случае проблем. Лучше сразу же сделать бэкап свежих данных, пока сервер еще живой. Так у вас как минимум, будут самые актуальные бэкапы, а не ночные. В принципе, я так всегда и делаю, но тут расслабился, так как сервер не сильно критичный и простой допускает.
  3. Перед перезагрузкой убедитесь, что у вас есть доступ к терминалу. Я всегда это делаю.
  4. И самый важный пункт — не занимайтесь обслуживанием сайтов, для которых недопустим простой. Нервы и спокойная жизнь дороже. Пусть это делает кто-то другой :)

Помогла статья? Есть возможность отблагодарить автора

Автор Zerox

Zerox
Владимир, системный администратор, автор сайта. Люблю настраивать сервера, изучать что-то новое, делиться знаниями, писать интересные и полезные статьи. Открыт к диалогу и сотрудничеству.

17 комментариев

  1. Аватар
    Ярослав

    Есть еще одна шикарная история связанная с HP. Купил я себе под эксперименты DL60 gen9 заказную конфигурацию, тестировать почтовые конфиги (я чисто мейловый админ) ждал 3 недели и наконец дождался. Закинул в стойку, начал обновлять прошивку, все вроде ок, ребут сервера все запускается, но с одним нюансом в сервере пропало ILO, вот прям вообще как будто и не было никогда, BIOS, Intelligent Provisioning, все работает как надо, а ILO нет, танцую с бубном вокруг сервера шью разными прошивками и старыми и новыми, а его нету, вот прям нет такого пакета и нечего обновлять/откатывать. Ок, звоню в ТП (а мы дофига энтерпрайзный клиент) они такие хм хз что такое ща инженер приедет, через пару часов приезжает боец, полдня прыгает вокруг серва, говорит хз что это я его забираю к нам, я говорю ну ок, через пару дней звонят, мы говорят не поняли что это было поэтому сервер под замену, а это еще 3 недели, я говорю нунахер, мне уже горит, ILO не критично все равно сервак в мониторинг не пойдет, обойдусь и так.
    Вообще проходит почти год сервер крутит тестовые конфиги, все отлично, и тут под новый год становится спокойно, все работает в норме, тестовых конфигов никаких нету, все как в болоте. Дай думаю в качестве факультатива поковыряю железку, а то скучно. Включаю гугл и через несколько часов поиска нахожу похожую проблему на полузаброшенном форуме бразильских!!! айтишников, там человек победил эту проблему при помощи прошивки с определенной комбинацией переключателей на материнке, в итоге 40 минут делов и ILO снова с нами, хотя и нахрен в принципе не нужно. Вот такой у нас суровый в мире ынтырпрайз.

  2. Аватар
    Ярослав

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

    • Zerox

      Могу представить ощущения :)) Сам с таким сталкивался не раз. За это не люблю современное администрирование. Качество ПО хреновое, наличие кучи уязвимостей вынуждает постоянно ставить обновления. Тут к гадалке не ходи, рано или поздно что-то сломается и застраховаться от этого невозможно. Падали железки от обновлений даже у самых крутых брендов с купленной поддержкой. Тупо ошибка прошивки и привет, везите в сервис перепрошивать или ждите замену.

  3. Аватар

    «Если оборвется связь и обновление ядра не выполнится полностью, можете получить такую же проблему, как я сегодня. Обновляйтесь в screen или tmux.»
    А есть простой способ как настроить это в tmux? А то там какие-то всё сторонние дополнения требует?

    • Аватар

      есть, Byobu.
      По сабжу, странно, что транзакция обновлений не вылетела с ошибкой, после неудачной генерации initramfs, после которой как раз и обновляется запись в grub. Сохранились ли логи?

      • Zerox

        В каких логах может остаться что-то полезное? В messages и yum.log информации об этой ошибке нет.

    • Zerox

      Простой способ использовать screen. Там никаких настроек не надо вообще.

  4. Аватар

    Вопрос:
    Если это ВМ и сама FS целая, то зачем «мысли» о бекапах когда vhd (или что у тебя там за формат вирт харда) можно примонтировать к новой ВМ на крайняк и ресторить с него, вплоть до chroot?

  5. Аватар

    А что значит , загрузиться на старом ядре ? И я так и не понял как это сделать ?

    • Zerox

      Загрузчик grub перед загрузкой сервера обычно предлагает выбрать на каком ядре загрузиться. По умолчанию идет самое свежее, но есть возможность выбрать несколько предыдущих. В Centos это явно видно при запуске сервера, не заметить невозможно.

      • Аватар

        Понял, спасибо большое, как то необращял внимания на эти моменты, эти буду иметь ввиду, спасибо !

  6. Аватар

    «Больше всего испугался, что накрывается жесткий диск сервера, где куча всяких виртуалок и сайтов»

    А как же отказоустойчивость? Или у Вас все виртуалки на одном диске, без рейда и т.п?

    • Zerox

      Да это условно я написал жесткий диск. Конечно же там рейд, причем железный, с мониторингом и т.д. Но всякое бывает, это не панацея. Все зарезервировано, но в любом случае такие аварии это куча внезапной и срочной работы.

  7. Аватар
    Евгений

    Вот поэтому у меня ребут сервера — это либо для загрузки с новым ядром, либо для изменения конфигурации «железа» у виртуалки, либо в качестве жеста отчаяния

  8. Аватар

    у меня такая же ситуация в жизни была на оракле, Kernel panic на Oracle Linux and Unbreakable Enterprise Kernel , решилось переходом на stable ветку

  9. Аватар

    вот за такие моменты я и люблю эту работу )

Добавить комментарий

Ваш e-mail не будет опубликован.

Нажимая кнопку "Отправить комментарий" Я даю согласие на обработку персональных данных.