2017-01-18 4 views
0

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

В перспективе я должен иметь возможность управлять запросами, поэтому я написал модуль ядра, представляющий целевую карту устройства, используя этот article.

После создания модуля и его вставки (команда insmod) Я настраиваю свое устройство (создание dmsetup). Затем смонтируйте и можете работать с реальным устройством через только что созданный виртуальный.

Но вопрос в том, как повторить вышеупомянутые инструкции во время загрузки? Я бы хотел использовать свое виртуальное устройство как общее (по-видимому, меняя fstab).

Заранее благодарен!

ответ

0

Если вы собираетесь использовать свое устройство в качестве корневой файловой системы, вам необходимо создать initramfs, который его устанавливает. В основном сценарий оболочки, который выдает команды dmsetup, а затем mount и, наконец, pivot_root в новую файловую систему.

There was a discussion on the dm-devel mailing list last year о том, как это сделать в ядре Linux без initramfs, указав строки сопоставления в командной строке ядра. Это так, как это делает Chrome OS, потому что они не могут/не будут использовать initramf. См. here for documentation of this feature. Однако функциональность никогда не сливалась.

The patch series was updated and resubmitted in May 2017. Надеюсь, мы в конечном итоге увидим, что оно слилось в той или иной форме.

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

Смежные вопросы