Pokazywanie postów oznaczonych etykietą wirtualizacja. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą wirtualizacja. Pokaż wszystkie posty

czwartek, 11 kwietnia 2013

Przenosimy fizycznego linuxa na wirtualną maszynę

Mamy fizyczną maszynę na której śmiga sobie serwerek na linuxie i zamarzyło nam się wykorzystać go w inny sposób i zamierzamy sam system zwirtualizować. Niestety nie dysponujemy odpowiednim softem i infrastrukturą Vmware, bądź HyperV. Wykorzystajmy do tego ogólnodostępne darmowe narzędzia. W pierwszej kolejności ściągnijmy sobie System Rescue CD (wielokrotnie nam się przyda) z http://www.sysresccd.org/Download. Możemy wypalić plik ISO na płycie, lub wykonać bootowalnego pendrive (polecam program Universal USB Installer do pobrania z http://www.pendrivelinux.com/universal-usb-installer-easy-as-1-2-3/). Logujemy się na fizycznej maszynie i za pomocą polecenia:
df -h
sprawdzamy jakie dyski/partcje/LVM`y mamy do zarchiwizowania i zapisujemy to.
Następnie uruchamiamy System Rescue CD i  Podłączamy np. dysk zewnętrzny i mapujemy go za pomocą mount:
cd /
mkdir 1
ntfs-3g /dev/sdc1 /1
gdzie sdc1 to nasz dysk zewnętrzny.
Przystępujemy do zarchiwizowania naszego całego systemu:
fsarchiver savefs -v -o /scieżka/docelowa.fsa /dev/sda1
jeśli mamy lvmy to:
fsarchiver savefs -v -o /scieżka/docelowa.fsa /dev/sda1 /dev/scieżka/lvm1 /dev/scieżka/lvm2
Po zakończonej archiwizacji tworzymy wirtualna maszyna (np w vmplayer, lub Virtual Box) i wyposażamy ją w 2 dyski sda i sdb. Uruchamiamy wirtualna maszynę z System Rescue CD (montujemy ISO jako napęd CD) i tworzymy partycję za pomocą fdisk tworzymy na sda nowa partycje i robimy ją bootowalną, a
na dysku sdb tworzymy tylko nowa partycje oraz tworzymy system plików na obydwu dyskach:
mkfs -t ext3 /dev/sda1
mkfs -t ext3 /dev/sdb1
montujemy dysk sdb1 i wrzucamy na niego plik fsa z archiwum:
cd /
mkdir 1
mount -t /dev/sdb1 /1
 W jaki sposób plik umieścimy na sdb1 zalezy od tego czym dysponujemy (poprzez ftp najpierw trzeba sieć skonfigurować. W System Rescue CD służy do tego polecenie net-setup. możemy udostępnić port usb na fizycznej maszynie itp.)
Teraz rozpakowujemy plik fsa na sda1:
fsarchiver restfs -v /scieżka/docelowa.fsa id=0,dest=/dev/sda1
gdzie id to id partycji zarchiwizowanej dla:
fsarchiver savefs -v -o /scieżka/docelowa.fsa /dev/sda1 /dev/scieżka/lvm1 /dev/scieżka/lvm2
id=0 to /dev/sda1
id=1 to  /dev/scieżka/lvm1
id=2 to  /dev/scieżka/lvm1
czyli w tym przypadku wydajemy polecenie 3 razy za każdym razem na odpowiednią partycje jeśli korzystamy z więcej niż  z jednej. Pozostało zainstalować GRUB na dysku:
mkdir /mnt/sda1
mount /dev/sda5 /mnt/sda1
grub-install --root-directory=/mnt/sda1 /dev/sda
Teraz wystarczy (szczególnie jeśli mieliśmy lvm`a) sprawdzić i ew sprawdzić i poprawić dwa pliki:
/boot/grub/grub.conf (taki miałem w przypadku CentOS`a) i /etc/fstab. Resetujemy maszynę wirtualna i jeśli pojawią się jeszcze jakieś błędy eliminujemy je, jak nie cieszymy się wirtualką z fizycznej maszyny. Teraz wystarczy zaorać i wykorzystać fizyczny serwer. Może na serwer maszyn wirtualnych.