Khôi phục tập tin từ máy Virtualbox bị hỏng .vdi


23

Ubuntu 12.04.1 của tôi chạy trên hộp ảo đã hết dung lượng trong khi tôi đang cài đặt phần mềm trên đó và bây giờ nó không khởi động lại được . Tôi đã có các tập tin tôi cần để phục hồi từ nó. Tôi có ubuntu64.vditệp trên máy tính xách tay Windows 7 (máy chủ) và tôi đã tự hỏi liệu có cách nào để khôi phục các tệp từ tệp vdi không.

Song song, tôi đã tạo ra một máy 12.04.1 mới trên hộp ảo trong cùng một máy tính xách tay và tôi sẽ sử dụng máy đó thay vì máy bẻ khóa.

Tôi có thể thêm borked vdivào danh sách các đĩa trong đĩa làm việc. Sau đó, tôi đã sử dụng gnome nautilus để gắn đĩa borked.

Tôi có thể tìm thấy các tập tin trong đó, nhưng chúng khoảng 2 tháng tuổi. Tôi nghĩ rằng điều này trùng khớp với lần cuối cùng tôi thực hiện một ảnh chụp nhanh hộp ảo của máy, nhưng không phải lần cuối tôi có một máy làm việc, đó là ngày hôm qua. Có cách nào để gắn kết vdinhư ngày hôm qua, ngay trước khi nó bị hỏng không?

EDITED:

Đây là những gì Virtual Media Managercho tôi biết về ubuntu64.vditập tin của tôi : nhập mô tả hình ảnh ở đây

EDITED2:

Tôi đã sao chép ubuntu.vdivào một USB bên ngoài có nhiều dung lượng đĩa. Tôi đã thử sử dụng Windows để sao chép nó, nhưng gặp lỗi:

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

Tôi đã thử tương tự từ VM hoạt động thông qua một thư mục dùng chung của ổ USB và nó bắt đầu nhân bản. Mất một lúc, nhưng kết thúc thành công:

root@precise64:/media/sf_E_DRIVE/copy_of_ubuntu64_vm_folder_20140224/ubuntu64# 
VBoxManage clonehd ubuntu64.vdi ubuntu64.raw --format RAW
0%...

10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone hard disk created in format 'RAW'. UUID: 90f99198-18e1-40ee-85fe-c083dcbb1ac3

ED3:

Sau khi tạo tệp thô, tôi chạy testdiskvới Deeper Search, tôi nhận được một danh sách như thế này: nhập mô tả hình ảnh ở đây

Ater Deeper Searchđã hoàn thành, tôi nhận được một danh sách như thế này:

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

Nhưng tôi không biết cái nào là ảnh chụp nhanh ... Có ý tưởng nào không?


@Takkat, nghe hay đấy. Làm thế nào tôi có thể làm điều đó?
719016

@Takkat, tôi đã làm nó và gắn nó bằng gnome nautilus, nhưng tôi tin rằng nó đã gắn một phiên bản cũ của máy hai tháng.
719016

2
Vấn đề ở đây không phải là làm thế nào để khôi phục đĩa mà là làm thế nào để nó được hợp nhất với ảnh chụp nhanh. Nếu bạn cố gắng sao chép vdi của mình, nó sẽ có một uuid khác, ảnh chụp nhanh sẽ không hoạt động với nó và bạn sẽ mất dữ liệu mới nhất. Tôi không sử dụng ảnh chụp nhanh một cách thường xuyên vì trước đây tôi đã bị hỏng đĩa và tôi đã có thể khôi phục đĩa cơ sở nhưng luôn bị mất các đồng bằng. Tôi hy vọng ai đó ở đây cung cấp một công thức tốt để phục hồi cả cơ sở và đồng bằng.
Pablo Marin-Garcia

1
Đây là lần sau: không bao giờ lưu trữ dữ liệu trên máy ảo, luôn gắn ổ đĩa ngoài ... hoặc thực hiện sao lưu / đồng bộ thường xuyên qua rsync.
Dee

1
Cố gắng sao chép ảnh chụp gần đây nhất, không phải đĩa gốc. Bạn nên sử dụng Vboxmanage clonehd 2208...(sao chép UUID gần đây nhất tại đây). Xem serverfault.com/a/506581/195528
Rmano

Câu trả lời:


21

Của dòng lệnh

Trong trường hợp chúng tôi sử dụng Ubuntu làm máy chủ lưu trữ, chúng tôi có thể chuyển đổi đĩa .vdi của mình sang đĩa thô bằng lệnh sau:

VBoxManage clonehd <sourcename> <clone.raw> --format RAW

Sau đó chúng ta có thể mở testdisk Cài đặt testdisk với tệp này để khôi phục các tệp trên hình ảnh của ổ đĩa ảo (cũng xem bên dưới):

testdisk <clone.raw>

Của một máy ảo

Trong trường hợp hình ảnh ổ đĩa VDI bị hỏng vẫn được đăng ký với Virtual Box, chúng tôi có thể thêm hình ảnh này làm ổ đĩa cho máy ảo mới của chúng tôi:

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

