VirtualBox-ban gép klónozása, Debian hálózat helyreállítása

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ó.

Klónozás indítása

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.

Név választás, MAC cím pipa

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.

Teljes vagy linkelt klónozás

Ennyi az egész. Majd elindul a folyamat.

Klónozás

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

  1. # This file was automatically generated by the /lib/udev/write_net_rules
  2. # program, run by the persistent-net-generator.rules rules file.
  3. #
  4. # You can modify it, as long as you keep each rule on a single
  5. # line, and change only the value of the NAME= key.
  6.  
  7. # PCI device 0x8086:0x100e (e1000)
  8. SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:1A:E4:42", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
  9.  
  10. # PCI device 0x8086:0x100e (e1000)
  11. 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.

  1. # This file was automatically generated by the /lib/udev/write_net_rules
  2. # program, run by the persistent-net-generator.rules rules file.
  3. #
  4. # You can modify it, as long as you keep each rule on a single
  5. # line, and change only the value of the NAME= key.
  6.  
  7. # PCI device 0x8086:0x100e (e1000)
  8. SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:1A:E4:42", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
  9.  
  10. # PCI device 0x8086:0x100e (e1000)
  11. SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:C4:D0:04", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
  12.  
  13. # PCI device 0x8086:0x100e (e1000)
  14. SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:d9:76:5e", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth2"
  15.  
  16. # PCI device 0x8086:0x100e (e1000)
  17. 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.

Csak localhost

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

  1. # This file was automatically generated by the /lib/udev/write_net_rules
  2. # program, run by the persistent-net-generator.rules rules file.
  3. #
  4. # You can modify it, as long as you keep each rule on a single
  5. # line, and change only the value of the NAME= key.
  6.  
  7. # PCI device 0x8086:0x100e (e1000)
  8. SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:d9:76:5e", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
  9.  
  10. # PCI device 0x8086:0x100e (e1000)
  11. 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

Kategóriák: 
Megosztás/Mentés

Új hozzászólás