โอนย้ายจากเครื่องเสมือน (VM) ไปยังระบบจริง


124

Aka: ฉันจะแปลง. vdi หรือ. vmdk เป็นการติดตั้งจริงบนดิสก์จริงได้อย่างไร

เป็นไปได้ / เป็นไปได้ที่จะโยกย้ายการติดตั้ง Virtual Machine ของ Ubuntu ไปยังเครื่องจริงหรือไม่? ถ้าเป็นไปได้สิ่งนี้ยากที่จะประสบความสำเร็จและขั้นตอนใดที่ฉันต้องดำเนินการเพื่อเตรียมพร้อมสำหรับการย้ายถิ่นฐาน

ฉันต้องการทำการทดสอบบางอย่างบน VM และถ้ามันทำงานออกโยกย้ายระบบนั้นไปยังฮาร์ดแวร์ทางกายภาพแทนที่จะติดตั้งทุกอย่าง เป็นไปได้ไหม


คำตอบ:


98

ใช่มันเป็นไปได้ ก็ไม่ได้ว่าหนักก็แค่ต้องใช้เวลาบางอูบุนตู LiveCD เหนียวกลับพลาสติกและดิสก์ USB ภายนอก (ถ้าคุณไม่ได้มีมากกว่าหนึ่งดิสก์ภายใน)

ขั้นตอนเบื้องต้น: แปลงดิสก์เป็นสิ่งที่มีประโยชน์

ทั้ง VMWare และ VirtualBox (ในหมู่อื่น ๆ ) ใช้รูปแบบดิสก์ที่ไม่ให้ยืมตัวเองได้ดีกับการเขียนลงดิสก์โดยตรง คุณสามารถแต่ส่วนตัวฉันรู้สึกว่ามันสะดวกกว่าที่จะเขียนลงในตัวกลางภาพมาตรฐานก่อน คุณสามารถทำสิ่งนี้จากระบบปัจจุบันของคุณโดยไม่ต้องบู๊ตเป็น LiveCD

  • โหลดเทอร์มินัลและไฟใน:

    cd /media/wherever-the-image-is/
    
    # for VMWare
    sudo apt-get install qemu-kvm
    qemu-img convert your-vmware-disk.vmdk -O raw disk.img
    
    # For VirtualBox
    VBoxManage clonehd your-virtualbox-disk.vdi disk.img --format RAW
    
  • ย้ายไปยัง/media/wherever-the-image-is/disk.imgที่ที่คุณไม่ได้เขียน หากคุณวางแผนที่จะเขียนลงในดิสก์ที่มีอยู่ในปัจจุบันคุณจะต้องติดมันลงในดิสก์ภายในแยกต่างหากหรือดิสก์ภายนอกที่แย่ที่สุด

  • คำแนะนำต่อไปนี้จะถือว่าคุณได้ย้ายไปที่/media/dave/disk.img( daveเป็นดิสก์ USB ภายนอก)

  • ก่อนที่คุณจะทำเขียนร้ายแรงใด ๆให้แน่ใจว่าคุณมีการสำรองข้อมูล มันเป็นเรื่องที่น่าเบื่อที่จะพูด แต่มีการพิมพ์ผิดและมีความเป็นไปได้จริงมากที่คุณจะใช้ระบบของคุณ สมมติว่าสิ่งต่าง ๆ จะผิดพลาดและเตรียมพร้อม CloneZilla สามารถช่วยคุณสำรองข้อมูลดิสก์ทั้งหมดหากคุณมีที่เก็บข้อมูล

เขียนภาพลงดิสก์ของมันเอง

