Có thể gắn hình ảnh đĩa, được tạo bằng dd, vào một thư mục trên hdd usb gắn ngoài không?


2

Tôi có một hình ảnh của nhà tôi ( /dev/sda3 ) phân vùng mà tôi đã tạo bằng lệnh "dd".

dd if=/dev/sda3 of=/path/to/disk.img

Tôi đã xóa phân vùng nhà thông qua gparted để phóng to /dev/root vách ngăn. Sau đó, tôi đã tạo lại /dev/sda3 phân vùng có kích thước nhỏ hơn thì phân vùng tôi đã sao lưu vào hình ảnh.

Tôi đã tự hỏi vì tôi có ổ cứng gắn ngoài 2TB, có thể gắn hình ảnh được sao lưu của mình vào ổ cứng ngoài và sau đó sao chép các tệp vào /home danh mục. Vì ổ cứng gắn ngoài sẽ ở trạng thái "được gắn", tôi không chắc liệu đây có phải là ý tưởng hay không, gắn trên thiết bị được gắn.

  • Tôi đang chạy Slackware 13.37 (64 bit).
  • sử dụng ext4 trên tất cả các phân vùng.
  • thay đổi kích thước phân vùng gốc với cd trực tiếp gparted.

Tôi đã thử:

mount -t ext4 /path/to/disk.img /mng/image -o loop

Nó đã cho tôi một lỗi fs (loại fs sai, tùy chọn xấu, siêu khối xấu trên dev / loop / 0)

Sau đó tôi đã làm

dmesg | tail

đầu ra nào:

EXT4-fs (loop0): hình học xấu: số khối 29009610 vượt quá kích thước của   defice (khối 1679229)

Tôi không biết phải làm gì, tôi muốn khôi phục lại /home dữ liệu từ hình ảnh tôi đã sao lưu.

[Cập nhật] : * Disk.image nằm trên ổ flash USB 16 GB của tôi. Kích thước hình ảnh khoảng 6GB. Hình ảnh được tạo từ phân vùng đã xóa khoảng 100 GB và hiện giảm xuống còn khoảng 80 GB.

[Cập nhật] : Tôi đã thử điều này ngày hôm nay: LQWiki: Một số ví dụ dd nói:

Bạn không muốn nói với một ổ đĩa nó lớn hơn thực tế bằng cách viết một bảng phân vùng từ một ổ đĩa lớn hơn sang một ổ đĩa nhỏ hơn. 63 lĩnh vực đầu tiên của một ổ đĩa trống, ngoại trừ khu vực 1, MBR.

dd if=/dev/sda skip=2 of=/dev/sdb seek=2 bs=4k conv=noerror

Tôi đã cố gắng để gắn kết /dev/sda3 đến /home. dmesg | tail xuất ra một lỗi "mô tả nhóm bị hỏng!"

Sau đó tôi đã thử:

fsck.ext4 -y -f /dev/sda3

Nó tạo ra một lượng lớn các vấn đề cố định và hàng triệu số đi xuống với tốc độ ánh sáng.

Sau đó tôi đã gắn kết thành công /dev/sda3 đến /home, nhưng không có dữ liệu trong thư mục nhà. Chỉ một số thư mục có tên "mất + tìm thấy" cũng trống.


Bạn có chắc là bạn có toàn bộ? Bạn đã thử gắn đĩa.img trước khi xóa phân vùng chưa?
Paul

Tôi đã không nhìn thấy điều này cá nhân, nhưng trang này dường như mô tả một vấn đề tương tự: linuxquestions.org/questions/linux-general-1/ Có lẽ bạn có thể thử lệnh resize2fs? Mặc dù vậy, hãy sao lưu tập tin hình ảnh.
grifferz