Bắt đầu Ubuntu ảo mà chúng tôi đã thêm .vdi bị hỏng nhưng không gắn ổ đĩa .

  1. Tạo một thư mục trên một phân vùng được gắn ở đó để giữ dữ liệu thu hoạch (ví dụ ~/rescued),

  2. Cài đặt testdisk Cài đặt testdisk trên máy ảo.

  3. Bắt đầu testdisk từ một thiết bị đầu cuối ở đó:

    sudo testdisk
    
  4. Chọn ổ đĩa thích hợp để thu thập dữ liệu từ (ở đây hiển thị cho /sdb) và chọn[Proceed]

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

  5. Chọn bố cục phân vùng thích hợp (thường Intel)

  6. Chọn [Analyse]-[Quick Search]

  7. Chọn phân vùng chứa dữ liệu cần thu thập (ở đây chỉ có một phân vùng NTFS duy nhất):

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

  8. Nhấn P để liệt kê các tập tin trên partiton đó.

  9. Duyệt đến thư mục chứa dữ liệu. Xem tên tệp để đảm bảo bạn đã chọn đúng tên.

  10. Chọn thư mục hoặc tập tin để thu hoạch bằng cách sử dụng : . Tất cả các tệp / thư mục được chọn sẽ được đánh dấu màu xanh lá cây:

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

  11. Nhấn chữ hoa C để sao chép tất cả các thư mục / tập tin đã chọn vào thư mục cứu hộ sẽ được chọn trong bước tiếp theo.

  12. Chọn một thư mục trên (các) phân vùng được gắn trên máy ảo Ubuntu của bạn để giữ dữ liệu được giải cứu:

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

  13. Nhấn c để bắt đầu sao chép dữ liệu từ .vdi bị hỏng vào thư mục cứu hộ của chúng tôi trong VM khỏe mạnh của bạn.

Ghi chú:

  • Trong trường hợp chúng tôi không thể xem các tệp của mình với [Quick Search]tùy chọn trong 6. chúng tôi có thể phải thực hiện a [Deeper Search]. Điều này cũng sẽ liệt kê các phân vùng đã bị xóa và ghi đè trước đó. Vì vậy, chúng tôi cần đảm bảo rằng chúng tôi chọn các phân vùng thích hợp nơi dữ liệu của chúng tôi cư trú.

  • Nếu chúng tôi đã chụp ảnh nhanh của .vdi, chúng tôi có thể tìm thấy những ảnh này ~/.VirtualBox/Machines/<Name of Machine>/Snapshots/{###}.vmdknhưng bất cứ khi nào chúng tôi sử dụng tính năng chụp nhanh của Hộp ảo, mọi thay đổi từ ảnh chụp nhanh sẽ được ghi vào tệp vi sai.

    Để hợp nhất tệp vi sai với ổ cứng, chúng tôi cần xóa tất cả các ảnh chụp nhanh (có lẽ không phải là thứ chúng tôi muốn vì chúng tôi chỉ có thể khôi phục lại ảnh chụp nhanh trước đó thay vì gọi phục hồi dữ liệu) hoặc chúng tôi cần sao chép ổ đĩa của máy bằng cách sử dụng:

    VBoxManage clonehd <name_of_source> <clone>
    

    Sau đó, chúng tôi liên kết bản sao với VM cứu hộ của chúng tôi như mô tả ở trên.

  • Việc ghi vào .vdi bị hỏng chỉ nên được thực hiện sau khi dữ liệu được an toàn vì điều này có thể làm hỏng thêm hệ thống tệp.

  • Trong trường hợp giải cứu Ubuntu của chúng tôi quá nhỏ để giữ dữ liệu được giải cứu, chúng tôi có thể tạo một ổ đĩa ảo mới khác để liên kết với VM. Ổ đĩa này sau đó phải được gắn vào VM để có thể lưu dữ liệu từ testdisk ở đó.


cảm ơn vì những chỉ dẫn rất chi tiết Tôi theo dõi họ một cách chính xác và thêm các tập tin để sao chép vào thư mục được giải cứu của tôi. Bản sao đã thành công nhưng dấu thời gian của các tệp khá cũ: mùa hè 2013 thay vì hai ngày trước. Tôi không thể nhớ nếu tôi đã làm bất cứ điều gì đặc biệt 8 tháng trước, nhưng thoạt nhìn, các tập tin của tôi từ hai ngày trước không có ở đó. Bây giờ tôi đang sử dụng Deeper Searchđể duyệt qua nó một lần nữa.
719016

@ 213441265152351 - cũng có thể xem thư mục ảnh chụp nhanh ... có thể có một .vmdk mới hơn (ít nhất là với các hệ thống của tôi ở đây). Hy vọng bạn sẽ tìm thấy dữ liệu của mình :)
Takkat

