Монтировать LVM оверлеи / снимки?
Я пытаюсь программно смонтировать образ диска, созданный с помощью Fedora LiveUSB, и у меня возникают некоторые проблемы.
Из того, что мне сказали, очень сложно смонтировать снимки LVM вне хост-системы. У меня есть и "нетронутое" изображение, и постоянный снимок, поэтому я подумал, что это должно быть технически возможно.
Есть идеи?
2 ответа
Концепция томов LVM не переносима между системами в том смысле, что вы можете соединить несколько дисков md вместе, и они все равно будут работать. Каждый LVM vg имеет уникальный идентификатор, и вам нужно получить LVM вашей системы, чтобы принять его. Другими словами, LVM не может "видеть" группу томов, пока вы не "расскажете" о ее наличии. Как только вы это сделаете, оттуда все должно пройти гладко.
Снимок состоит из записанных дельт секторов. Вы правы, вы должны иметь возможность отобразить свой снимок при наличии как оригинала, так и снимка. Снимок сам по себе не будет работать.
Я предполагаю, что вы смотрите на сценарии вместе, потому что вам просто нужен набор инструментов lvm, чтобы это произошло.
Небольшой прощальный подарок, чтобы помочь вам на вашем пути. Сохраните его как / usr / sbin / lvms, установите владельца как root/root, chmod 755 и используйте его для сохранения ваших пальцев.
#!/bin/sh
#lvms command - consolidates all LVM views into a single command
pvscan 1>/dev/null 2>/dev/null
vgscan 1>/dev/null 2>/dev/null
lvscan 1>/dev/null 2>/dev/null
echo "Available Physical Volumes - - - - - - -"
pvs
echo
echo "Active Volume Groups - - - - - - - - - -"
vgs
echo
echo "Active Logical Volumes - - - - - - - - -"
lvs
Образ операционной системы в Fedora LiveCD или LiveUSB можно смонтировать после раскрытия встроенной корневой файловой системы. Пакет Fedora livecd-tools предоставляет утилиту liveimage-mount, которая делает это с помощью Python.
Технология образа Fedora LiveOS (операционная система Live CD/USB) использует цель моментального снимка Device-mapper для создания сжатой копии корневой файловой системы, доступной только для чтения, для монтирования в режиме чтения-записи во время загрузки, когда записи файловой системы переходят во временную или постоянное копирование при записи. Все выполнено с dmsetup
команда. LVM не задействован (хотя он также использует технологию Device-mapper).
Установленное устройство LiveOS будет иметь каталог /LiveOS/ в своей базовой файловой системе. Файл /LiveOS/squashfs.img содержит сжатую (и доступную только для чтения) файловую систему ext4, которая сама содержит каталог /LiveOS/ и внутри нее распределенную корневую файловую систему в файле с именем ext3fs.img. Итак, файл squashfs.img содержит каталог и файл /LiveOS/ext3fs.img, который сам содержит корневую файловую систему (с /bin, /boot, /dev, /etc, /home, ...).
Если на устройстве установлен постоянный оверлейный файл, он будет сохранен как
/LiveOS/ overlay-
Можно программно
- монтируем файл squashfs.img, затем
- настроить устройство петли для файла ext3fs.img, найденного в mount 1.
- Если нет постоянного наложения, вы можете просто смонтировать файл ext3fs.img или зацикленное устройство из
шаг 2 (только для чтения, базовое изображение). - Если файл постоянного наложения существует, настройте для него устройство петли.
Определите размер корневой файловой системы в единицах 512-байтовых секторов,
blockdev --getsz <basefs_loop>
Затем настройте цель снимка Device-mapper с помощью этой общей команды,
dmsetup create <target_name> --table "0 <size> snapshot <basefs_loop> <overlay_loop> P 8"
Наконец, установите цель Device-mapper в желаемой точке монтирования,
mount /dev/mapper/<target_name> <mount point>