คุณต้องการทำอะไรแบบนี้ สิ่งนี้จะถือว่าคุณกำลังเขียนทับดิสก์ทั้งหมด หากคุณต้องการติดตั้งแบบติดกับ Windows อย่าปฏิบัติตามคำแนะนำเหล่านี้! ข้ามไปหลังจากกระสุน

  • บูตเข้าสู่ Ubuntu Live CD แล้วคลิกลอง Ubuntu

  • ติดตั้งสถานที่เก็บภาพ vmdk ของคุณ (เช่นดิสก์ USB ภายนอกเป็น/media/dave) อย่าไม่ติดสถานที่ที่คุณต้องการที่จะเขียนถึง

  • จากนั้นเราไปทำงาน:

    sudo dd if=/media/dave/disk.img of=/dev/sdX
    

    คุณต้องการแทนที่sdXด้วยเส้นทางที่ถูกต้องไปยังดิสก์ปลายทางของคุณ sudoรหัสผ่านว่างเปล่าเพียงแค่กดผลตอบแทน

  • จากนั้นคุณสามารถเปิดgpartedหรืออย่างอื่นและคุณควรเห็นพาร์ทิชัน Ubuntu นั่งอยู่บนดิสก์ คุณควรจะขยายออก

เขียนอิมเมจไปยังดิสก์ข้างระบบปฏิบัติการอื่น

นี่อาจเป็นวิธีที่ปลอดภัยกว่าโดยสิ้นเชิงในการทำสิ่งต่าง ๆ ความคิดที่คล้ายกันมากแตกต่างจากที่คุณจะติดตั้งที่เหมาะสมของ Ubuntu disk.imgและแล้วเพียงแค่การซิงค์ไฟล์จาก

  • LiveCD ของคุณในครั้งนี้จะต้องเป็น Ubuntu รุ่นเดียวกันกับการติดตั้งเสมือนจริงของคุณ บูตเข้าสู่ Live CD และคลิกติดตั้งอีกครั้ง

  • ติดตามการติดตั้งผ่านสิ่งที่ให้ปันส่วนตามที่เห็นสมควร ประมาณ 10 นาทีหลังจากนั้นคุณจะได้รับการติดตั้งและจะขอให้คุณรีบูท อย่ารีบูต ไม่สำคัญว่าคุณจะทำโดยไม่ตั้งใจให้แน่ใจว่าคุณกลับมาที่ LiveCD เพื่อดูคำแนะนำต่อไป

  • เมานต์พาร์ติชันการติดตั้งใหม่ของคุณและดิสก์ภายนอกที่คุณเก็บไว้disk.imgจากก่อนหน้านี้ (เพียงดับเบิลคลิกที่มันในหอยโข่ง)

  • เมานต์ disk.img ISO ของคุณในเทอร์มินัล:

    sudo mkdir /media/oldinstall
    sudo mount -o loop /media/dave/disk.img /media/oldinstall
    

    -Note - หลังจากสร้างไฟล์. img ที่ต้องการบางครั้งเมื่อคุณพยายามติดตั้งเป็นอุปกรณ์ลูปคุณอาจได้รับข้อผิดพลาดดังต่อไปนี้

    "ลายเซ็น NTFS หายไปไม่สามารถเมานต์ '/ dev / loop0': อาร์กิวเมนต์ไม่ถูกต้องอุปกรณ์ '/ dev / loop0' ดูเหมือนจะไม่มี NTFS ที่ถูกต้อง"

    ไฟล์. img บางครั้งมีมาสเตอร์บูตเรกคอร์ดและตารางพาร์ติชันก่อนพาร์ติชันที่แท้จริงที่คุณอาจต้องการเมาท์ ดังนั้นคุณต้องค้นหาออฟเซ็ตของพาร์ติชันที่ต้องการ ด้วยวิธีนี้เราสามารถใช้เครื่องมือแยกส่วน ตัวอย่างเช่นดูคำตอบโดย sisco311 ในลิงค์นี้ http://ubuntuforums.org/archive/index.php/t-1576011.html

    ดังนั้นหากคุณกำหนดออฟเซ็ตเป็น 'xxx' แล้วคุณสามารถกำหนดใช้พาร์ติชันของคุณได้

    sudo mount -o loop,offset=xxx /media/dave/disk.img /media/oldinstall
    
  • จากตรงนั้นคุณสามารถเลือกไฟล์เชอร์รี่หรือคัดลอกทุกอย่างที่อยู่ด้านบนของ Ubuntu ติดตั้งใหม่โดยใช้สิ่งต่อไปนี้:

    sudo rsync /media/oldinstall/ /media/my-new-install/
    
  • รีบูทและคุณควรได้รับการต้อนรับด้วย VMWare เก่าที่ติดตั้ง แต่ทำด้วยโลหะเปลือย ถ้าคุณได้รับปัญหาด้วงที่น่ารังเกียจที่คุณสามารถแก้ไขได้โดยการที่จะกลับไปอยู่ซีดี, chrooting และแก้ไขสิ่งที่


