Không thể khởi động sau khi ổ cứng vhd bị thay đổi kích thước trong VirtualBox


15

Trong Windows 7, tôi đã thiết lập một Windows 7 VM khác trong VirtualBox. Nó đã làm việc tuyệt vời. Sau đó, tôi cần tăng kích thước vhd HD. Vì vậy, tôi đã sử dụng tiện ích VBoxManage để làm điều đó với nhận xét sau:

VBoxManage modifyhd "c:\VMs\Win7.vhd" --resize 30000

Sau đó, tôi đã thử chạy lại VM nhưng nó không thể khởi động được và đưa ra lỗi sau:

FATAL: Không tìm thấy phương tiện khởi động! Hệ thống tạm dừng.

Sau đó, tôi đã thử xem những gì đang diễn ra bên trong VHD và cố gắng đính kèm nó vào Quản lý thiết bị và nó nói Không thể đính kèm vì Tệp hoặc thư mục bị hỏng và không thể đọc được .

Bất kỳ ý tưởng nào đã xảy ra sai ở đây và làm cách nào tôi có thể lưu VM của mình trong tệp VHD đó?


Tôi chỉ có cùng một vấn đề và tôi không thể tìm thấy bất kỳ giải pháp hữu ích nào trên mạng nên tôi bắt đầu phân tích VHD bằng tay theo tài liệu của Microsoft. Hiện tại có vẻ như có lỗi trong quá trình thực hiện của Sửa đổi, nơi nó không điều chỉnh bù cho các khối dữ liệu sau khi nó đã mở rộng bảng phân bổ khối. Tôi cần phải làm một số ngoại lệ để xác minh điều này.
billc.cn

Trên VirtualBox 4.3.10, tôi đã thay đổi kích thước tệp .vhd. Có vẻ như nó không chỉ không điều chỉnh các con trỏ bảng phân bổ khối mà còn mở rộng bảng phân bổ khối thành khối dữ liệu đầu tiên, ghi đè MBR và bảng phân vùng của tôi .. Đừng sử dụng VirtualBox để thay đổi kích thước tệp .vhd!
Aaron

Câu trả lời:


12

Thật không may, tài liệu VirtualBox cho tùy chọn VBoxManage --resize là sai lệch. Bạn không thể chỉ tăng kích thước của hình ảnh đĩa và mọi thứ đều hoạt động bình thường. Thông tin phân vùng đĩa trong ảnh phải được điều chỉnh để hệ điều hành khách biết cách bố trí "ổ đĩa" mà ảnh đĩa đang mô phỏng. Bạn thực hiện điều chỉnh này bằng cách tải xuống hình ảnh CD có thể khởi động có trình chỉnh sửa phân vùng trên đó và khởi động VM vào đĩa CD đó. Sau đó, bạn sử dụng trình chỉnh sửa phân vùng để điều chỉnh phân vùng của ảnh đĩa để sử dụng không gian đã thêm.

Có một bài viết hay về thủ tục ở đây ; chỉ cần bỏ qua bước 4


Chà, đó là một người lập dị. Điều này có nghĩa là tôi vừa vứt bỏ 3 giờ làm việc. Cảm ơn bạn về thông tin.
tugberk

4
Tôi đã theo dõi bài viết hay (sau khi tôi thay đổi kích thước vhd của mình và không thể khởi động từ nó), và GParted không hiển thị bất kỳ phân vùng nào trên ổ cứng, chỉ có 50 hợp đồng không gian chưa được phân bổ. Điều đó có nghĩa là modifyhdlàm hỏng ổ đĩa sau khi sửa chữa?
GSerg


1

