Come si crea un'immagine VM virtualbox da un file system linux esistente?


1

Ho un sistema Linux esistente che mi piacerebbe usare per creare una macchina virtuale.

Ho installato VirtualBox.

Sono stato in grado di utilizzare https://unix.stackexchange.com/questions/16299/using-a-lvm-partition-as-a-virtualbox-drive per creare un VMDK da un volume logico.

Non sono sicuro di quali procedure dovrei seguire per riempire quel volume logico e rendere il suo VMDK un'immagine di sistema utilizzabile copiata dal sistema esistente.

Sarebbe relativamente semplice da fare mkfs.ext3 /dev/vg1/vm_puppy, montarlo e copiare tutti i file tramite la rete, ma non so se ciò renderebbe un'immagine della macchina virtuale utilizzabile.

Quali sono i passaggi corretti per riempire quel VMDK con un sistema avviabile supponendo che io sappia già come eseguire il passaggio di copia dei file?

Risposte:


0

Puoi usare nella tua macchina virtuale due dischi rigidi, uno è quello fisico che vuoi immagine e un altro è un'immagine virtuale di quello fisico. Per accedere all'unità fisica, creare un "puntatore" in vmdk come

VBoxManage internalcommands createrawvmdk -filename /path/to/file.vmdk
  -rawdisk /dev/vg1/vm_puppy

quindi in VirtualBox creare due unità virtuali aggiuntive, una per l'immagine dell'unità fisica e una per un sistema operativo semplice e leggero.

Quando hai finito di installare quel "semplice sistema operativo leggero" e al suo interno, basta usare il ddcomando per creare un'immagine completa dell'HDD fisico.

Quando hai finito con l'imaging e vuoi usare il sistema clonato (che proveniva dal disco rigido fisico), crea una nuova macchina virtuale e alimentala con l'immagine virtuale clonata come disco rigido virtuale.

PS Se hai un disco rigido piuttosto grande (sistema originale che vuoi clonare) e non sacrifichi spazio sull'immagine clonata, puoi farlo in altro modo, creare un archivio completo di originale con tarcomando ed espanderlo in macchina virtuale. In questo modo è possibile ridurre lo spazio utilizzato dall'unità virtuale. È possibile spostare l'archivio tar sulla macchina virtuale sulla cartella VirtualBox condivisa. l'unica cosa che dovresti fare in aggiunta è installare grub sull'unità virtuale in cui hai decompresso l'archivio

(Spero di capire bene cosa vuoi)


Sospetto che usare dd per clonare l'originale non sia una buona idea, poiché il sistema di origine ha partizioni LVM individuali per root, / boot, / usr, / var e / opt. Preferirei creare l'immagine della VM in una partizione (o forse due se avessi bisogno di / boot). Altri utenti potrebbero essere ancora in grado di utilizzare le tue idee.
Mutante Bob

0

La soluzione che ho usato alla fine ruotava attorno alla creazione di due dischi virtuali (prestito e idea di Alex) da collegare a Impostazioni> Archiviazione> Controller SATA.

Ho usato la VirtualBoxGUI per creare un VMDK 128M per contenere l'MBR e un /dev/sda1essere il /boot.

L'altro VMDK che ho creato in precedenza da un volume logico LVM è diventato virtuale /dev/sdb(senza partizioni).

Ho caricato un ISO di installazione gentoo nel CD-ROM virtuale della VM (Impostazioni> Archiviazione> Controller IDE) e sono partito da quello. Una volta che l'ambiente di installazione di Gentoo era attivo e funzionante, sono stato in grado di partizionare /dev/sdae creare il /dev/sda1 /bootfilesystem e copiare il kernel e altri file dall'host di origine. Non ho partizionato /dev/sdbperché conteneva già il filesystem di root che avevo costruito prima.

Ho montato /dev/sdbe il /bootsecondo Preparing the Disks e truccato alcuni dei filesystem virtuali secondo il montaggio dei filesystem necessari . Con i filesystem preparati potrei chroot e iniziare a riconfigurare la VM per tenere conto delle differenze tra i dischi della macchina di origine e i dischi della VM.

Ho dovuto aggiornare /etc/lilo.conf all'interno della VM per usare boot=/dev/sdae root=/dev/sdb.

Allo stesso modo /etc/fstabnecessitava di modifiche poiché l'host di origine utilizzava molte partizioni individuali (uno stile che era andato in disgrazia nel decennio successivo) e la VM aveva solo /dev/sdbper root e /dev/sda1per /boot.

Ho anche dovuto ricompilare il kernel con il supporto per il ahcimodulo sata e e1000Ethernet. La macchina sorgente è molto vecchia.

Un difetto di questo processo è che ho dovuto partizionare il virtuale sdaall'interno di una VM in esecuzione. Non so se esiste un processo che mi consenta di partizionare il VMDK e riempire le sue partizioni con filesystem e dati senza avviare la VM che lo utilizza.

Non sono sicuro di quali problemi sarebbero sorti se avessi tentato di ricompilare il kernel guest usando il sistema operativo host e un chroot invece di ricompilare all'interno di una VM (che avrebbe comunque richiesto l'uso dell'ISO di installazione gentoo).

Non potevo usare un ISO live di Debian perché a un certo punto del processo di avvio lo schermo si trasformava in strisce colorate di personaggi. Presumo che ci sia qualche incompatibilità con la scheda video virtuale ed è stato più semplice ottenere gentoo che spalare tutte le discussioni relative a quel bug per testare tutte le soluzioni suggerite.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.