7
คุณรู้เกี่ยวกับเครื่องมือที่ทำสิ่งนี้โดยอัตโนมัติหรือไม่?
the_drow

1
สำหรับการตั้งค่าบน Windows / VirtualBox VBoxManage internalcommands converttoraw your-virtualbox-disk.vdi /dev/sdXคำสั่งจะยังคงทำงาน สิ่งที่จำเป็นต้องมีก็คือ cd Program Files\Oracle\VirtualBoxก่อนที่จะรันคำสั่งแรก
Aust

2
@ เพียงฉันสงสัยว่า/dev/sdXเป็นเป้าหมายที่ถูกต้องใน Windows AFAIK มันจะเป็น\\Device\Harddisk0อะไรแบบนี้
Danatela

3
VBoxManage internalcommands converttoraw your-virtualbox-disk.vdi /dev/sdXไม่ทำงาน ใน Linux มันทำให้เกิดข้อผิดพลาด: VBoxManage: error: Cannot create destination file "/dev/sdX": VERR_ALREADY_EXISTS. จำเป็นต้องใช้ VBoxManageคำสั่งเพื่อส่งไปยังรูปภาพก่อน จากนั้นใช้ DD เพื่อวางอิมเมจลงในฟิสิคัลดิสก์
LD James

8

อาจไม่ใช่สิ่งที่คุณต้องการ แต่อาจบรรลุสิ่งที่คุณต้องการ

เนื่องจากการตั้งค่าทั้งหมดของคุณจะถูกเก็บไว้ในโฮมไดเร็กตอรี่ของคุณ, คุณสามารถทำสำเนาสำรองของมันไปยังพาร์ติชั่นอื่นบนดิสก์จริง. หลังจากที่คุณติดตั้ง Ubuntu สดบนดิสก์จริงเพียงเรียกใช้โปรแกรมสำรองอีกครั้งเพื่อคืนค่าไดเรกทอรีบ้านของคุณด้วยการตั้งค่าทั้งหมด

คุณสามารถใช้โปรแกรมสำรองข้อมูลอย่างจริงๆเรียกว่าเดจาการทำซ้ำ

ข้อมูลจากศูนย์ซอฟต์แวร์อูบุนตู:

Déjà Dup เป็นเครื่องมือสำรองข้อมูลอย่างง่าย มันซ่อนความซับซ้อนของการสำรองข้อมูลทางขวา (เข้ารหัสนอกสถานที่และปกติ) และใช้ความซ้ำซ้อนเป็นแบ็กเอนด์

คุณสมบัติ:

  • รองรับการสำรองข้อมูลแบบโลคัลรีโมทหรือคลาวด์เช่น Amazon S3 หรือ Rackspace Cloud Files

  • เข้ารหัสและบีบอัดข้อมูลของคุณอย่างปลอดภัย

  • สำรองเพิ่มขึ้นช่วยให้คุณกู้คืนจากการสำรองข้อมูลใด ๆ

  • กำหนดเวลาการสำรองข้อมูลปกติ

  • รวมเข้ากับเดสก์ท็อป GNOME ของคุณได้ดี

ป้อนคำอธิบายรูปภาพที่นี่

คุณจะทำได้ในเวลาไม่ถึงสองชั่วโมง!

โชคดี!


