Tạo hình ảnh Virtualbox của một phân vùng vật lý


13

Tôi có một ổ đĩa với Fedora và Windows 7 trên các phân vùng khác nhau với khởi động kép.

Bây giờ, trong khi chạy Fedora, tôi muốn lấy phân vùng Windows và tạo một hình ảnh tôi có thể chạy trong VirtualBox - làm thế nào tôi có thể làm điều này?


2
Với một số thủ thuật, bạn có thể khởi động phân vùng trực tiếp.
shellholic

@shellholic: Làm thế nào được? bạn có thể trả lời nó ở đây không: superuser.com/q/463591/74616
Tamer Shlash

Câu trả lời:


10

Có một chức năng "nội bộ" được ghi lại mà bạn có thể quan tâm. Bạn có thể tạo một hình ảnh "đĩa thô" về cơ bản chuyển tất cả các lệnh đến phân vùng trên ổ cứng của bạn. Bằng cách đó, bạn cũng có thể giữ phân vùng Windows của mình và cố gắng khởi động nó từ VirtualBox.

Bạn có thể tạo một hình ảnh thô như sau:

VBoxManage internalcommands createrawvmdk -filename /path/to/file.vmdk -rawdisk /dev/sda -partitions 1,5

trong đó 1,5có nghĩa là phân vùng 1 và 5 trên/dev/sda

Tâm trí bạn, cơ hội làm việc hoàn hảo này là khá mong manh. Windows không chính xác được biết đến là thích ứng với những thay đổi cực đoan trong phần cứng.

Bạn có thể đọc thêm về đĩa thô tại đây: 10.8.1. Sử dụng đĩa cứng lưu trữ thô từ khách


Tôi đã làm điều này trước đây, nhưng cách khác xung quanh. Sử dụng đĩa thô đúc cho máy ảo trong windows. Nó hoạt động hoàn hảo, ngoại trừ một vấn đề nhỏ với video.
Keltari

5

