Microsoft are câteva instrucțiuni detaliate despre capturarea unui VHD
pentru a trece la Azure: https://docs.microsoft.com/en-us/azure/virtual-machines/windows/prepare-for-upload-vhd-image
O altă modalitate este de a crea un WIM
fișier prin pornirea dintr-un ISO de instalare Windows: https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/capture-and-apply-windows-using-a-single-wim?view=windows-11
Ar trebui să știți că Microsoft nu vrea cu adevărat să faciliteze acest lucru, pentru că ar facilita și pirateria. Desigur, pe Azure, aceasta nu este o problemă.
Personal, aș porni orice Linux de pe USB și aș folosi dd
, gz
, și rsync
:
$ lsblk # va afișa dispozitivele blocate
$ mount -o ro /dev/sdb2 /mnt
$ cd /mnt
$ ls # pentru a confirma că este partiția/instalarea corectă
$ umount /mnt
$ dd if=/dev/sdb2 | gzip -9 > imagine.raw.gz
$ rsync image.raw.gz my.newhost.com:/
Problema cu această abordare este că veți avea nevoie de spațiu dublu, deoarece doar copiați un fișier care mai trebuie să fie decomprimat și, în funcție de scopul dvs., scris pe un dispozitiv bloc, pe țintă:
# dd if=image.raw.gz | gunzip | dd of=/dev/sdg1
Poate mai bine decât dd:
$ qemu-img convert -f raw -O vhd /dev/sdb2 image.vhd
$ rsync image.vhd my.remote.host:~
Pe care îl puteți rula virtual pe gazda la distanță cu QEMU/KVM:
$ qemu-system-x86_64 -m 2G -hda image.vhd
Avantajul acestei abordări este că puteți utiliza orice format, cum ar fi qcow2
. Doar înlocuiți vhd
mai sus pentru qcow2
. Puteți citi mai multe despre qemu
și virt-manager
în documentația lor oficială, există câteva instrumente utile GUI disponibile.
Ca alternativă, dacă sunteți pe aceeași rețea LAN sau nu trebuie să puteți relua copierea - ceea ce puteți face mai sus rulând comanda rsync în mod repetat până când se termină întreaga copie și puteți copia direct în noua blocați dispozitivul pe mașina țintă.
Mai întâi permiteți dd
să ruleze ca root pe mașina țintă, care ar trebui să scrie direct pe un dispozitiv bloc dacă nu vă conectați cu rădăcină
utilizator:
$ ssh 192.168.1.2
$ visudo
# Adăuga:
myuser ALL = NOPASSWD: /bin/dd
# apoi tastați :w ENTER și :q ENTER
Atunci poți pur și simplu să emiti:
$ sudo dd if=/dev/sdb2 | gzip -9 - | ssh 192.168.1.2 „gunzip - | sudo dd of=/dev/sdg1”
O altă opțiune este acest script Python care funcționează similar cu rsync, așa că dacă copia este întreruptă, poate fi reluată, deci cel mai bine dintre ambele. Este opinie prin faptul că folosește ssh
la contul root de pe gazda de la distanță, care nu permite autentificarea prin parolă în mod implicit, așa că trebuie să adăugați un ssh
cheie
. Există mai multe moduri de a face acest lucru, iată una:
$ ssh my.remotehost.com "echo `~/.ssh/id_rsa.pub` | sudo tee -a /root/.ssh/id_rsa.pub" # adăugați cheia dvs. ssh de utilizator la contul root de la distanță
Apoi, obțineți scriptul și rulați-l:
$ git clona https://github.com/bscp-tool/bscp-tool.github.io.git
$ bscp /dev/sda1 my.remotehost.com:/dev/sdg1