원시 형식으로 디스크 이미지 마운트


11

다음 명령을 사용하여 디스크 이미지를 Raw (dd) 형식으로 마운트하려고 할 때

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

다음과 같은 오류 메시지가 나타납니다.

mount: you must specify the filesystem type

내가 사용하는 것을 알고 -t우리가하는 파일 시스템을 지정하지만, 마운트 명령에 인수로 전달 될 수있는 RAW (DD) 파일에 대한 용어, 무엇을 할 수 있습니다. 이 파일 시스템을 마운트하는 방법이 잘못된 경우 동일한 작업을 수행하도록 도와주십시오.

$ 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 

file -s nps-2010-emails.dd게시물에 명령 출력을 추가 할 수 있습니까 ?
steeldriver

나는 당신의 프로필을보고 다른 질문을 보았습니다. 아마도 이 블로그 게시물이 도움이 될 수 있습니다.
muru

@steeldriver 출력 추가 ...
spaceman_spiff

보다 쉬운 장착 옵션-사용 가능 / 설명 : askubuntu.com/questions/69363/…
Hannu

답변:


16

에서 http://major.io/2010/12/14/mounting-a-raw-partition-file-made-with-dd-or-dd_rescue-in-linux/ , 오프셋 사용하는 제안이있다. 먼저를 통해 오프셋을 얻은 fdisk(8)다음 offset옵션으로 지정하십시오 mount. fdisk파티션의 시작 섹터와 섹터 크기를 결정하는 데 사용 합니다. 그런 다음 시작 섹터 번호와 섹터 크기 (바이트)를 사용하여 바이트 단위 오프셋을 계산하십시오. 예를 보려면 전체 디스크 (장치) 이미지에서 단일 파티션 마운트를 참조하십시오 . 드디어:

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

일반적인 하드 디스크에서는 데이터를 보유한 셀이 그룹화됩니다. 그룹을 섹터라고합니다. 우리가 일반적으로 물건을 분할하는 방식으로, 처음 몇 개의 섹터는 파티션에 대한 정보를 제공하기 위해 따로 보관되어 간격을 남깁니다. 따라서 전체 디스크 이미지가 있으면이 섹터도 포함됩니다. 이제 mount파티션이 첫 번째 바이트에서 시작되지 않으므로 명령은 첫 번째 바이트에서 직접 시작할 수 없습니다. 그래서 우리는mount건너 뛰는 바이트 수 (추가 정보를 피할 수 있도록) 실제 파티션으로 이동하십시오. 이것을 오프셋이라고합니다. 이제 각 섹터는 특정 크기의 정보를 바이트 단위로 저장할 수 있으며이를 섹터 크기라고합니다. 섹터 크기와 섹터 수의 차이 크기를 곱하여이 차이에 저장할 수있는 총 정보 크기를 취합니다.

fdisk거기 의 출력 에서 섹터 크기가 512 바이트이고 섹터 1에서 시작한다는 것을 알 수 있습니다. 따라서 오프셋은 1 * 512 = 512입니다. 다음 명령을 시도하십시오 :

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

fdiskFAT32로 지정한 이후 파일 시스템 유형을 추가 했습니다. 쓰기를 위해 마운트하려면 -o offset=512,rw대신 사용하십시오.


나는 당신이 게시 한 첫 번째 링크에서 기사를 읽었지만 가능한 경우 오프셋 , 섹터 번호 및 기타 개념 에 대해 많이 이해하지 못했습니다. 가능한 경우이 주제에 대해 자세히 설명하거나 동일한 내용을 연구하기 위해 참고 문헌을 게시하십시오. 감사
spaceman_spiff 7

의 출력을 포함하도록 게시물이 업데이트되었습니다 fdisk -l nps-2010-emails.dd.
spaceman_spiff 2016 년

고마워, 내 배경은 이론적 인 컴퓨터 과학 (나는 수학 전공)에 있으며, 일반적인 메모 에서이 주제를 이해하는 데 참조가 있습니까?
spaceman_spiff 2016 년

'이것'주제는 디스크, 섹터, 파일 시스템 및 그 모든 것입니까? 아마도 Tannenbaum과 같은 운영 체제 교재의 IO / Storage 장으로 시작할 수 있습니다. 이러한 기본 사항과 FAT32 마운트 유형을 제외하고 내가 답변에 게시 한 모든 내용은 tholinks입니다.
muru

10

여기에 설명 된대로 컴퓨터가 덤프의 모든 파티션을 자동으로 스캔하고 모든 루프 장치를 자동으로 준비하도록 할 수도 있습니다 .

따라서 전체 /dev/sda를이라고 불리는 것으로 덤프했다고 가정하겠습니다 sda.img. 다음과 같이 파티션에 액세스 할 수 있습니다.

losetup -f -P sda.img

내 시스템에서 다음과 같이 나타납니다.

sda 원시 이미지

GUI가 아닌 환경에서 생성 된 장치를로 나열 losetup -l하면 루프 장치의 이름을 알 수 있습니다. 예 :

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

그런 다음 첫 번째 파티션을 다음과 같이 마운트 할 수 있습니다.

mount /dev/loop0p1 /mnt/mypartition

희망이 도움이됩니다.


나를 위해 완벽하게 일했습니다.
praveen pathak

2
이 같은 줄을 따라 Ubuntu 18.04에서 "gparted backup.img"를 수행하고 파티션 목록을 얻는 데 문제가 없었습니다. "fdisk -l backup.img"도 유용한 정보를 보여줍니다.
RoundSparrow hilltx

1
losetup명령을 어떻게 취소 합니까?
Flimm

1

평판이 부족하여 설명을 추가 할 수 없지만 fdisk로 테스트 할 때 GPT 디스크를 가지고있는 사용자에게 알리려면 gdsik을 사용하여 시작 섹터를 가져 와서 적절한 오프셋을 계산하십시오. 그것은 나를 도왔다.

fdisk -l 줬어:

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

'mount : 파일 시스템 유형을 지정해야합니다'라는 오류가 발생하여 512 오프셋으로 마운트 할 수 없습니다.

gdisk -l 나에게 좋은 결과를 주었다 :

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
또는을 사용하십시오 parted.
muru
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.