Như Matt đã nói, bạn sử dụng lệnh VBoxManage và Windows có thể không thích nó. Tuy nhiên, có một cách nhanh hơn mà không sử dụng nhiều dung lượng đĩa. Bạn có thể sử dụng stdin làm đầu vào cho convertrawlệnh (mà nếu bạn đọc câu trả lời của Matt, cũng giống như convertddlệnh:

# dd if=$WinDevice | VBoxManage convertfromraw stdin windows.vdi $Bytes

Trong đó $ WinDevice là thiết bị của phân vùng windows (chẳng hạn như / dev / sda2) và $ Bytes là số byte chính xác (ví dụ: 1488581554176; bạn có thể xác định điều này từ trong Windows bằng cách nhấp chuột phải vào ổ C: trong Máy tính của tôi và nhấn "Thuộc tính", đó là dòng Công suất: bên dưới các dòng không gian được sử dụng và miễn phí và bên trên biểu đồ hình tròn).

Lưu ý rằng tôi đã không thử bản thân mình và tôi tin rằng bạn có thể cần sử dụng / dev / sda thay vì / dev / sda2, giả sử bạn sẽ không ghi vào ổ đĩa mà Windows đang bật. Bằng cách đó, bạn chụp bảng phân vùng và bộ nạp khởi động.


Tính đến thời điểm hiện tại (hiện tại là ngày 22 tháng 2 năm 2014), số lượng byte đi sau tên tệp đầu ra.
echristopherson

Huh, bạn nói đúng. Đã sửa. Bạn có biết nếu đó luôn là trường hợp và không ai chú ý cho đến bây giờ, hoặc nếu họ thay đổi thứ tự một thời gian trong vòng ba năm qua? Tôi đoán họ sẽ không thay đổi thứ tự, nhưng tôi cũng đã mong đợi ai đó sẽ chú ý đến bây giờ.
Daniel H

Tôi không chắc nó có khác không ... Đó là một phần lý do tại sao tôi không chỉ chỉnh sửa câu trả lời.
echristopherson

2

Tôi chỉ cố gắng thực hiện gần như chính xác điều đó, mặc dù từ Ubuntu. Tôi không muốn tạo ra một hình ảnh của toàn bộ ổ đĩa cứng và dường như tôi không nên sử dụng đĩa vật lý với VM. Cuối cùng tôi đã tìm thấy giải pháp:

  1. (Khuyến nghị) Nếu bạn không có đĩa Windows hoặc ISO, hãy tải xuống ISO. Tôi đã sử dụng X17-59465.iso

  2. Nếu muốn, thu nhỏ phân vùng cửa sổ để kích thước hình ảnh sẽ nhỏ hơn. Tôi thích làm điều này từ Linux bằng GParted (để tránh các tệp "có thể sử dụng được" đang sử dụng), sau đó khởi động lại vào Windows, để nó thực hiện chkdsk và khởi động lại vào Linux.

  3. Nếu được gắn kết, ngắt kết nối phân vùng cửa sổ chỉ để đảm bảo nó không thay đổi trong khi chụp ảnh

    sudo umount /windows
    
  4. Cài đặt gói MBR. Trên Ubuntu:

    sudo apt-get -y install mbr 
    
  5. Tạo hình ảnh của MBR (thay đổi thiết bị nếu cần)

    sudo dd if=/dev/sda of=mbr.img bs=512 count=1
    
  6. Cài đặt MBR mới trên hình ảnh, để thoát khỏi GRUB

    sudo install-mbr mbr.img
    
  7. Tạo một hình ảnh VMDK thô sẽ phản chiếu bố cục phân vùng hiện có (thay đổi thiết bị và phân vùng nếu cần)

    sudo vboxmanage internalcommands createrawvmdk -filename windows.vmdk -rawdisk /dev/sda -partitions 2 -mbr mbr.img
    
  8. Tạo hình ảnh VDI sẽ sao chép dữ liệu từ các phân vùng đã chọn ở bước trước

    sudo vboxmanage clonehd windows.vmdk windows.vdi --format VDI
    
  9. Thay đổi quyền sở hữu tệp hình ảnh mới

    sudo chown $USER. windows.vdi
    
  10. Dọn dẹp

    sudo rm mbr.img windows.vmdk windows-pt.vmdk
    
  11. (Tùy chọn) Nén hình ảnh đĩa mới

    vboxmanage modifyhd windows.vdi --compact
    
  12. Tạo máy ảo Windows 7 mới, sử dụng hình ảnh bạn vừa tạo cho ổ cứng

  13. Bạn có thể thử khởi động VM, nhưng nó có thể thất bại. Nếu vậy, hãy khởi động VM vào đĩa Windows / ISO → Sửa chữa máy tính của bạn và nếu được cung cấp tùy chọn, hãy nhấp vào Sửa chữa và khởi động lại

Nguồn:


Tôi sợ 8. sẽ không làm những gì bạn mong đợi. clonehd sẽ tạo vdi trỏ vào đĩa thô. Đó là nhân bản "con trỏ" không phải dữ liệu thực tế. Có vẻ như dd là phải cho phân vùng.
mlt

Người ta có thể nghĩ rằng, nhưng nó đã tạo ra một bản sao của dữ liệu thực tế. Bước 7 đã tạo một hình ảnh ~ 1 KB (chỉ được chỉ vào đĩa thô), nhưng kích thước của hình ảnh được tạo trong Bước 8 là kích thước của tất cả các phân vùng được bao gồm, trong trường hợp này là 40 GB. Tôi cũng biết đó là bản sao vì khi tôi khởi động vào phân vùng Windows của mình, nó khác với VM tôi tạo dựa trên nó, mà tôi đã thay đổi. -rw------- 1 root root 40G Feb 4 09:28 windows.vdi -rw------- 1 root root 722 Feb 4 09:11 windows.vmdk
bmaupin 4/2/2015

0

Tôi đã có một đĩa cứng với Windows 10 và tôi đặt nó vào máy VirtualBox. Để đạt được nó, tôi đã làm theo các bước sau:

  • Tạo máy VirtualBox cho Windows 10.
  • Quan trọng : Khi tạo đĩa cứng, chọn loại VHD.
  • Với trình quản lý phân vùng Windows, có thể gắn VHD giống như một ổ đĩa. Gắn nó
  • Tải xuống tiêu chuẩn trợ lý phân vùng AOMEI ( http://www.disk-partition.com/ )
  • Sử dụng AOEMI để tạo một bản sao đĩa cứng từ đĩa cứng với Windows 10 sang VHD được gắn mới.

Đó là tất cả, khởi chạy máy VirtualBox mới của bạn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.