วิธีใช้คำสั่ง DD เพื่อคัดลอกไฟล์ VHD ไปยังฟิสิคัลฮาร์ดดิสก์



ลองใช้เครื่องมือของเราเพื่อกำจัดปัญหา

ไฟล์ Virtual Hard Disk (VHD) เป็นไฟล์ขนาดยักษ์ที่เลียนแบบการใช้สื่อทางกายภาพบน VirtualBox และตัวเลียนแบบ x86 / x86_64 เสมือนอื่น ๆ สิ่งนี้ช่วยให้คุณสามารถเรียกใช้ Windows, OS X, MS-DOS, FreeBSD, OpenBSD, OS / 2 หรือแม้แต่ Linux เวอร์ชันอื่น ๆ ภายในการแจกจ่าย Linux ของคุณ ไฟล์เหล่านี้ไม่อนุญาตให้คุณเขียนเนื้อหาลงในฟิสิคัลดิสก์โดยตรงผ่านคำสั่ง dd ที่ให้คุณทำเช่นเดียวกันกับ ISO แต่มีวิธีดำเนินการ แม้ว่าคำแนะนำบางอย่างต้องการให้คุณแปลงไฟล์ VHD เป็น ISO แต่คุณไม่จำเป็นต้องทำเช่นนี้หากคุณใช้ VirtualBox บน Linux เวอร์ชันใหม่ ผู้ใช้ QEMU ก็มีทางออกเช่นกันแม้ว่าจะเกี่ยวข้องกับการเล่นมากขึ้นก็ตาม



คุณจะต้องตรวจสอบให้แน่ใจว่าไม่มีไดรฟ์หรือพาร์ติชันใดที่คุณจะใช้งานร่วมกับไดรฟ์ที่คุณใช้บูต เราเพิ่งใช้หน่วยความจำ NAND ที่แบ่งพาร์ติชันสำหรับตัวอย่างนี้ แต่คุณอาจต้องการใช้ดีวีดีสดหรือบูต USB หากไม่สามารถทำได้ ไม่ว่าคุณจะบูตเครื่องด้วยวิธีใดก็ตามให้เริ่มโปรแกรมเทอร์มินัลของคุณโดยกด Ctrl, Alt และ T ค้างไว้ค้นหาบน Ubuntu Dash หรือเปิดจากเมนูย่อย System Tools ใน Xfce4 หรือ LXDE



วิธีที่ 1: ใช้ VBoxManage จาก Command Prompt

วิธีที่ง่ายที่สุดคือใช้การติดตั้ง VirtualBox แบบเดิม ตรวจสอบให้แน่ใจก่อนว่าคุณได้สำรองข้อมูลทั้งหมดที่คุณกังวลว่าจะสูญหายเนื่องจากคุณกำลังจะทำลายข้อมูลใด ๆ บนฮาร์ดแวร์ทางกายภาพของปลายทางในขณะที่คุณสามารถทำบางอย่างกับไฟล์ VHD หรือ VHDX ในกระบวนการได้ วิธีนี้ใช้กับวิธีการอื่นเช่นเดียวกับสิ่งที่เกี่ยวข้องกับคำสั่งที่เป็นการทำลายล้างนี้



เมื่อคุณแน่ใจว่าทุกอย่างปลอดภัยและไม่ได้ต่อเชื่อมไดรฟ์ปลายทาง แต่ยังคงเชื่อมต่อกับเครื่องอยู่ให้พูดว่าฮาร์ดดิสก์ภายนอกที่คุณยังเสียบปลั๊กอยู่ แต่ไม่ได้ติดตั้งหรืออาจจะดิบเพราะคุณจะทำให้ทุกอย่างหลุด ในกระบวนการเรียกใช้ VBoxManage โคลน hd freeBSD.VHDX - ฟอร์แมต RAW freeBSD.RAW ในขณะที่เปลี่ยน freeBSD.VHDX ด้วยฮาร์ดดิสก์เสมือนของคุณ เรามีไฟล์ฮาร์ดดิสก์เสมือนที่มีการติดตั้ง FreeBSD ค่อนข้างปานกลางเพื่อจุดประสงค์ในการทดสอบดังนั้นชื่อ

ทันทีที่คำสั่งนี้เสร็จสิ้นให้เรียกใช้ sudo dd if = freeBSD.RAW ของ = / dev / sde แทนที่ชื่อไฟล์ RAW ด้วย RAW ที่คุณเพิ่งสร้างและอุปกรณ์ sde block ด้วยอุปกรณ์ที่คุณสนใจจริงๆหากคุณไม่แน่ใจคุณสามารถเรียกใช้ sudo fdisk -l เพื่อให้แน่ใจว่าคุณรู้จักชื่อพาร์ติชันที่ถูกต้อง เช่นเดียวกับการใช้ dd สำหรับสิ่งอื่นคุณไม่ต้องการเขียนลงในอุปกรณ์ที่ไม่ถูกต้อง

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



วิธีที่ 2: ด้วยคำสั่งเซิร์ฟเวอร์อุปกรณ์บล็อกเครือข่ายดิสก์ QEMU

