DD ファイルをマウントしようとすると、「最後のセクターの読み取りに失敗しました」

DD ファイルをマウントしようとすると、「最後のセクターの読み取りに失敗しました」

.dd ファイルがあり、その中身を確認したいのですが、多くのチュートリアルではディスク イメージ マウンターが推奨されていますが、このオプションは存在しません。

そこで私は古典的な方法を試しました:

mkdir /mnt/image

そして

sudo マウント -o loop /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

イメージ ファイルには 4 つのパーティションがあるようです。少なくとも 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
    

関連情報