Срыв покровов. Продолжение
Продолжение рассказа об особенностях монтирования файловых систем.
В дополнение темы монтирования двух разных ФС в одну точку монтирования имею заявить следующее:
как явствует из манов ([1], [2]), при монтировании файлов используется механизм монтирования через loop-устройство. То есть, сначала устанавливается привязка петлевого устройства /dev/loopX к монтируемому файлу, затем это устройство монтируется на точку монтирования.
Если петлевое устройство явно не указано (как у меня при проведении эксперимента), тогда mount попытается найти свободный loop-device и использовать его. Поэтому, если бы я при монтировании файлов A.img и B.img в одну точку монтирования выполнил команду losetup и cat /etc/mtab, то увидел бы нечто вроде этого: Показать
root@debian:/home/soul# losetup NAME SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE /dev/loop0 0 0 1 0 /home/soul/A.img /dev/loop1 0 0 1 0 /home/soul/B.img root@debian:/home/soul# cat /etc/mtab rootfs / rootfs rw 0 0 . . . /dev/loop0 /mnt/A ext2 rw,relatime 0 0 /dev/loop1 /mnt/A minix rw,relatime 0 0 root@debian:/home/soul#
Как по мне, cамый оптимальный вариант решения (подсмотрен тут) — это создать линейный RAID из двух петлевых устройств, привязанных к своим файлам, и смонтировать его в нужную точку монтирования (требует установленного пакета mdadm): Показать
root@debian:/home/soul# losetup /dev/loop0 A.img root@debian:/home/soul# losetup /dev/loop1 B.img root@debian:/home/soul# mdadm --build /dev/md0 --level=linear --raid-devices=2 /dev/loop0 /dev/loop1 root@debian:/home/soul# mount /dev/md0 /mnt root@debian:/home/soul#