Сопоставитель устройств, загрузка с виртуального устройства

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

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

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

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

Заранее спасибо!


person AccumPlus    schedule 18.01.2017    source источник


Ответы (1)


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

В прошлом году в списке рассылки dm-devel было обсуждение о том, как это сделать в ядре Linux без initramfs, указав строки сопоставления в командной строке ядра. Это то, как это делает Chrome OS, потому что они не могут/не будут использовать initramfs. Документацию по этому вопросу см. здесь. функция. Однако функциональность никогда не объединялась.

Серия исправлений была обновлена ​​и повторно отправлена ​​в мае 2017 г. . Надеюсь, мы в конечном итоге увидим, как это объединено в той или иной форме.

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

person Anton Eliasson    schedule 25.06.2017