Microsoft มีคำแนะนำโดยละเอียดเกี่ยวกับการจับภาพ วีเอชดี
เพื่อย้ายไปที่ Azure: https://docs.microsoft.com/en-us/azure/virtual-machines/windows/prepare-for-upload-vhd-image
อีกวิธีหนึ่งคือการสร้าง วิม
ไฟล์โดยการบูทจาก Windows ติดตั้ง ISO: https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/capture-and-apply-windows-using-a-single-wim?view=windows-11
คุณควรรู้ว่า Microsoft ไม่ต้องการทำให้สิ่งนี้เป็นเรื่องง่าย เพราะมันจะทำให้การละเมิดลิขสิทธิ์ง่ายขึ้นด้วย แน่นอนบน Azure นี่ไม่ใช่ปัญหา
โดยส่วนตัวแล้วฉันจะบู๊ต Linux จาก USB และใช้ วว
, gz
, และ รีซิงค์
:
$ lsblk # จะแสดงอุปกรณ์บล็อก
$ เมานต์ -o ro /dev/sdb2 /mnt
$ ซีดี / ล้าน
$ls# เพื่อยืนยันว่าเป็นพาร์ติชัน / การติดตั้งที่ถูกต้อง
$ umount / ล้าน
$ dd if=/dev/sdb2 | gzip -9 > image.raw.gz
$ rsync image.raw.gz my.newhost.com:/
อุปสรรค์ของแนวทางนี้คือคุณต้องการพื้นที่เพิ่มเป็นสองเท่าในขณะที่คุณเพิ่งคัดลอกไฟล์ซึ่งยังคงต้องคลายการบีบอัดและขึ้นอยู่กับวัตถุประสงค์ของคุณ เขียนไปยังอุปกรณ์บล็อกบนเป้าหมาย:
# dd if=image.raw.gz | กันซิป | dd of=/dev/sdg1
อาจจะดีกว่า dd:
$ qemu-img แปลง -f ดิบ -O vhd /dev/sdb2 image.vhd
$ rsync image.vhd my.remote.host:~
ซึ่งคุณสามารถเรียกใช้บนโฮสต์ระยะไกลด้วย QEMU/KVM ได้:
$ qemu-system-x86_64 -m 2G -hda image.vhd
ข้อดีของวิธีนี้คือคุณสามารถใช้รูปแบบใดก็ได้ เช่น qcow2
. เพียงแค่แทนที่ วีเอชดี
ด้านบนสำหรับ qcow2
. คุณสามารถอ่านเพิ่มเติมเกี่ยวกับ คิวมู
และ ผู้จัดการ virt
ในเอกสารอย่างเป็นทางการมีเครื่องมือ GUI ที่มีประโยชน์อยู่
อีกทางหนึ่ง หากคุณอยู่ใน LAN เดียวกันหรือไม่จำเป็นต้องทำการคัดลอกต่อ ซึ่งคุณสามารถทำได้ข้างต้นโดยเรียกใช้คำสั่ง rsync ซ้ำๆ จนกว่าการคัดลอกทั้งหมดจะเสร็จสิ้น และคุณสามารถคัดลอกไปยังรายการใหม่ได้โดยตรง บล็อกอุปกรณ์บนเครื่องเป้าหมาย
อนุญาตก่อน วว
เพื่อเรียกใช้ในฐานะรูทบนเครื่องเป้าหมาย ซึ่งจำเป็นต้องเขียนโดยตรงไปยังอุปกรณ์บล็อก หากคุณไม่ได้เข้าสู่ระบบด้วย ราก
ผู้ใช้:
$ssh 192.168.1.2
$visudo
# เพิ่ม:
myuser ALL = NOPASSWD: /bin/dd
# จากนั้นพิมพ์ :w ENTER และ :q ENTER
จากนั้นคุณสามารถออก:
$ sudo dd if=/dev/sdb2 | gzip -9 - | ssh 192.168.1.2 "gunzip - | sudo dd of=/dev/sdg1"
อีกทางเลือกหนึ่งคือสคริปต์ Python ที่ทำงานคล้ายกับ rsync ดังนั้นหากการคัดลอกถูกขัดจังหวะ ก็สามารถกลับมาทำงานต่อได้ ดีที่สุดทั้งสองอย่าง มีความเห็นว่าใช้ จุ๊ๆ
ไปยังบัญชีรูทบนรีโมตโฮสต์ซึ่งไม่อนุญาตให้ล็อกอินด้วยรหัสผ่านโดยค่าเริ่มต้น ดังนั้นคุณต้องเพิ่มไฟล์ จุ๊ๆ
กุญแจ
. มีหลายวิธีในการทำเช่นนี้ นี่คือวิธีหนึ่ง:
$ ssh my.remotehost.com "echo `~/.ssh/id_rsa.pub` | sudo tee -a /root/.ssh/id_rsa.pub" # เพิ่มคีย์ ssh ผู้ใช้ของคุณไปยังบัญชีรูทระยะไกล
จากนั้นรับสคริปต์และเรียกใช้:
$ git โคลน https://github.com/bscp-tool/bscp-tool.github.io.git
$ bscp /dev/sda1 my.remotehost.com:/dev/sdg1