Restore /Lấy dữ liệu từ file img

File img không chỉ chứa dữ liệu mà còn chứa cấu trúc đĩa, bao gồm kiểu đĩa (MBR, GPT… ), kiểu partition (fat32, ext4…), PARTUUID, kích thước partition… nên nếu cần sao chép tất cả thì chúng ta tạo bản sao của đĩa bằng lệnh dd

dd if=/path/to/img of=/tên/đĩa/copy bs=2M
dd if=/tmp/2019-10-15.os.img of=/dev/sdb bs=4M

Tuy nhiên trong trường hợp định dạng đĩa có rồi, chỉ cần phục hồi dữ liệu thôi thì chúng ta cần mount partition của file img.

Khi chúng ta gắn USB Flash vào máy, hệ thống sẽ tự động phát hiện có thiết bị mới và Windows gán cho một tên ổ đĩa, Linux gán cho một tên thư mục /hoặc không auto mount. Đối với file img, chúng ta phải có thao tác gán file vào hệ thống, tương tự như gắn USB flash như trên, sau đó mount vào thư mục.

sudo losetup -Pf /path/to/img
sudo losetup -Pf /tmp/2019-10-15.os.img
  • -f, –find Tìm thiết bị đầu tiên chưa dùng (loop0)
  • -P, –partscan Tìm và tạo các partition (từ file img)

Kiểm tra việc gán vào hệ thống

lsblk

File img đã được nhận như thiết bị /dev/loop0 với các partition loop0p1loop0p2.

Để làm việc với file của các partition, chúng ta mount partition với một thư mục nào đó

mkdir /tmp/rootfs
sudo mount /dev/loop0p2 /tmp/rootfs

Sau đó đồng bộ dữ liệu (phục hồi) với thư mục / hiện tại

sudo rsync -avx --delete /tmp/rootfs/ /  ## (1)

–delete để xóa các file lạ không có trong nguồn /tmp/rootfs

Thậm chí không cần rsync, chúng ta có thể chỉ copy những file cần thiết từ /tmp/rootfs

Tóm lại, làm việc với data trên file img chỉ cần qua 2 bước

sudo losetup -Pf /path/to/img
sudo mount /dev/loop_part /folder

Để kết thúc, tháo đĩa ảo ra

sudo umount /tmp/rootfs
sudo losetup -d /dev/loop0

Chú thích

Ngược lại, có thể cập nhật file backup img bằng câu lệnh

sudo rsync -avx --delerte / /tmp/rootfs  ## (2)

Comments Off on Restore /Lấy dữ liệu từ file img

Filed under Software

Comments are closed.