Назад | Перейти на главную страницу

Монтирование раздела диска внутри LVM

У меня есть логический том, который используется для xen-диска:

Disk /dev/d0_vg/backup: 10.7 GB, 10737418240 bytes
1 heads, 1 sectors/track, 20971520 cylinders, total 20971520 sectors
Units = cylinders of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00001b22

                    Device Boot      Start         End      Blocks   Id  System
/dev/d0_vg/backup1   *          64      208839      104388   83  Linux
/dev/d0_vg/backup2          208846    19406517     9598836   83  Linux
/dev/d0_vg/backup3        19406521    20964808      779144   82  Linux swap / Solaris

Как я могу указать правильное смещение для монтирования резервной копии2, корневой файловой системы?

Я попробовал следовать этой статье и рассчитать стартовую позицию:

https://www.novell.com/coolsolutions/tip/19710.html

208846*512=106929152

mount -o loop,offset=106929152 /dev/d0_vg/backup2 /mnt/

Я всегда получаю "mount: you must specify the filesystem type" ошибка, поэтому он не пытается читать ее с того места, где должен. Кто-нибудь знает, в чем проблема?

Если я правильно прочитал ваш вопрос, у вас есть гипервизор Linux (Xen dom0) с томами Linux LVM, которые используются в качестве виртуальных дисков для ваших гостей Xen (domU). И вы хотите получить доступ к данным в этом LVM непосредственно из гипервизора, минуя гостевую систему Xen.

Я больше не использую Xen, но полагаю, что процесс похож на то, что я делаю с гостями KVM:

Выключите гостевой домU. (доступ к файловой системе из двух разных мест требует повреждения данных)

На гипервизоре запустить kpartx который будет сканировать LVM для таблицы разделов и создавать записи устройств для каждого найденного раздела (где, как я предполагаю, есть группа томов Гости и LVM гостевое-имя-диска который является виртуальным жестким диском для вашего domU)

[root@dom0 ]# kpartx -a /dev/Guests/guestname-diskname

Если у вас было три раздела в гостевой системе Xen, это должно привести к появлению трех новых записей устройств: /dev/Guests/guestname-diskname[1-3]

Тогда вы сможете смонтировать раздел с файловой системой просто с помощью:

[root@dom0 ]# mount -t ext3 /dev/Guests/guestname-diskname2 /mnt

Это становится немного сложнее, если вы также использовали LVM внутри domU; то перегородки имеют тип 8e Linux LVM и отформатированы как физические тома, которые вы пока не можете просто смонтировать, и требуется обман LVM. Вместо команды монтирования шаги становятся:

Надеюсь, вы сможете обнаружить группу томов, которая существовала в domU:

[root@dom0 ]# vgscan
    Found volume group "Guests" using metadata type lvm2
    Found volume group "VG-guestname" using metadata type lvm2     <== NEW!

Далее вам нужно включить группу томов "VG-гостевое имя" :

[root@dom0 ]# vgchange -a y guestname 

И lvscan должен отображать логические тома, которые были созданы в вашем domU, и записи устройства сопоставления обычно создаются сейчас, что позволяет вам делать что-то вроде:

[root@dom0 ]# mount -t ext3 /dev/VG-guestname/guest-lvname /mnt

IIRC это было невозможно в Xen, но может произойти с KVM, неудобный случай, когда имя группы томов, используемой в гипервизоре, совпадает с именем, назначенным в гостевой системе.

Ни в коем случае, вероятно, ваше крепление не имеет необходимой возможности для использования этого сложного крепления с обратной связью.

Если вы что-то монтируете так, команда mount сначала вызывает losetup, и, наконец, монтирует это losetup устройство. Это нормально /dev/loop0 (или больше).

С помощью команды losetup вы можете смонтировать файл или часть файла, как если бы это был обычный раздел. Это практически то же самое, что инструмент демона для племени любителей окон. На этот раз мы используем этот losetup для отображения части /dev/d0_vg на новое блочное устройство, чтобы /dev/loop0.

Вы можете сделать это в два этапа:

losetup /dev/loop0 /dev/d0_vg --offset=$[208846*512]
mount /dev/loop0 /mnt

После команды losetup вы можете проверить, нашли ли вы настоящую файловую систему с помощью команды file -szL /dev/loop0.

После размонтирования вам нужно было удалить устройство loop0 командой losetup -d.