Привет всем!
Имею непонятный затык (на виртуальных машинах, но не это главное).
А именно, есть KVM-виртуальная машина в которой живет (и неплохо живет) на CentOSи настроенный почтовый сервер. Сама виртуальная машина сидит на img-файле. Корневой раздел и свап - разположены в LVM. Так сложилось исторически.
Надо перелить эту виртуальную машину в иную виртуалку, которая будет сидеть уже не на файле, а на iSCSI-разделе, в своем персональном LUNе. Но... Размер диска несколько меньше img-файла (много пустого места раз), и, второе, более важное, не хочу туда сажать LVM. Не нужен он мне там.
Ход решения:
1. Подключаемся из этой виртуалки к нужному LUN.
2. С помощью fdisk делаем три раздела потребного размера, под /boot, swap и /. Делаем там бутовый раздел загружаемым, формируем файловые системы ext4 на /boot и на /. Это примитивно.
3. Монтируем собственный корень куда-нибудь в /mnt/root, целевые девайсы тоже монтируем куда удобнее.
4. Копируем (любым способом) содержимое наших разделов /boot и /mnt/root на целевые девайсы.
5. Корректируем менюшку grub'а, меняем там место корня вместо /dev/mapper/LVM-чего-то-там на тривиальное /dev/vda3 (диск - virtio). Корректируем /etc/fstab аналогичным образом.
То есть все сделано по теории, как книжки учат.
Загружаем новую виртуалку и видим, что она каким-то непонятным образом не хочет видеть тома /dev/vdaX, а пытается сотворить LVM-девайс (/dev/VolGroup00/LogVol01 и так далее). Поскольку этого дела нет, то кернел впадает в панику и в ней помирает. Не может смонтировать даже рутовую систему... Настырно лезет в LVM, а его нет...
Вопрос тривиальнейший - где это описание LVM закопалось? И как его оттуда убрать? Как отучить новую виртуалку на CentOSи 5.9 от такой поддержки LVM?
=====================
Вобщем, раскопал, что собака зарылась в initramfs. Имею в настоящий момент ситуацию один в один как описано в http://www.go.kg/work/kernel-panic-could-not-find-filesystem-devroot.html Но, увы, перегенерация initramfs не помогает. Получаю сообщение, что нет /dev/root и так далее...
**************************************************
Решено. Засада закопалась в том, что по каким-то причинам CentOS 5.9 не хотел грузиться в виртуалке, если там ему указан Virtio-диск. На IDE-диске зашуршал...
Теперь надо думать, как его перевести в Virtio... Или для iSCSI-раздела монопенисуально?
[решено]Клонирование сервера
А именно, есть KVM-виртуальная машина в которой живет (и неплохо живет) на CentOSи настроенный почтовый сервер. Сама виртуальная машина сидит на img-файле. Корневой раздел и свап - разположены в LVM. Так сложилось исторически.
на хосте лежит файл img который ВМ видит как диск, и ВМ на этом диске поднял lvm? если так, то lvm внутри никакого отношения к lvm на хосте не имеет.
Размер диска несколько меньше img-файла (много пустого места раз)
ужать пустое место в тонком диске очень просто:
1. забиваем диск нулями (dd if=/dev/zero of=/some/file)
2. стираем файл
3. qemu-img convert файла имиджа в другой такой же файл
qemu-img убирает секторы содержащие нули, так что файл окажется размером с настоящую инфу которую он содержит, и сможет расширяться по мере наполнения. он должен быть qcow2 конечно же.
не хочу туда сажать LVM. Не нужен он мне там
туда это куда? на систему которую видит хост, или внутри ВМ?
потому что переписать имидж можно тем же qemu-img convert с указанием аутпута в LUN
на хосте лежит файл img который ВМ видит как диск, и ВМ на этом диске поднял lvm? если так, то lvm внутри никакого отношения к lvm на хосте не имеет.
Пока не осознал написанного, но было так: Виртуальная машина (CentOS 5.9)жила вся в img-файле формата raw. Внутри этого файла было два раздела, первый - boot, во втором поднята группа LVM-томов, в которой нарезаны тома под swap и корень.
Этот img-файл был подключен к виртуалке как IDE-диск,
Поставленная задача - перелить эту машину в персональный iSCSI-LUN.
При её реализации возникло две проблемы:
1. После перекачивания файлов в новое место потребовалось пересобрать initramfs (старый помнил про LVM). Разгуглил, как это сделать, особых проблем не возникло кроме следующей:
2. Хотел новое хранилище иметь не как IDE-диск, а как virtio-диск. CentOS 6.4, которым это дело подыгрывал, относился к смене типа диска индиферентно. А вот CentOS 5.9 - увы. Не хочет жить на virtio-диске. Поэтому и было непонятно, почему не идет загрузка. Непонятно, почему она становится колом на самом начальном этапе, когда отрабатывает initramfs.
Кстати, проверил поведение CentOS 5.9 из img-файла на virtio-диске (хост работает под управлением CentOS 6.4). Полностью те же ойцы. Встает колом на загрузке. Возвращаем IDE-диск - работает как доктор прописал..
А вот CentOS 5.9 - увы. Не хочет жить на virtio-диске. Поэтому и было непонятно, почему не идет загрузка. Непонятно, почему она становится колом на самом начальном этапе, когда отрабатывает initramfs.
Я думаю, потому, что в initrd нету драйвера virtio, а без него корень недоступен -> ядро паникует...