명령줄에서 디스크 이미지를 마운트하는 방법은 무엇입니까?

명령줄에서 디스크 이미지를 마운트하는 방법은 무엇입니까?

/dev에 해당 장치 파일이 있는 드라이브를 마운트하는 방법을 알고 있지만, 물리적 장치를 나타내지 않고 /dev에 유사한 장치(예: ISO 파일 또는 플로피 이미지). Mac OS X에서는 Finder에서 디스크 이미지 아이콘을 두 번 클릭하면 드라이브가 자동으로 마운트되는 방식으로 이 작업을 수행할 수 있다는 것을 알고 있지만 터미널에서도 이 작업을 수행할 수 있기를 바랍니다. 이를 수행하는 보편적인 Unix 방법이 있는지, 아니면 플랫폼에 특정한 것인지는 확실하지 않습니다.

답변1

MBR 파티션 테이블이 있는 하드 드라이브 이미지인 경우 이미지를 fdisk하여 마운트해야 하는 파티션의 오프셋을 찾습니다.

fdisk -lu /path/disk.img

그런 다음 오프셋으로 설치하겠습니다.

mount -o loop,offset=xxxx /path/disk.img /mnt/disk.img.partition

오프셋 값은 바이트 단위이지만 블록 수가 표시되므로 fdisk출력의 "Begin" 또는 "Start" 열(또는 블록 크기에 관계없이)의 값을 곱하여 설치할 오프셋을 얻어야 합니다.fdisk512

답변2

대부분의 최신 GNU 시스템에서 이 mount명령은 다음을 처리할 수 있습니다.

mount -o loop file.iso /mnt/dir

umount제거하려면 다음 명령을 사용하십시오.

umount /mnt/dir

운영 체제에 이 옵션이 없으면 새로 만들 수 있습니다.순환 장치:

losetup -f # this will print the first available loop device ex:/dev/loop0
losetup /dev/loop0 /path/file.iso #associate loop0 with the specified file
mount /dev/loop0 /mnt/dir #It may be necessary specify the type (-t iso9660)

제거하려면 다음을 사용할 수 있습니다 -d.

umount /mnt/dir
losetup -d /dev/loop0

파일에 HD 이미지와 같은 파티션이 있는 경우 -P운영 체제에 따라 이 매개변수를 사용할 수 있으며 파일 콘텐츠 내에서 파티션을 매핑합니다.

losetup -P /dev/loop0 /path/file.iso # will create /dev/loop0 
ls /dev/loop0p* #the partitions in the format /dev/loop0pX

답변3

losetup -P다중 파티션 이미지 자동화

명령줄에서 디스크 이미지를 마운트하는 방법은 무엇입니까? Unix 및 Linux 스택 교환 |언급했듯이 losetup -P추가 자동화를 위한 몇 가지 편리한 Bash 기능이 있습니다. 용법:

$ los my.img
/dev/loop0
/mnt/loop0p1
/mnt/loop0p2

$ ls /mnt/loop0p1
/whatever
/files
/youhave
/there

$ sudo losetup -l
NAME       SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE                                                                                      DIO
/dev/loop1         0      0         0  0 /full/path/to/my.img

$ # Cleanup.
$ losd 0
$ ls /mnt/loop0p1
$ ls /dev | grep loop0
loop0

원천:

los() (
  img="$1"
  dev="$(sudo losetup --show -f -P "$img")"
  echo "$dev"
  for part in "$dev"?*; do
    if [ "$part" = "${dev}p*" ]; then
      part="${dev}"
    fi
    dst="/mnt/$(basename "$part")"
    echo "$dst"
    sudo mkdir -p "$dst"
    sudo mount "$part" "$dst"
  done
)
losd() (
  dev="/dev/loop$1"
  for part in "$dev"?*; do
    if [ "$part" = "${dev}p*" ]; then
      part="${dev}"
    fi
    dst="/mnt/$(basename "$part")"
    sudo umount "$dst"
  done
  sudo losetup -d "$dev"
)

답변4

노력하다:

mount -o loop /path/to/file.iso /mnt

나중에 추가할 수 있습니다 loop.

  • -t msdos플로피 디스크의 경우
  • -t iso9660CD-ROM 이미지의 경우

Linux는 일반적으로 파일 형식을 추측하려고 시도합니다.

관련 정보