@Paul Tôi chưa thử gắn đĩa.img trước khi xóa phân vùng :(
Keeper Hood

@grifferz Tôi không chắc mình có thể thay đổi kích thước hệ thống tập tin trong tình huống này, vì tôi không có không gian trống để thay đổi kích thước. Phân vùng gốc của tôi là 8GB và nhà trên 100GB. Sau đó, X của tôi bị hỏng và hiển thị không có lỗi không gian trống, sau đó tôi đã thực hiện thay đổi kích thước thông qua gparted và đưa ra 32GB gốc và ngôi nhà còn lại. Vì vậy, tôi không thể phóng to phân vùng của mình, tôi đang tìm cách sao chép dữ liệu từ đĩa.img. Không có cách nào để bỏ qua các khối trống và chỉ đếm dữ liệu?
Keeper Hood

Trong bài viết tôi liên kết với họ đang thực hiện resize2fs trên thiết bị khối cho họ các vấn đề. Vì vậy, trong trường hợp của bạn đó sẽ là tập tin hình ảnh disk.img. Bạn sẽ thay đổi kích thước hệ thống tệp trong đó, không phải chính tệp hoặc bất kỳ phần nào khác trong hệ thống của bạn.
grifferz

Câu trả lời:


4

Tại sao không có bạn:

sudo losetup /dev/loop0 /path/to/disk.img
mkdir /mnt/image
sudo mount /dev/loop0 /mnt/image

0

Cố gắng cắt bớt tập tin đến số lượng khối vượt quá và sau đó kể lại.
Trong tình huống của bạn:

EXT4-fs (loop0): hình học xấu: số khối 29009610 vượt quá kích thước của khuyết điểm (1679229 khối)

truncate -o -s 29009610 /path/to/disk.img 
mount -o loop /path/to/disk.img /mng/image

Flavio


Cảnh báo điều này sẽ sửa đổi tập tin thực tế và có thể mất dữ liệu từ nó!
Chris Stryczynski

0

Tôi biết đây là một câu hỏi cũ, nhưng tôi mới gặp vấn đề tương tự hai ngày trước, và đã có thể giải quyết phần nào vấn đề.

Vấn đề này về cơ bản xảy ra khi bằng cách nào đó hoặc một hình ảnh hệ thống tập tin ext2 / 3/4 không được sao chép hoàn toàn vào một tập tin hình ảnh, về cơ bản để lại một đoạn dữ liệu bị mất ở cuối. Vì điều này, bạn sẽ không thể khôi phục tất cả các tệp tồn tại trong ảnh gốc, trừ khi bằng một phép lạ nào đó, không có dữ liệu tệp nào được lưu trữ trong phần bị thiếu của hình ảnh.

Trong trường hợp của tôi, tôi không thể gắn hình ảnh, nhưng có một tiện ích sẽ quét các hình ảnh hệ thống tập tin ext2 / 3/4 và đổ tất cả các tập tin tìm thấy vào một vị trí được chỉ định:

bash$ losetup -f ./corrupted.img # mounts to /dev/loop0
bash$ sudo debugfs -c /dev/loop0
debugfs: rdump / /path/to/dump/files/
debugfs: quit

Các lần thứ ba lệnh có hai đối số: đường dẫn phía trong hình ảnh bị hỏng để quét đệ quy các tệp và đường dẫn trên hệ thống tệp gốc để lưu tệp vào. Bất kỳ tệp nào không thể phục hồi sẽ được tạo với kích thước 0 byte.

Có lẽ bạn sẽ cần phải chỉnh sửa các tệp vì debugfs chạy bằng root.


Cẩn thận với điều đó. Cho tôi, losetup -f ./corrupted.img ăn tất cả RAM có sẵn cộng với hoán đổi. Không thể hủy nó (vì tôi đã chuyển sang một màn hình ảo khác và không thể quay lại do quá tải), nó đã đóng băng máy của tôi và tôi phải khởi động lại, mất hiệu quả tất cả các cửa sổ đang mở và công việc chưa được lưu (may mắn là rất ít ).
Izzy

@Izzy Tôi xin lỗi khi nghe bạn gặp rắc rối. Tôi thấy thật kỳ lạ khi losetup ăn hết RAM của bạn. Tôi đã gắn hình ảnh trong 100 Gigabyte mà không gặp vấn đề gì. Công tắc "-f" có phải là công cụ duy nhất bạn sử dụng không?
Gogeta70

Vâng, gần như nguyên văn được sao chép từ câu trả lời của bạn. Đó là một hình ảnh ext4 bị hỏng trong trường hợp của tôi. Không có dữ liệu bị mất, chỉ là sự sắp xếp của các cửa sổ mở, vì vậy không có tác hại thực sự. Không biết điều gì đã gây ra điều đó. Có vẻ như nó đã cố tải toàn bộ hình ảnh được dựng lại vào RAM. Nếu tôi không chuyển sang một máy tính để bàn khác, tôi có thể có Ctrl-C đúng lúc Nhưng tải CPU 100% trên tất cả các lõi khiến việc chuyển đổi trở lại là không thể. // TL; DR: không có hại gì, chỉ muốn để lại một ghi chú để giữ cho mắt mở và nhận thức được khi làm điều đó.
Izzy
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.