Ez a rövid leírás a VirtualBox 4.2 -ben futó virtuális gép klónozását mutatja be. Ennek kapcsán a MAC címek újra-inicializálásának egy következményéről is szó lesz. Debian 6 Linuxon ugyanis az új MAC címek nem a régiek helyére kerülnek a megfelelő konfigurációs fájlban, hanem azok után kerülnek be, mintha 2 új hálózati interfész lett volna csatlakoztatva. Az új hivatkozással viszont nem fogja tudni a hálózatot felépíteni.
Virtuális gép klónozása
Miért?
Ha csak elmenteni szeretnénk a gépet a későbbi próbálkozások okozta hibákra számítva, vagy továbbadni másnak is a gépet, esetleg saját célból hordozni, elég csak exportálni a gépet. Azzal kisebb is lesz a mérete. Ha viszont munka közben gyorsan kipróbálnánk valamit, de lehetőleg nem elrontva az eredeti gépet, akkor jól jön egy gyors klónozás. Például többféle telepítési módszert szeretnénk tesztelni anélkül, hogy utólag törölni kelljen a programokat, szemetet hagyva magunk után.
Klónozás indítása
Jobb egérgombbal kattintás a virtuális gépen, majd "Klónozás" kiválasztása, vagy "CTRL+O" billentyűkombináció.
Név választása, MAC címek újra-inicializálása
A felugró ablakban az új gép nevét kell kiválasztani, majd pedig a "MAC címek újra-inicializálása a hálózati kártyákhoz" opciót bejelölni. Alapértelmezetten ez nincs bejelölve, de a MAC címeknek egyedinek kell lenni egy hálózatban. Ha pedig biztosra akarunk menni, akkor az újra-inicializálás jó választás.
Teljes vagy linkelt klónozás
Két lehetőség közül lehet választani. A teljes klónozással egy független, komplett gép jön létre, pontos másolataként az eredetinek. A linkelt megoldással az eredetitől függő gép jön létre, ami az eredeti egy pillanatképe lesz. A legbiztosabb a teljes. Bár ez minden bizonnyal több helyet is foglal. Míg a linkelt megoldással nekem egy 50MB-os könyvtár jött létre, a teljes klónozással az 5GB-os gépből egy újabb 5GB-os gép lett.
Ennyi az egész. Majd elindul a folyamat.
Bár a kép szerint 5 perc van hátra, a linkelt klónozásnál ez egy másodperc.
MAC cím és az interfészek
Debian-ban ( vagy Ubuntuban ) van egy szövegfájl, ahol fel vannak sorolva a hálózati interfészek MAC címei és a hozzárendelt név. Mint például eth0, eth1, eth2 stb...
/etc/udev/rules.d/70-persisnent-net.rules
Tartalma valami ilyesmi
# program, run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.
# PCI device 0x8086:0x100e (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:1A:E4:42", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
# PCI device 0x8086:0x100e (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:C4:D0:04", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
A MAC cím megújítása után a gép indításakor bekerül az új MAC címeknek megfelelő két sor. A meglévők felülírása helyett egy eth2 és eth3 jön létre. Tehát növelve a számokat a fájl végére íródik.
# program, run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.
# PCI device 0x8086:0x100e (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:1A:E4:42", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
# PCI device 0x8086:0x100e (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:C4:D0:04", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
# PCI device 0x8086:0x100e (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:d9:76:5e", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth2"
# PCI device 0x8086:0x100e (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:6f:3c:88", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth3"
Tehát az eth0 és eth1 ( kinek, hány van ) már nem létező MAC címekhez párosul. Viszont az /etc/network/interfaces fájlban továbbra is ezek szerepelnek. És ezekkel próbál létrejönni a hálózat.
Egy ifconfig
parancsot kipróbálva látható, hogy csak az "lo" interfész maradt. Az a "localhost" gyakorlatilag. De internet nem lesz. Se belső hálózati kapcsolat.
A megoldás egyszerűen az első két, már elavult bekezdés törlése, és az új két bekezdésben a "NAME" értékének átírása. Az egyiknél "eth0"-ra, a másiknál "eth1"-re. Hogy melyikhez melyik kell, azt a MAC címből lehet eldönteni. Az "address" attribútum értékét kell összevetni VirtualBox-ban a virtuális gép hálózati beállításainál a kártyák MAC címeivel. Ezt a "haladó" opciók lenyitásával lehet elérni. Valamint ott kettőspontok nélkül szerepel a szám. Az első kártya az "eth0", a második az "eth1" és így tovább. A fájl szerkesztéséhez rendszergazdai jogosultság kell, tehát root jogot kell szerezni.
sudo su
Vagy ha valakinél nincs engedélyezve a sudo és a root usernek van jelszava, akkor su - root
vagy csak su
# program, run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.
# PCI device 0x8086:0x100e (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:d9:76:5e", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
# PCI device 0x8086:0x100e (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:6f:3c:88", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
Ez után még újra kell indítani a gépet. Ezt lehet egy reboot
paranccsal is. Lehet még olyan javaslatokat is találni a neten, hogy az /etc/init.d/networking restart
utasítással is újra lehet indítani a hálózatot. Ez igaz. Viszont ahogy azok az oldalak is írják, ilyenkor nem minden hálózat tud elindulni.
IP címek
Ezen kívül pedig, ha netán fix IP cím lenne a géphez rendelve, a klónozott gépen azt is mindenhol meg kell változtatni az arra hivatkozássokkal együtt.
Forrás: [Solved]: Network stops working after a CloneVDI / VM