Поиск по блогу

31 мар. 2016 г.

Дополнение к миграции в virtualbox

Статья про миграцию была в легком формате, чтобы понять общие принципы, поэтому некоторые подробности вынесены сюда.

Kpartx
Это программа, позволяющая создавать системные файлы устройств для разделов диска (или любого блочного устройства), только на момент начала экспериментов я ее не нашел..
После создания образа, его монтирования и создания раздела нам надо создать на нем файловую систему.
#fdisk -l /dev/loop0
Disk /dev/loop0: 10 GiB, 10737418240 bytes, 20971520 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x6062588a

Device       Boot Start      End  Sectors Size Id Type
/dev/loop0p1 *     2048 20971519 20969472  10G 83 Linux
Смотрим вывод fdisk. Нас интересует сектор начала раздела и размер сектора: 2048*512=1048576. Монтируем раздел вручную со смещением.
#losetup --show -f -o 1048576 partition.img
/dev/loop1
Теперь создадим на не файловую систему. Рассчитываем количество блоков ФС по формуле ((end - start) * units) / blocksize с округлением до следующего целого: ((20971519-2048)*512)/4096=2621184
#mkfs.ext3 -b 4096 /dev/loop1 2621184
Далее все как в первой статье.

Mdadm
Если исходная система жила на программном рейде mdadm или с pae  (bigmem-ядром при 32-битной ОС), то дополнительно необходимо будет исправить порядок загрузки в grub и обновить initrd.
#grub-install --recheck --no-floppy /dev/sda
#nano /etc/default/grub
#update-initramfs -u -k all
#update-grub

Usb-ключ
Тесты проводились в GUI режиме, где в меню device - usb device устройство было "добавлено" к ВМ. Если же понадобится запустить ВМ из консоли, то надо узнать UUID данного usb-устройства и добавить его к ВМ и/или добавить фильтр usb.
#VBoxManage list usbhost
#VBoxManage startvm VM (--type headless)
#VBoxManage controlvm VM usbattach UUID
#VBoxManage list usbfilters
#VBoxManage usbfilter add 1 --target VM --name FilterName --vendorid VendorId --productid ProductId
#VBoxManage controlvm VM poweroff

Grub
Вообще, по идее, загрузчик grub можно установить в образ и из хост-системы. Это будет выглядеть как-то так:
#fdisk -l --units=cylinders /dev/loop0

Disk /dev/loop0: 10 GiB, 10737418240 bytes, 20971520 sectors
Geometry: 107 heads, 17 sectors/track, 1305 cylinders
Units: cylinders of 1819 * 512 = 931328 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x6062588a

Device       Boot Start   End Cylinders Size Id Type
/dev/loop0p1 *        2 11530     11529  10G 83 Linux

#grub --device-map=/dev/null
grub> device (hd0) partition.img
grub> geometry (hd0) 1305 107 17
grub> root (hd0,0)
grub> setup (hd0)
You'll get a lot of output, then:
Done.
grub> quit
Возможно как-то еще можно из хост-системы в образе сделать и update-grub, но у меня пока это не получилось.

Комментариев нет:

Отправить комментарий