1
ฟังดูง่าย s / o ยืนยันได้ว่าใช้งานได้จริงหรือไม่?
Mateng

เหนือสิ่งอื่นใด .... UID (หมายเลขผู้ใช้) อาจแตกต่างกันในเวลานั้น
Tomachi

5

ลองUDPCast

แนวคิดคือการสตรีม vmdk ทั้งหมดของคุณจากเครื่องเสมือนไปยังเครื่องทางกายภาพซึ่งถูกเขียนไปยัง hdd ทางกายภาพ

ขั้นตอนได้อธิบายไว้ด้านล่าง

เนื่องจากคุณมีไฟล์ vmdk คุณอาจมี VMWare Workstation ตามที่คุณต้องการแม้กระทั่ง Virtual Machine ตัวนี้ vmdk ที่แนบมาด้วย เรียกใช้เครื่องเสมือนของคุณด้วย vmdk ที่แนบมานี้ แต่แทนที่จะใช้การบู๊ตทั่วไปให้ใช้ PartedMagic liveCD เพื่อบูตจาก

เมื่อ LiveCD UDPCast Disk Cloningจะเริ่มต้นให้ไปที่เมนูหลักและหา กล่องโต้ตอบนั้นอธิบายตนเอง (ดูภาพหน้าจอ) หน้าจอเริ่มต้น UDPCast Disk Cloning

หลังจากเลือกเครื่องเสมือนนี้เป็นsenderคุณควรเลือกไดรฟ์ที่คุณต้องการออกอากาศ (โดยใช้สัญลักษณ์ Unix เช่น / dev / sda)

หลังจากที่คุณเริ่มต้นsenderคุณจะต้องเริ่มต้นreceiverเช่นกัน เมื่อคุณมีฟิสิคัลฮาร์ดดิสก์ฉันถือว่าคุณมีพีซีที่สมบูรณ์ซึ่งมี HDD นี้ติดอยู่ สิ่งเดียวกันที่นี่: คุณต้องเริ่ม liveCD ด้วยUDPCast Disk Cloningการเลือกreceiverเวลานี้รวมถึงฟิสิคัลฮาร์ดดิสก์ที่เหมาะสม

น่าสังเกตว่าคุณควรทำการเตรียมการที่จำเป็นทั้งหมดเพื่อให้มีการเชื่อมต่อเครือข่ายระหว่างเครื่องเสมือนและฮาร์ดแวร์ทางกายภาพของคุณ คุณควรใช้ความระมัดระวังที่จำเป็นหาก vmdk ของคุณมีข้อมูลส่วนตัวเนื่องจากเนื้อหานั้นจะสตรีมอย่างมีประสิทธิภาพผ่านเครือข่ายของคุณ อีกสิ่งหนึ่งคือเป้าหมาย hdd ของคุณควรมีความจุไม่น้อยกว่าความจุของ vmdk ของคุณ เป็นที่ชัดเจน แต่ก็คุ้มค่าที่จะต้องทราบว่าภาพของคุณมีการจัดวางแบบหนึ่งต่อหนึ่งบน hdd เป้าหมายของคุณและคุณต้องดำเนินการที่เหมาะสมด้วย gparted หรือสิ่งที่คล้ายกันเพื่อใช้ประโยชน์จากความจุที่มากขึ้นของ hdd ใหม่ของคุณ


ฉันต้องการทราบว่าวิธีนี้ตรงไปตรงมาและค่อนข้างง่ายต่อการปฏิบัติ ขั้นตอนการเตรียมการเพียงอย่างเดียวที่คุณต้องทำคือการเตรียม LiveCD ของคุณด้วย UDPCast บนมันหรือ LiveCD อื่น ๆ ซึ่งเพียงพอสำหรับการดาวน์โหลดและเรียกใช้ UDPCast หากคุณมีภาพ HD เสมือนจริงคุณจะต้องใช้มันในเครื่องเสมือนจริงซึ่งตั้งค่าและพร้อมใช้งานแล้วในทางกลับกันคุณได้เตรียมระบบทางกายภาพของคุณแล้วและพร้อมสำหรับงาน
PF4Public

