Gắn hình ảnh đĩa ở định dạng thô


11

Trong khi cố gắng gắn ảnh đĩa ở định dạng Raw (dd) bằng lệnh sau

mount  nps-2010-emails.dd /media/manu/

Tôi nhận được thông báo lỗi sau

mount: you must specify the filesystem type

Tôi biết rằng bằng cách sử dụng -tchúng ta có thể chỉ định hệ thống tệp nhưng thuật ngữ cho tệp RAW (dd) là gì, có thể được truyền dưới dạng đối số cho lệnh mount. Nếu phương pháp của tôi để gắn hệ thống tập tin này là sai xin vui lòng giúp tôi làm tương tự.

$ file -s nps-2010-emails.dd
nps-2010-emails.dd: x86 boot sector; 
partition 1: ID=0xb, starthead 254, startsector 1, 20479 sectors, extended partition table (last)\011, code offset 0x0

$ fdisk -l nps-2010-emails.dd
Disk nps-2010-emails.dd: 10 MB, 10485760 bytes
255 heads, 63 sectors/track, 1 cylinders, total 20480 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

             Device Boot      Start         End      Blocks   Id  System
nps-2010-emails.dd1               1       20479       10239+   b  W95 FAT32 

Bạn có thể thêm đầu ra của lệnh file -s nps-2010-emails.ddvào bài viết của bạn không?
Steeldo

Tôi đã xem hồ sơ của bạn, và thấy câu hỏi khác. Có lẽ bài viết trên blog này có thể giúp đỡ.
muru

@steel ấn Đầu ra đã thêm ...
spaceman_spiff

Các tùy chọn dễ dàng hơn để gắn kết - có sẵn / được mô tả tại đây: askubfox.com/questions/69363/ mẹo
Hannu

Câu trả lời:


16

Từ http://major.io/2010/12/14/mounting-a-raw-partition-file-ADE-with-dd-or-dd_resTHER-in-linux/ , có một đề xuất sử dụng bù. Đầu tiên lấy phần bù qua fdisk(8)và sau đó chỉ định nó với offsettùy chọn mount. Sử dụng fdiskđể xác định khu vực bắt đầu của phân vùng và kích thước khu vực. Sau đó tính toán bù theo byte bằng cách sử dụng số khu vực bắt đầu và kích thước khu vực theo byte. Xem Mount phân vùng duy nhất từ ​​hình ảnh của toàn bộ đĩa (thiết bị) để biết ví dụ. Cuối cùng:

mount -o offset=<offset in bytes> nps-2010-emails.dd /media/manu/

Trong một đĩa cứng thông thường, các ô chứa dữ liệu được nhóm lại. Các nhóm được gọi là các ngành. Cách chúng ta thường phân vùng mọi thứ, một vài lĩnh vực đầu tiên được đặt sang một bên để cung cấp thông tin về các phân vùng, để lại một khoảng trống. Vì vậy, nếu chúng ta có một hình ảnh của toàn bộ đĩa, các lĩnh vực này cũng được bao gồm. Bây giờ, mountlệnh không thể bắt đầu trực tiếp ở byte đầu tiên, vì phân vùng không bắt đầu ở byte đầu tiên. Vì vậy, chúng tôi sẽ phải nóimountcó bao nhiêu byte để bỏ qua (để nó có thể tránh được thông tin bổ sung) và đi đến phân vùng thực tế. Điều này được gọi là bù. Bây giờ mỗi khu vực có thể lưu trữ một lượng thông tin nhất định theo byte, được gọi là kích thước của một khu vực. Chúng tôi lấy tổng kích thước thông tin có thể được lưu trữ trong khoảng trống này bằng cách nhân kích thước của một khu vực, với kích thước của khoảng cách về số lượng các lĩnh vực.

Từ đầu ra của fdisknó, bạn có thể thấy kích thước sector là 512 byte và nó bắt đầu ở sector 1. Vì vậy, offset là 1 * 512 = 512. Hãy thử lệnh sau:

mount -t vfat -o offset=512 ps-2010-emails.dd /media/manu/

Tôi đã thêm loại hệ thống tập tin kể từ khi fdiskđưa nó là FAT32. Để gắn kết nó để viết là tốt, sử dụng -o offset=512,rwthay thế.


Tôi đã đọc bài viết trong liên kết đầu tiên bạn đã đăng nhưng không hiểu nhiều về offset , số ngành và các khái niệm khác, nếu có thể bạn có thể giải thích về chủ đề này hoặc đăng một số tài liệu tham khảo để nghiên cứu tương tự. Thanx
spaceman_spiff

Đăng cập nhật để bao gồm đầu ra của fdisk -l nps-2010-emails.dd.
spaceman_spiff

thanx, nền tảng của tôi là về khoa học máy tính lý thuyết (tôi là một chuyên gia toán học), có tham khảo nào để hiểu chủ đề này trên một ghi chú chung không?
spaceman_spiff

'Chủ đề' này là đĩa, ngành, hệ thống tập tin và tất cả những thứ đó? Có lẽ bạn có thể bắt đầu với chương IO / Storage của sách giáo khoa Hệ điều hành, như của Tannenbaum. Khác với những điều cơ bản và loại gắn kết FAT32, mọi thứ tôi đăng trên câu trả lời là từ tholinks.
muru

10

Bạn cũng có thể để máy tính tự động quét tất cả các phân vùng trong một bãi chứa và tự động chuẩn bị tất cả các thiết bị lặp, như được mô tả ở đây .

Vì vậy, giả sử bạn đã đổ toàn bộ của bạn /dev/sdavào một cái gì đó được gọi là sda.img. Bạn có thể truy cập các phân vùng của nó như sau:

losetup -f -P sda.img

Trên hệ thống của tôi, nó sẽ hiển thị như sau:

hình ảnh thô sda

Trong các môi trường không phải GUI, bạn có thể liệt kê thiết bị đã tạo losetup -l, sẽ cho bạn biết tên của thiết bị lặp, ví dụ:

# losetup -l
NAME       SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE
/dev/loop0         0      0         0  0 /path/mmcblk0

Sau đó, bạn có thể mount nói, phân vùng đầu tiên, với:

mount /dev/loop0p1 /mnt/mypartition

Mong rằng sẽ giúp.


Làm việc cho tôi hoàn hảo.
Praveen pathak

2
Dọc theo những dòng này, trên Ubuntu 18.04 tôi không gặp khó khăn gì khi thực hiện "gparted backup.img" và nhận danh sách các phân vùng. "fdisk -l backup.img" cũng hiển thị thông tin hữu ích.
RoundSparrow hilltx

1
Làm thế nào để bạn hoàn tác losetuplệnh?
Flimm

1

Không thể thêm nhận xét vì thiếu danh tiếng, nhưng muốn nói với những người có đĩa GPT khi kiểm tra nó với fdisk, thay vào đó hãy sử dụng gdsik để bắt đầu cung cấp khu vực và tính toán bù đắp thích hợp. Nó đã giúp đỡ tôi.

fdisk -l đưa cho tôi:

      Device Boot      Start         End      Blocks   Id  System
vm2080737.bak1   *           1        3901    31457279+  ee  GPT

và nó không thể được gắn với offset 512 với lỗi 'mount: bạn phải chỉ định loại hệ thống tập tin'

gdisk -l đã cho tôi kết quả tốt:

Number  Start (sector)    End (sector)  Size       Code  Name
   1              34             545   256.0 KiB   A501  gpboot
   2             546          993825   485.0 MiB   A502  swap
   3          993826        62914526   29.5 GiB    A503  rootfs

1
Hoặc sử dụng parted.
muru
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.