嘗試掛載 DD 檔案時“無法讀取最後一個磁區”

嘗試掛載 DD 檔案時“無法讀取最後一個磁區”

我有一個 .dd 文件,想檢查裡面的內容。許多教學建議使用 Disk Image Mounter,但這個選項不存在。

所以我嘗試了經典的方法:

mkdir /mnt/影像

sudo mount -o 迴圈 /home/name/Downloads/usb_content.dd

但換成這個

Failed to read last sector (129022): Invalid argument
HINTS: Either the volume is a RAID/LDM but it wasn't setup yet,
   or it was not setup correctly (e.g. by not using mdadm --build ...),
   or a wrong device is tried to be mounted,
   or the partition table is corrupt (partition is smaller than NTFS),
   or the NTFS boot sector is corrupt (NTFS size is not valid).
Failed to mount '/dev/loop42': Invalid argument
The device '/dev/loop42' doesn't seem to have a valid NTFS.
Maybe the wrong device is used? Or the whole disk instead of a
partition (e.g. /dev/sda, not /dev/sda1)? Or the other way around?

如何正確掛載dd鏡像?

編輯:

sudo fdisk --list /home/name/Downloads/usb_content.dd

給出:

Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x73736572

Device                                     Boot      Start        End    Sectors   Size Id Type
/home/name/Downloads/usb_content.dd1      1920221984 3736432267 1816210284   866G 72 unknown
/home/name/Downloads/usb_content.dd2      1936028192 3889681299 1953653108 931,6G 6c unknown
/home/name/Downloads/usb_content.dd3               0          0          0     0B  0 Empty
/home/name/Downloads/usb_content.dd4        27722122   27722568        447 223,5K  0 Empty

Partition table entries are not in disk order.

答案1

您的映像檔中似乎有四個分割區。如果至少有一個分割區具有 Ubuntu 可以管理的檔案系統,您可以嘗試按照下列步驟掛載分割區。

  • 安裝kpartx

    sudo apt install kpartx
    
  • 用於kpartx將圖像檔案的內容映射到循環設備

    sudo kpartx -av /home/name/Downloads/usb_content.dd
    
  • 您應該找到映射的循環設備

    ls /dev/mapper/loop*
    
  • 用於lsblk查看映射的內容

    lsblk -o name,size,fstype,label,mountpoint /dev/loopN
    

    其中N是一個數字(如果之前沒有循環設備,則為 0,否則為第一個未佔用的數字,例如 7,取決於已對應的循環設備的數量)。就我而言(沒有任何快照)N = 0所以/dev/loop0

  • 現在,lsblk應該告訴您是否存在某個檔案系統,如果是這種情況,您可以建立掛載點並掛載[檔案系統]

    sudo mkdir /mnt/lp1  # create mountpoint only once
    sudo mkdir /mnt/lp2  # create mountpoint only once
    ...
    
    sudo mount /dev/mapper/loopNp1 /mnt/lp1
    sudo mount /dev/mapper/loopNp2 /mnt/lp2
    ...
    

    其中N是您之前確定的數字(在我的例子中0)。

  • 現在您可以在以下位置讀取已安裝檔案系統的內容 /mnt/lp1 /mnt/lp2 ...

  • 最後,您可能想要卸載檔案系統並刪除映射,

    sudo umount /mnt/lp*
    
    sudo kpartx -d /home/name/Downloads/usb_content.dd
    

相關內容