Tôi đã thực hiện Deeper Searchvà sau một vài giờ, duyệt lại nội dung mà tôi muốn khôi phục: chúng vẫn đang chỉ vào một phiên bản mùa hè 2013 của máy ảo, trước đó chỉ là gắn phân vùng với gnome nautilus, thứ mang lại cho tôi một tháng một Phiên bản 2014, nhưng vẫn không thể tìm thấy các tập tin từ hai ngày trước.
719016

1
@ 213441265152351: vậy thì phức tạp hơn rồi. Có thể các hình ảnh khác biệt chưa được ghi phù hợp vào ổ đĩa khi xảy ra "sự cố". Bạn có thể thử xem đĩa từ Trình quản lý phương tiện ảo (xem virtualbox.org/manual/ch05.html#diffimages ) để xem đó có phải là trường hợp không, nhưng tôi phải nói rằng sau đó tôi sẽ không có ý tưởng về cách phục hồi dữ liệu từ những hình ảnh này.
Takkat

2
@Rmano: thực sự là một VDI được nhân bản sẽ không bao gồm bất kỳ ảnh chụp nhanh nào nhưng sẽ là trạng thái hiện tại cuối cùng của VM với các vi sai được hợp nhất. Chỉ trong trường hợp chúng tôi cần sao chép ảnh chụp nhanh trước đó, chúng tôi có thể sử dụng VDI ảnh chụp nhanh để sao chép nhưng sau đó tất cả các thay đổi muộn hơn ảnh chụp sẽ không được đưa vào bản sao.
Takkat

5

1) Cố gắng khôi phục ảnh chụp nhanh bằng UUID, sử dụng hack sau:

  • chọn UUID của trạng thái bạn muốn khôi phục.
  • Mở tệp .xml, tốt nhất là trong một công cụ (Internet Explorer hoạt động) cho phép điều hướng dễ dàng tệp XML.
  • Tại RẤT NHIỀU BOTTOM, trong phần Bộ điều khiển lưu trữ, tìm UUID của Trạng thái hiện tại và lưu ý tên StorageContoder =, type = và loại AttachedDevice =, port = và device = settings.
  • Ở giữa, tìm ảnh chụp nhanh bạn muốn.
  • Trong phần Bộ điều khiển lưu trữ của ảnh chụp nhanh, hãy tìm Đính kèm với các giá trị (tên / loại / loại / cổng / thiết bị) khớp với các giá trị được truy xuất ở trên.
  • Hình ảnh đó UUID xác định hình ảnh chụp nhanh cho đĩa cứng. Xóa dấu ngoặc {} và

nhập lệnh C:> VBoxManage clonehd <UUID> CloneDisk.vdi

Hy vọng nó có ích, tôi đã tìm thấy giải pháp ở đây: ( https://forums.virtualbox.org/viewtopic.php?t=791 )

2) nếu các bước trong 1) không hoạt động, đây là các bước khác bạn có thể thử. Cách sao chép trạng thái hiện tại của đĩa:

  • Mở Trình quản lý phương tiện ảo (Menu: Tệp> Trình quản lý phương tiện ảo).
  • Điều hướng đến đĩa cứng bạn muốn sao chép và mở rộng hoàn toàn cây (sử dụng phím * trên bàn phím số).
  • Tìm tệp {hexUUID} .vdi được đính kèm với VM mà bạn muốn sao chép Trạng thái hiện tại của. Nó sẽ là (một trong) các tệp lá ở cuối nhánh. Khi bạn chọn nó, văn bản 'Đính kèm:' ở dưới cùng của cửa sổ sẽ nói: 'Đã đính kèm:', không có bất kỳ (tên ảnh chụp nhanh) nào trong ngoặc sau nó.
  • Nhấp vào tên tệp ở bên phải của 'Vị trí:' được hiển thị ở dưới cùng của cửa sổ.
  • Ctrl + C / Sao chép để sao chép văn bản vào bảng tạm, đây sẽ là một cái gì đó như: (path) {b6441469-5ccb-418c-8fdd-73c5e1a17314} .vdi
  • Ctrl + V / Dán và trích xuất giá trị hexUUID (xóa dấu ngoặc {}) và chạy clonehd để sao chép nó!

Thi giải pháp là từ đây: ( http://www.im-code.com/blog/blog/2012/02/04/virtualbox-clone-snapshots/ ) Cả hai nói chủ yếu về cùng một.


1

Tôi đã có một hệ thống Linux bị hỏng /fsckkhông thể sửa nó . Tôi đã sử dụng cách tiếp cận đơn giản sau:

  1. Thêm một VDI thay thế mới cho máy.
  2. Tải về một ISO linux mới.
  3. Khởi động và cài đặt một linux mới trên đĩa bạn đã thêm vào (1).
  4. Gắn đĩa vào hệ thống mới của bạn và sao chép các tệp bạn cần. Thông thường, điều này có nghĩa là sao chép /home/user/thư mục. Nhớ sao chép các tập tin ẩn (tập tin cài đặt).

Làm việc tốt cho tôi. Các hỏng đĩa chỉ cản trở khởi động, không có mất dữ liệu trong thư mục nhà của tôi.

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.