มีมากกว่านั้น: UDPCast สามารถเรียกใช้โดยตรงจาก PXE udpcast.linux.lu/bootloader.html#pxe
PF4Public

4

หากคุณติดตั้ง VirtualBox คุณสามารถแปลงไฟล์VDI (อิมเมจไดรฟ์ VirtualBox) เป็นรูปแบบ IMGโดยใช้VBoxManageคำสั่งจากนั้นคัดลอกลงในดิสก์ทางกายภาพเช่น

VBoxManage clonehd --format RAW file.vdi file.img

จากนั้นคุณสามารถใช้ddคำสั่งเพื่อคัดลอกไฟล์ลงในฟิสิคัลพาร์ติชัน:

dd if=./file.img of=/dev/<partition_here>

หมายเหตุ: ใช้ sudo ถ้าจำเป็น ระวังเมื่อระบุอุปกรณ์ที่ถูกต้องใน / dev


0

หากคุณมีฟิสิคัลดิสก์ใหม่ต่ออยู่กับเครื่องที่ดิสก์เสมือน VM เปิดอยู่คุณสามารถแปลง VDI เป็นฟิสิคัลโดยไม่ต้องมีการแปลงระดับกลางซึ่งอาจช่วยประหยัดเวลาและพื้นที่ดิสก์ได้อย่างมาก นี่คือการสมมติว่าดิสก์ทางกายภาพของคุณมีขนาดเท่ากันหรือใหญ่กว่าขนาดสูงสุดของดิสก์เสมือน ในกรณีของฉันเป้าหมายคือการแปลง VDI เป็น ZFS zvol แต่วิธีการควรจะเหมือนกันกับอุปกรณ์บล็อกใด ๆ

ขั้นแรกสร้างไฟล์ VMDK ที่ชี้ไปยังอุปกรณ์บล็อกของคุณ:

VBoxManage internalcommands createrawvmdk -filename physical.vmdk -rawdisk /dev/sdX

จากนั้น (ด้วยการปิดระบบ VM!) คุณสามารถโคลน VDI ไปยัง VMDK:

VBoxManage clonemedium --existing virtual.vdi physical.vmdk

อาจใช้เวลาสักครู่ ... เมื่อเสร็จแล้วคุณสามารถลบไฟล์ VMDK เนื่องจากมันถูกใช้เป็นตัวชี้สำหรับ VirtualBox เพื่อค้นหาอุปกรณ์ทางกายภาพเท่านั้น

ในกรณีของฉัน zvol ใหม่มีขนาดเท่ากับดิสก์เสมือนจริง เนื่องจากดิสก์ทางกายภาพของคุณอาจแตกต่างกันคุณจะต้องใช้กลไกการปรับขนาดพาร์ติชันบางชนิดเพื่อเติมเต็มดิสก์ Gparted หรือบางสิ่งบางอย่างอาจจะ คุณควรจะสามารถชี้ได้ว่าที่อุปกรณ์แบบฟิสิคัล / dev / sdX ในขณะที่ยังเชื่อมต่อกับเครื่อง VM ดังนั้นคุณไม่จำเป็นต้องรีบูตเครื่องโฮสต์ทางกายภาพของซีดี

เมื่อปรับขนาดเสร็จแล้วให้เปิดไดรฟ์ในเครื่องทางกายภาพไขว้นิ้วมือแล้วเปิดเครื่อง

ในกรณีที่คุณต้องการใช้ฟิสิคัลไดรฟ์กับ VirtualBox ต่อไปให้ใช้ VMDK รอบ ๆ และใช้VBoxManage storageattachเพื่อเชื่อมต่อกับ VM


ดูเหมือนว่าจะใช้งานได้ แต่ข้อมูลได้รับความเสียหายอย่างใดและระบบปฏิบัติการจะไม่สามารถบูตได้อย่างถูกต้อง
Sarge Borsch
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.