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

Преобразование необработанного изображения в LVM. Не будет потом

В соответствии с этот сообщение, это должно быть хорошо, чтобы использовать dd для преобразования необработанного образа Xen в LVM.

Что я наделал

dd if=/vm.img of=/dev/vg00/vm

Я могу смонтировать vm.img с mount -o loop vm.img /root/tmp. У него только один загрузочный раздел.

Но я не могу сесть /dev/vg00/vm.

Может это как-то связано с MBR?

Есть идеи, что может быть не так?

Редактировать:

Теперь я создал новый LV и отформатировал его. И я все еще не могу его смонтировать.

Это та же самая ошибка монтирования, которую я получаю, когда перерисовываю образ.

localhost:~# mkfs.ext3 /dev/vg00/oes2
mke2fs 1.39 (29-May-2006)
Warning: could not erase sector 2: Attempt to write block from filesystem resulted in short write
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
2228224 inodes, 4456448 blocks
222822 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
136 block groups
32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
    4096000

Warning: could not read block 0: Attempt to read block from filesystem resulted in short read
Warning: could not erase sector 0: Attempt to write block from filesystem resulted in short write
Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: 
Warning, had trouble writing out superblocks.done

This filesystem will be automatically checked every 30 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
localhost:~# mount /dev/vg00/oes2 tmp-lvm/
mount: you must specify the filesystem type
localhost:~# mount -t ext3 /dev/vg00/oes2 tmp-lvm/
mount: wrong fs type, bad option, bad superblock on /dev/vg00/oes2,
       missing codepage or other error
       In some cases useful info is found in syslog - try
       dmesg | tail  or so

localhost:~# mount -t ext3 /dev/vg00/oes2 tmp-lvm/
localhost:~# fdisk /dev/vg00/oes2

Unable to read /dev/vg00/oes2
localhost:~# 

Предупреждение: не удалось стереть сектор 2: попытка записи блока из файловой системы привела к короткой записи

Звучит не очень хорошо. Скорее всего, это означает, что некоторые важные блоки были неправильно записаны на диск. Вы должны проверить SMART-статус вашего жесткого диска, он может содержать ошибки. Smartmontools можно использовать для этой цели. Если вы используете Ubuntu, вы можете запустить простую утилиту SMART, выбрав «Система»> «Администрирование»> «Дисковая утилита». Если жесткий диск поддерживает SMART, вы можете выполнить тест, который проверяет все сектора.

Если проблема не в жестком диске, возможно, ваша группа томов LVM каким-то образом повреждена ?!

Проблема в том, что, поскольку это виртуальная машина, существует раздел из образа, который теперь передается в LVM. При локальном монтаже LVM необходимо установить со смещением.

Вам нужно получить начало раздела на диске. Это распечатает ваши разделы. Возьмите начальный номер загрузочного раздела.

parted -s /dev/vg00/oes2 unit s print

example:
ie:
parted -s /dev/vmstore/kfsnap unit s print
Model: Linux device-mapper (snapshot) (dm)
Disk /dev/dm-11: 25165824s
Sector size (logical/physical): 512B/4096B
Partition Table: msdos

Number  Start  End        Size       Type     File system  Flags
 1      2048s  25163775s  25161728s  primary  ext4         boot

The sector size is: 512, so I then multiply the start by 512 sectors.

expr 512 '*' 2048
It spits out this:  1048576

Затем я знаю смещение в образе lvm и теперь могу смонтировать диск через шлейф.

#mount - o loop,offset=1048576 /dev/vmstore/kfsnap /mnt/snap

Вот несколько строк для первого раздела:

parted -s /dev/vg00/oes2 unit s print 2>/dev/null | grep " 1 " | tr -d 's' | awk '{print $2}'