ผู้ใช้ที่สามารถเข้าถึงระบบ virtualization Quick Emulator (QEMU) เท่านั้นจะต้องจัดการกับขั้นตอนที่เกี่ยวข้องมากกว่าผู้ที่สามารถเข้าถึงคำสั่ง VBoxManage ได้เล็กน้อย ที่พรอมต์คำสั่งเรียกใช้ sudo modprobe nbd ติดตามโดย qemu-nbd -r -c / dev / ndb0 -f vpc ourTest.vhd โดยมีการเปลี่ยนชื่อไฟล์ให้แสดงถึงชื่อไฟล์จริงที่คุณใช้งาน คุณอาจต้องใช้ sudo เพื่อเรียกใช้ qemu-nbd ขึ้นอยู่กับว่าคุณได้กำหนดการติดตั้งอย่างไร หากคุณกำลังคัดลอกคำสั่งจากที่นี่และวางคำสั่งนั้นโปรดตรวจสอบให้แน่ใจว่าได้เปลี่ยนคำสั่งก่อนที่จะเรียกใช้ ในกรณีส่วนใหญ่คุณจะมี แต่อุปกรณ์ ndb0 ที่ต้องกังวลที่นี่ดังนั้นคุณจึงไม่ควรมีปัญหาใด ๆ ที่นั่น

เมื่อเสร็จแล้วคุณสามารถเขียนพาร์ติชันด้วยไฟล์ qemu-nbd -P 2 -r -c / dev / nbd2 -f vpc ourTest.vhd ติดตามโดย sudo ddrescure -v -f / dev / nbd2 / dev / sde2 แต่อย่าลืมแทนที่ไฟล์อุปกรณ์ด้วยไฟล์ที่คุณสนใจจะใช้จริงๆ หากคุณกำลังคัดลอกและวางสิ่งเหล่านี้ลงในเทอร์มินัลของคุณเองอย่าลืมแทนที่ชื่อไฟล์และหมายเลขพาร์ติชันด้วยชื่อที่คุณพยายามจะเขียน อุปกรณ์ / dev / sde ของเราเป็นเพียงการ์ด SDHC ที่ใช้แล้วซึ่งเราใช้เพื่อทดสอบสิ่งนี้อย่างปลอดภัยโดยไม่ทำลายสิ่งใด คุณอาจต้องใช้ sudo เพื่อเรียกใช้ qemu-nbd แต่คุณไม่ควรจำเป็นต้องใช้ ในทำนองเดียวกันคุณอาจต้องวางหมายเลขพาร์ติชันขึ้นอยู่กับการกำหนดค่าของคุณ กระบวนการ QEMU ไม่ได้ใช้งานง่ายด้วยเหตุผลเหล่านี้

ผู้ใช้ Hyper-V อาจมีอิมเมจ VHDX แทนไฟล์ VHD ในกรณีนี้คุณจะต้องวิ่งแทน qemu-nbd -c / dev / nbd0 -f VHDX ourTest.vhd ในขณะที่เปลี่ยนชื่อไฟล์อีกครั้ง แม้ว่ารูปแบบนี้เป็นส่วนเสริมของ Windows Server 2012 เพื่อเพิ่มความจุในการจัดเก็บข้อมูลขนาดใหญ่ให้กับเครื่องเสมือน แต่ผู้ใช้ Linux จำนวนมากขึ้นก็หันมาใช้รูปแบบนี้เพื่อหลีกเลี่ยงขีด จำกัด 2TB ที่ VHD มี มิฉะนั้นคำแนะนำเหล่านี้ควรใช้งานได้โดยไม่คำนึงถึงขนาดไฟล์จริงที่เป็นปัญหา เครื่องมือ GNU ddrescue ควรทำงานเหมือน dd แม้ว่าจะต้องคัดลอกบล็อกที่ดีที่สุดก่อน

เมื่อเรียกใช้แล้วผู้ใช้ที่ทำงานกับอิมเมจ VHDX จะต้องเรียกใช้ sudo ddrescue -v -f / dev / nbd2 / dev / sde2 แทนที่ไฟล์ด้านบนอีกครั้ง มิฉะนั้นทุกคนที่มีภาพ VirtualBox ทุกประเภทสามารถใช้ได้ qemu-nbd -P 2 -r -c / dev / nbd2 -f vpc ourTest.vhd เพื่อติดตั้งพาร์ติชันที่เป็นปัญหาราวกับว่าเป็นดิสก์เก่า ๆ คุณจะต้องใช้ ติดตั้ง sudo / dev / nbd2 / cdrom หรือ ติดตั้ง sudo / dev / nbd2 / mnt เพื่อติดตั้ง ตรวจสอบให้แน่ใจว่าคุณไม่ได้ติดตั้งไดเร็กทอรี / cdrom หรือ / mnt ก่อนที่จะลองใช้

วิธีที่ 3: การถอนการต่อเชื่อมและยกเลิกการเชื่อมต่อไฟล์

ในการยกเลิกการต่อเชื่อมภาพคุณเพียงแค่ต้องใช้ sudo umount / mnt หรือ sudo umount / cdrom เพื่อถอดออก เคอร์เนลลินุกซ์เองก็ยุ่งอยู่กับการดูแลมันราวกับว่าเป็นไดรฟ์ข้อมูลอื่น ๆ

คุณยังคงต้องยกเลิกการเชื่อมต่อจากระบบ QEMU ให้พิมพ์ qemu-ndb -d / dev / nbd2 เพื่อตัดการเชื่อมต่อ

อ่าน 4 นาที