Неприятная особенность Ubuntu Linux для системных администраторов

    Проводя реорганизацию дискового пространства для хранения информации на производственном сервере, работающем под управлением Ubuntu Linux, открылась очень интересная особенность: директория /var/run обязательно должна быть на корневой файловой системе!
    Я собрал RAID-массив, перенес на него /var и вписал точку монтирования. При загрузке системы начали наблюдаться очень странные вещи: большая часть демонов автоматически перестала загружаться при старте, не запускается сеть (не создается /var/run/network) и подобные аномалии. При этом просмотр журналов ничего конкретного не дает.
    Решение: создать на корневой ФС (/) каталоги /var/run (root:root, drwxr-xr-x) и /var/lock (root:root, drwxrwxrwt), что даст нормальный запуск, а сразу после старта /var, расположенный на массиве, будет корректно включен в систему.

    Похожие публикации

    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 43

      0
      Сервер тестовый, для разработчиков, работает под Ubuntu Linux 6.10 или 7.04 (уже точно не помню).
        0
        А потом сервисы нормально функционируют? Ведь то что они прописали в кореневой(/var/run /var/lock) фактически нет.
        По моему тут очередность запуска сервисов того… Сперва смонтироваться нужно…
          0
          Потом — после создания /var/run в корне ФС? Да, нормально. Кстати, вот еще нашлось.
        0
        8.10 rc1?
          0
          Нет-нет-нет! Старый релиз, уже неподдерживается… 6.10 или 7.04. Это единственный экземпляр, поэтому ничего не могу сказать по данной особенности в более поздних выпусках — возможно исправили, багрепорт отправлял…
            0
            ясно, 7.04 умер ещё 19ого — может в этом проблема ;) ubuntu.com/news/ubuntu-7.04-end-of-life
            +1
            не верю!

            вероятно, кто-то напутал с порядком запуска демонов.
              0
              Точно нет. Все из коробки, как было. Никаких правок.
                +4
                5.10 — 8.04
                несколько машин и на всех /var это отдельный диск. подобных проблем никогда не было.
                  0
                  Раздел был вынесен на отдельный диск во время установки или позже? Возможно, также имеет значение тип диска — физический или массив…
                    +1
                    Были и до установки и после(6.10). сейчас (8.04) до установки. массивов не было, возможно причина в этом, но не представляю как это может влиять.
                      0
                      Было, было. У меня на десктопе даже было. Гномик какие-то сервисы запустить не мог, при старте зависал и потом сообщение выдавал, что стартануть что-то не может. Погуглив пришёл к тому же, что и топикстартер. Диск был один физический, но разделы разные, не рейд, не лвм. Примерно на версиях 6.06-7.04, но точно не скажу.
                  +1
                  Нет, всё верно, подтверждаю. Было такое. Несколько релизов подряд вреде бы даже. На 8.10 вот уже нет такого, когда пропало не могу точно сказать, так как пару релизов перед 8.10 пропустил.
                    0
                    есть такой глюк. с демонами все в порядке. оно появляется если создать раздел под var уже после инсталляции, и монтировать его в систему. в каталоге в который монтируется var должен быть заранее создан подкаталог /var/run (и не он один, вроде-бы там еще чего-то не хватало)
                    +2
                    solnishko@fileserv:~$ uname -a
                    Linux fileserv 2.6.20-15-server #2 SMP Sun Apr 15 07:41:34 UTC 2007 i686 GNU/Linux

                    подобной проблемы не замечено
                      +9
                      Солнышко вы наше…
                        +7
                        Cервер не мой, я просто вбил uname.
                          +6
                          «Мопед не мой, я просто разместил объяву» :)
                            +10
                            Спасибо, Капитан Очевидность!
                        +1
                        может lsb_release -a?
                        +3
                        Просто даемоны стартовали раньше, чем были примонтированы локальные файловые системы.
                        Может что-то ударило в голову системе upstart и она запустила /etc/init.d/localmount чуть позже чем следовало.

                          0
                          Это было бы немного странно, но в эту сторону можно копнуть. Все-таки в ubuntu над временем запуска системы разработчики всегда хитро колдовали, может что напутали в инициализации.
                            0
                            Да, скорее всего какие-то особенности или скорее всего «сырые» моменты системы upstart.
                              0
                              ага, а если создать в точке монтирования подкаталог /var/run демоны начинают стартовать в дргом порядке? демоны там не причем
                          +1
                          Бред. Все работает и работало.
                          df -h
                          Filesystem Size Used Avail Use% Mounted on
                          /dev/sde5 957M 241M 717M 26% /
                          varrun 3.9G 100K 3.9G 1% /var/run
                          varlock 3.9G 0 3.9G 0% /var/lock
                          udev 3.9G 72K 3.9G 1% /dev
                          devshm 3.9G 0 3.9G 0% /dev/shm
                          /dev/sde2 89M 20M 64M 24% /boot
                          /dev/sde8 32G 12G 20G 38% /home
                          /dev/sde6 19G 642M 19G 4% /usr
                          /dev/md2 746G 25G 721G 4% /var

                          И так на десятке серверов еще со времен 7.04
                            +2
                            Запах мистики заставил провести поиск в Google по ключевым словам «ubuntu var run». Оказывается, у кого-то такая проблема наблюдается, а у кого-то, похоже, нет… Буду рад, если при подобных затруднениях, эта заметка поможет раньше уйти домой. ;)
                              0
                              Как по мне, так желание посетить гугл должно возникать ранее.
                              Спасибо за заметку.
                              0
                              Присоединюсь к предыдущим ораторам: с незапамятных времён делал для /var отдельный раздел, с версий 6.06 по 8.04 включительно не было даже намёка на какие-либо проблемы.
                                0
                                Присоединяюсь к большинству. Работало и работает в данный момент. Вы, возможно, просто где-то перемудрили.
                                  +1
                                  varrun 1008M 228K 1008M 1% /var/run

                                  На убунту, как и на дебиан тестинг /var/run живет в tmpfs — что позволяет избавиться от различных артефактов, вызванных, к примеру, нештатной перезагрузкой сервера.
                                    0
                                    Debian testing
                                    df -h
                                    Filesystem Size Used Avail Use% Mounted on
                                    /dev/sda1 60G 2.6G 54G 5% /
                                    tmpfs 4.0G 0 4.0G 0% /lib/init/rw
                                    udev 10M 216K 9.8M 3% /dev
                                    tmpfs 4.0G 0 4.0G 0% /dev/shm
                                    /dev/sdb1 268G 29G 226G 12% /var

                                    Полный порядок
                                    +1
                                    «Проводя реорганизацию дискового пространства для хранения информации на производственном сервере, работающем под управлением Ubuntu Linux, открылась очень интересная особенность: директория /var/run обязательно должна быть на корневой файловой системе!
                                    Я собрал RAID-массив, перенес на него /var и вписал точку монтирования. При загрузке системы начали наблюдаться очень странные вещи: большая часть демонов автоматически перестала загружаться при старте, не запускается сеть (не создается /var/run/network) и подобные аномалии. При этом просмотр журналов ничего конкретного не дает.»

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

                                    пс: ограничения действительно есть, к примеру у FreeBSD /etc и /boot должны быть на одном разделе, для того чтобы после иницилизации загрузчика, загрузчик смог прочитать /etc/fstab и смонтировать файловые системы. :)
                                      0
                                      Как говорится, «не первый год замужем», отсюда мне интересно, из чего же очевидно, что проблемы в правах доступа, ведь я совершенно уверен в обратном — с правами все в порядке. :)
                                        –5
                                        те кто «не первый год замужем» не используют бубунту в частности и гавнолинуксы вообще :)
                                        0
                                        У debian этот момент решили с помощью initramfs. Так что хватает и только /boot — все остальные важные данные экспортируются в загрузчик.
                                        0
                                        может apparmor не позволяет, я примерно с такимже столкнулся при переносе /tmp
                                          0
                                          Нет, AppArmor не установлен. Скорее всего проблема кроется в upstart.
                                          0
                                          Собственно вопрос был решен в комментариях, но суть не в источнике проблемы.
                                          Просто, на мой взгляд, сразу было очевидно, что подобных выводов делать ни в коем случае нельзя.
                                          Не хочу показаться невежливым, но базовых понятий файловой системы UNIX должно было быть достаточно, чтобы это понять.
                                            0
                                            нет, не достаточно. нужно ещё быть и как минимум внимательным.
                                            0
                                            есть такая штука с 8.04 убунту сервер.
                                            у меня просто 8.04 не встал на сервер с железнам сказевым рейдом, а вот сервер прекрасно на нем работает, и каши не просит. и почтовик на старой шапке прекрасно пашет).
                                            я конечно понимаю что винда рулез вот толкьо у знакомого админа с виндой и билингом вечные непонятки и не только с билингом).
                                            а я сплю спокойно на работе).
                                              0
                                              если администратор не долбоеб, то и с вендами у него будет проблем, главное не быть долбоебом. ну вы понимаете. и на работе не надо спать, сон на работе — это простотак прожитые часы жизни. если есть свободное время, то лучше его занять чем-то полезным: заняться изучением нового материала или хотя бы сходить в спортзал. =) в крайнем случае позвать симпатичную сослуживицу в кино…
                                              0
                                              сплю фигурально само собой) просто серваки меня совершенно не напрягают а работают себе и работают, хотя нагрузка на почтовик очень некислая.
                                              а комп там обычная машина на целероне 1800 и 512 мегабайт памяти.
                                              а в кино с работы не отпустят(. должен сидет ьв здании с 9 до 18ти минус обед(
                                                0
                                                НЕПРИЯТНАЯ ОСОБЕННОСТЬ — это не полное знание работы ОС ну и недостаток структурированной информации.

                                                Есть два момента — у проблемы есть решение и проблему можно избежать изначально :) Единственная проблема линуха, что изменение системы пост-фактум требует больше знаний, чем установка линуха на готовую конфигурацию.

                                                Нужно вынести запуск RAID в initrd (initramfs) — как это сделать поищи по кейворду initramfs-tools. В таком случае запуск RAID будет выполнен до маунта рута и проблем никаких не будет никогда. Нужно проверить чтоб грузился модуль
                                                /etc/initramfs-tools/modules — тут нужно проверить наличие нужного модуля, также надо проверить наличие скриптов для запуска. И затем обновить ( update-initramfs ).
                                                Так, как я не знаю, как ты ставил RAID и каким модулем воспользовался, то конкретно посоветовать не могу.
                                                Еще один момент — если это сделать с начала установки с Alt CD — то вся нужная инфа сразу же попадет в init и проблем не будет out of the box.

                                                Читать тут вдумчиво и внимательно: manpages.develpub.com/man8/initramfs-tools/
                                                Данный документ раскрывает все секреты загрузки линукса и при желании можно сильно изменить процесс загрузки для особо извращенных вариантов. Например RAID + DM-CRYPT + LVM (в случае с EEPC потребовалось слегка исправить скрипты для поддержки медленных девайсов типа кардридера, которые были включены в RAID :)

                                                Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                Самое читаемое