Действительно ли нормально, что перезапуск требуется, чтобы монтировать USB после обновления ядра?

Возможно, Вы найдете его как цель /proc/(pid)/cwd. Это похоже на него, но я не нахожусь очень дома в /proc.

7
26.01.2012, 22:55
2 ответа

Вероятно, на том распределении, это нормально. Это зависит от того, как диспетчер пакетов устанавливает новое ядро.

Я предполагаю, что Ваш диспетчер пакетов (при обновлении ядра) сразу удаляет старый каталог модулей ядра. Таким образом, когда Вы попытаетесь смонтировать vfat-отформатированную палку usb, ядро, не загрузит необходимый vfat модуль ядра.

Для проверки моей гипотезы, в следующий раз, когда Вы обновляете ядро, можно проверить существование каталога модуля ядра:

  • перед обновлением необходимо найти, что оно существует каталог, названный как ток (старое) версия ядра.

    ~> ls -d /lib/modules/`uname -r`
    /lib/modules/3.0.0-1.2-desktop
    
  • после обновления, но перед перезагрузкой, необходимо найти, что каталог больше не существует (таким образом, Вы не можете управлять новыми аппаратными средствами).

    ~> ls -d /lib/modules/`uname -r`
    ls: cannot access /lib/modules/3.0.0-1.2-desktop: No such file or directory
    
  • после перезагрузки необходимо найти, что она существует новый каталог модуля ядра, названный как ток (новое) версия ядра.

    ~> ls -d /lib/modules/`uname -r`
    /lib/modules/3.1.0-1.4
    

Для предотвращения этой проблемы другие дистрибутивы (как openSuSE) задерживают удаление каталога, пока Вы не перезагружаете.

8
27.01.2020, 20:17

Да и нет. Идеально перезапуск не требовался бы, но это может быть трудное для расположения на практике.

Необходимо смочь продолжить использовать типы устройств, которые Вы уже использовали на этой сессии. Проблема прибудет, при попытке использовать новый тип устройства (или формат файловой системы или сетевой протокол, и т.д.), который требует загрузки модуля. Модули для нового ядра не могут быть совместимы с рабочим.

Если это будет незначительное обновление безопасности, которое не изменило двоичного интерфейса, то новые модули будут все еще работать. Ваше распределение, должно быть, расположило скомпилировать новое ядро с признаком, что совместимость на уровне двоичных кодов не была затронута (то же uname -r вывод).

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

Проблема возникает, когда обновление перезаписывает существующее ядро и модули, но изменяет совместимость на уровне двоичных кодов. Идеально дистрибутивы не сделали бы этого. Если Вы чувствуете себя удачливыми, можно вынудить модуль быть загруженным modprobe --force-vermagic --force-modversion; остерегайтесь этого, это может и вызывать катастрофические отказы, повреждение данных и уничтожение щенка, если существуют действительно двоичные несовместимости: используйте на Ваш собственный риск.

1
27.01.2020, 20:17

Теги

Похожие вопросы