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

이미지 파일에는 4개의 파티션이 있는 것 같습니다. 최소한 하나의 파티션에 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
    

관련 정보