18.04: “md” обрабатывают на ноутбуке не-RAID

В Рабочем столе ПОМОЩНИКА "Системный монитор" я вижу процесс, названный md. Но я немного не уверен относительно того, является ли это на самом деле "несколькими устройством" (RAID) драйвер.

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

https://www.quora.com/What-countries-have-blue-yellow-and-red-flags/answer/Milorad-Boti%C4%87-1

(Я не могу сказать наверняка, поскольку значок является очень маленьким.)

enter image description here

Во-вторых, насколько я могу сказать, что "md" имеет отношение конкретно к программному обеспечению RAID. Однако это - ноутбук только с одним HD (хотя разделено на несколько разделов.)

Этот процесс, по-видимому, не имеет никаких открытых файлов или карт распределения памяти и выполнения

$ which md

в терминале не поднимает результатов.

Кроме того, md не показывает в выводе lsmod, и существует нет

/dev/md*

/dev/md/*

/dev/md/name

файлы в моей системе, заставляя меня задаться вопросом, является ли это действительно md.

Возможно, я параноик, но это кажется немного подозрительным мне! Кто-либо может пролить какой-либо свет, особенно на возможных способах получить взгляд на полноразмерную версию необычного значка?

Обновления в ответ на комментарии - 1

$ grep CONFIG_MD /boot/config-$(uname -r)
CONFIG_MD=y
CONFIG_MD_AUTODETECT=y
CONFIG_MD_LINEAR=m
CONFIG_MD_RAID0=m
CONFIG_MD_RAID1=m
CONFIG_MD_RAID10=m
CONFIG_MD_RAID456=m
CONFIG_MD_MULTIPATH=m
CONFIG_MD_FAULTY=m
CONFIG_MD_CLUSTER=m
#snip all the CONFIG_MDIO results

$ ps -ef | grep -e '\[md\]' -e '\[kthreadd\]'
root         2     0  0 19:06 ?        00:00:00 [kthreadd]
root        47     2  0 19:06 ?        00:00:00 [md]
0
задан 11 March 2020 в 22:23

2 ответа

На основе низкого PID, что Вы, вероятно, видите, поток ядра. Например, в моей системе (который также не имеет никаких устройств RAID, ни любого из пакетов набега mdadm dmraid установленный), я вижу следующее:

$ ps -ef | grep -e '\[md\]' -e '\[kthreadd\]'
root         2     0  0 Mar10 ?        00:00:00 [kthreadd]
root        35     2  0 Mar10 ?        00:00:00 [md]

(отметьте md PPID процесса является PID kthreadd).

Смотря на мой файл конфигурации ядра, я вижу это MD настроен как встроенное (таким образом, Вы не будете видеть, что он использует lsmod):

$ grep CONFIG_MD= /boot/config-`uname -r`
CONFIG_MD=y

хотя большая часть другой возможности RAID обеспечивается модулями. Согласно Руководящему RAID на Linux, CONFIG_MD также требуется для LVM - поэтому, возможно, именно поэтому он включен по умолчанию.


Для выяснения, почему системный монитор показывает, другой значок для этого потока ядра в особенности берет некоторых выслеживание. Рассмотрение исходного кода для gnome-system-monitor (на котором я полагаю, что системный монитор Помощника базируется), мы видим в ./src/prettytable.cpp следующая функция:

void
PrettyTable::set_icon(ProcInfo &info)
{
  typedef Glib::RefPtr<Gdk::Pixbuf>
    (PrettyTable::*Getter)(const ProcInfo &);

  static std::vector<Getter> getters;

  if (getters.empty())
    {
      getters.push_back(&PrettyTable::get_icon_from_gio);
#ifdef HAVE_WNCK
      getters.push_back(&PrettyTable::get_icon_from_wnck);
#endif
      getters.push_back(&PrettyTable::get_icon_from_theme);
      getters.push_back(&PrettyTable::get_icon_from_default);
      getters.push_back(&PrettyTable::get_icon_from_name);
      if (has_kthreadd())
        {
          procman_debug("kthreadd is running with PID 2");
          getters.push_back(&PrettyTable::get_icon_for_kernel);
        }
      getters.push_back(&PrettyTable::get_icon_dummy);
    }

  Glib::RefPtr<Gdk::Pixbuf> icon;

  for (size_t i = 0; not icon and i < getters.size(); ++i) {
    try {
      icon = (this->*getters[i])(info);
    }
    catch (std::exception& e) {
      g_warning("Failed to load icon for %s(%u) : %s", info.name.c_str(), info.pid, e.what());
      continue;
    }
    catch (Glib::Exception& e) {
      g_warning("Failed to load icon for %s(%u) : %s", info.name.c_str(), info.pid, e.what().c_str());
      continue;
    }
  }

  info.set_icon(icon);
}

Суть, кажется, что это создает список значка "методы считывания" и затем пробует каждого в свою очередь, пока это не находит соответствие, в конечном счете падающее до get_icon_for_kernel в случае процессов потока ядра - это - то, которое возвращает значение по умолчанию applications-system значок "зубчатого колеса", что Вы видите другие процессы:

Glib::RefPtr<Gdk::Pixbuf>
PrettyTable::get_icon_for_kernel(const ProcInfo &info)
{
  if (is_kthread(info))
    return Glib::wrap(gtk_icon_theme_load_icon (gtk_icon_theme_get_default (), "applications-system", APP_ICON_SIZE, GTK_ICON_LOOKUP_USE_BUILTIN, NULL));

  return Glib::RefPtr<Gdk::Pixbuf>();
}

Таким образом, кажется вероятным, что один из более высокого приоритета "методы считывания" ошибочно возвращает несвязанный значок для md процесс. Если мы предполагаем, что это могло бы быть основано на имени процесса, то мы ищем некоторый пакет программного обеспечения, который устанавливает названный значок md. Один кандидат из стандартных репозиториев Ubuntu

mate-icon-theme: /usr/share/icons/mate/scalable/animations/md.svg

enter image description here

который является флагом Республики Молдова, альфа ISO 3166-1 которой 2 кода являются md.

1
ответ дан 17 March 2020 в 00:04

Первый шаг, как всегда, читается man md. или https://manpages.ubuntu.com/manpages/bionic/en/man4/md.4.html

Был бы, загружаясь с параматерью ядра raid=noautodetect (как описано в man md) помогите Вам?

0
ответ дан 17 March 2020 в 00:04

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

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