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?
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?
Câu trả lời:
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,5
có 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
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 convertraw
lệnh (mà nếu bạn đọc câu trả lời của Matt, cũng giống như convertdd
lệ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ô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:
(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
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.
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
Cài đặt gói MBR. Trên Ubuntu:
sudo apt-get -y install mbr
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
Cài đặt MBR mới trên hình ảnh, để thoát khỏi GRUB
sudo install-mbr mbr.img
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
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
Thay đổi quyền sở hữu tệp hình ảnh mới
sudo chown $USER. windows.vdi
Dọn dẹp
sudo rm mbr.img windows.vmdk windows-pt.vmdk
(Tùy chọn) Nén hình ảnh đĩa mới
vboxmanage modifyhd windows.vdi --compact
Tạo máy ảo Windows 7 mới, sử dụng hình ảnh bạn vừa tạo cho ổ cứng
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:
-rw------- 1 root root 40G Feb 4 09:28 windows.vdi
-rw------- 1 root root 722 Feb 4 09:11 windows.vmdk
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:
Đó là tất cả, khởi chạy máy VirtualBox mới của bạn.