Tôi đã cùng một vấn đề và tôi quản lý để lấy dữ liệu bằng cách sử dụng GParted LiveCD

  1. Tạo VHD mới để nhận dữ liệu được sao chép (tạo phân vùng và định dạng)
  2. Tải xuống GPDed LiveCD và khởi động trên VirtualBox
  3. Chọn thiết bị -> Cố gắng cứu dữ liệu
  4. Nhấp vào OK và sau khi quét Nhấp vào Chế độ xem (điều này sẽ gắn kết / tmp / gparted-roview-XXXXXX)
  5. Trên thiết bị đầu cuối, gắn VHD thứ hai (sudo mount / dev / sdb1 / mnt)
  6. Sao chép các tệp (sudo cp -R / tmp / gparted-roview-XXXXXX / * / mnt

Sau đó, bạn có thể tắt Máy ảo và gắn VHD trên Trình quản lý thiết bị Windows.


1

Ở đây họ giải thích vấn đề (bằng tiếng Tây Ban Nha)

Tóm lược:

a. "vboxmanage redirecthd (thay đổi kích thước)" tạo ra lỗi trong nhiều hệ thống (phiên bản Windows NT5, 9x, Server và x86). Kết quả là một phân vùng bị hỏng, rất khó phục hồi

b. Bạn cần thực thi "vboxmanage redirecthd (thay đổi kích thước)" (để thay đổi kích thước VDI) Trong đường dẫn chứa tất cả các tệp và thư mục được liên kết với VDI. Nhìn vào hình ảnh

nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây

Sự giới thiệu:

Thay thế "vboxmanage redirecthd" bằng "vboxmanage clonehd"

  1. Tạo một đĩa ảo VDI mới (Với kích thước bạn muốn mở rộng). Ví dụ: Old.vdi có 50gb. New.vdi tạo nó với 100GB

    VBoxManage createhd --filename /path/New.vdi - kích thước 100000

  2. Nhân bản nó bằng lệnh sau:

    vboxmanage clonehd /path/Old.vdi /path/New.vdi - hiện tại

Lưu ý : Cả hai VDI không nên nằm trên cùng một đường dẫn

  1. Chạy New.vdi và đi đến Quản lý máy tính Windows và Mở rộng không gian đĩa (gán không gian trống). Nếu bạn không muốn thực hiện thủ công, bạn có thể sử dụng bất kỳ ứng dụng phân vùng miễn phí nào, chẳng hạn như Tiêu chuẩn trợ lý phân vùng AOMEI , GParted và nhiều ứng dụng khác.

cập nhật câu trả lời

0

Điều đáng lưu ý là tôi đã gặp chính xác vấn đề tương tự, đó là do tôi đã ban hành lệnh Sửa đổi khi khách đang chạy. Tài liệu chính thức không nói gì về việc bạn phải xóa ảnh chụp nhanh trước và khách đó đáng lẽ phải dừng lại.

Kế hoạch của tôi là thay đổi kích thước đĩa trong khi máy đang chạy vì tôi có âm lượng động cũng có thể tăng lên nhanh chóng. Tuy nhiên, đây là một ý tưởng tồi khi tôi khởi động lại máy để có kích thước đĩa đầy đủ mà tôi bị bỏ lại trong bóng tối với hình ảnh bị hỏng, tôi không thể khôi phục ngay cả khi không có testdisk. Testdisk tìm thấy các phân vùng nhưng hệ thống tập tin bị hư hỏng nặng và không thể sửa chữa được.

Vì vậy, nên được thông báo:

  1. Hợp nhất tất cả Ảnh chụp nhanh vào Ảnh cơ sở
  2. Tắt hệ điều hành khách

Tôi đã lặp lại quy trình trên máy của mình với một hình ảnh dự phòng và hệ điều hành khách bị tắt, điều này hoạt động tốt.


0

Tôi đã có thể khôi phục một hình ảnh đã bị hỏng bởi lỗi này. Không giống như Edison, hình ảnh trực tiếp không tìm thấy gì. Đây là những gì tôi đã làm:

  • Đầu tiên, vì rõ ràng hỗ trợ VBox cho VHD là lỗi và khủng khiếp, hãy bắt đầu bằng cách chuyển đổi VHD thành VDI với VBoxManage clonehd foo.vhd --format vdi foo.vdi. Khi tôi bỏ qua bước này, tôi có thể khôi phục các tệp từ hình ảnh nhưng nó sẽ "tự vỡ" một lần nữa sau một vài lần khởi động lại. Tôi đoán lỗi thực sự làm hỏng tập tin VHD theo cách mà sau đó tôi / O "phá vỡ lại" nó ... VBox dường như không gặp phải những vấn đề này với VDI nên tôi đã từ bỏ VHD.

  • Khởi động vào WinPE, Môi trường cài đặt trước Windows. Làm thế nào để làm điều này có thể là một bài viết cho chính nó. Nếu bạn không quen thuộc với đây là một phím tắt: Khởi động từ Windows Setup DVD (Vista trở lên) và nhấn shift-F10 sau khi GUI xuất hiện, nó sẽ cung cấp cho bạn một dấu nhắc lệnh.

  • Tải xuống testdisk , tìm cách đưa nó vào hình ảnh WinPE của bạn (hoặc một thanh USB đơn giản sẽ hoạt động) và chạy nó từ môi trường WinPE. (Lưu ý: WinPE thiếu WOW64, lớp tương thích 32 bit cho các ứng dụng 32 bit. Do đó, thiết lập WinPE 64 bit của tôi cần tệp nhị phân testdisk 64 bit.)

  • Testdisk đã tìm thấy các phân vùng và khôi phục chúng.

  • Tại thời điểm này, các tệp đã được phục hồi nhưng bộ tải khởi động không thành công cho một số vấn đề. Trước tiên tôi sử dụng diskpartđể đánh dấu các phân vùng như hoạt động ( list disk, sel disk <disk number>, sel par 0, active). Có thêm, sẽ không khởi động. Quay trở lại WinPE và xóa \boot, sau đó chạy bcdboot C:\windows /s C:để cài đặt lại bộ tải khởi động.

  • Cuối cùng tôi chạy chkdisk /Rđể chắc chắn hình ảnh vẫn ổn. Mất vài giờ, không tìm thấy bất kỳ vấn đề.


-1

Tôi có cùng một vấn đề, GParted hoàn toàn không nhận ra các phân vùng và nó được hiển thị dưới dạng không gian chưa phân bổ. Tại thời điểm này tôi hiểu rằng dữ liệu có thể đã bị mất.

Sau đó, tôi nhớ sử dụng testdisk để tìm phân vùng bị mất trên ổ cứng, vậy tại sao không thử nó trên đĩa ảo? va no đa hoạt động.

  1. Khởi động từ GParted, tại thời điểm viết bài trả lời này, GParted đã có "testdisk" bên trong nó. Chỉ cần chạy thiết bị đầu cuối, chạy "sudo testdisk / dev / sda" hoặc bất cứ thứ gì nó hiển thị trong máy tính của bạn. Chạy "sudo fdisk -l" để hiển thị tất cả các đĩa.
  2. Phân tích Bảng phân vùng, nó sẽ khám phá phân vùng ngay lập tức, vì nó vẫn nằm trong các khu vực đầu tiên. Viết phân vùng mới, bảng, sau đó tiến hành GParted để tiếp tục khôi phục, như được hướng dẫn trong liên kết này: http://www.howtogeek.com/124622/how-to-enlarge-a-virtual-machines-disk-in-virtualbox -hoặc-vmware /
  3. Lần tới khi bạn muốn làm điều này, hãy tạo một bản sao VDISK của bạn trước.
  4. Tôi nhận thấy trong liên kết bên dưới rằng họ tạo VHD mới sau đó sao chép với - hiện tại: http://tips.kaali.co.uk/2012/03/16/Exand-or-increas-the-size-of-virtual- box-vdi-dis / Tôi chưa thử, nhưng tôi đã phục hồi đĩa của mình với các hướng dẫn ở trên.

Hy vọng rằng sẽ giúp được ai đó.


Vui lòng trích dẫn các phần thiết yếu của câu trả lời từ (các) liên kết tham chiếu, vì câu trả lời có thể trở nên không hợp lệ nếu (các) trang được liên kết thay đổi.
DavidPostill
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.