mount와 mount -o 루프의 차이점은 무엇입니까


28

이름이 iso 인 파일이 ubuntu.iso있습니다.

나는 mount다음 명령으로 할 수 있습니다 : mount ubuntu.iso /mnt. 그것을 마운트 한 후에, 나는 명령의 바깥에서 그것을 볼 수 있습니다 df -h: /dev/loop0 825M 825M 0 100% /mnt.

그러나 명령을 실행 mount -o loop ubuntu.iso /mnt하면 동일한 결과가 나타납니다.

내가 알고 있듯이 루프 장치를 사용하면 iso 파일을 장치로 방문 할 수 있으므로 옵션을 추가하는 것 -o loop입니다. 그러나 나는 단지 실행하더라도 내 iso 파일을 방문 할 수 있습니다 mount ubuntu.iso /mnt.

그래서 mount와 의 차이점을 볼 수 없습니다 mount -o loop.


또한 중요한 점은 mount에서 적절한 arugments로 루프백 장치를 설정할 수없는 경우가 있다는 것입니다. 예를 들어 mount ubuntu.iso /mnt, 읽기 전용 루프백 장치를 mount /image.squashfs /mnt설정하지 않고 DIO( losetup --direct-io=on) 루프백 장치를 설정하지 않습니다 .
문맹

답변:


46

두 버전 모두 루프 장치를 사용하며 동일한 결과를 생성합니다. 짧은 버전은 mount최근에 추가 된 "영리함"에 의존합니다 . 루프 장치를 사용하도록 명시 적으로 mount -o loop지시 mount합니다. 루프 장치 자체를로 남겨두고 mount사용 가능한 장치를 찾아서 설정하고 사용합니다. ( 들어 장치를 지정할 수도 있습니다 mount -o loop=/dev/loop1.)

똑똑한 점은 마운트 할 파일이 주어지면 필요할 때 mount자동으로 루프 장치를 사용 하여 파일을 마운트 한다는 것입니다. , 파일 시스템이 지정되지 않았거나 libblkid파일 시스템이 블록 장치에서만 지원되는지 (따라서 루프 장치는 파일을 블록 장치로 변환하는 데 필요합니다.

mount매뉴얼 페이지 의 루프 장치 섹션에 자세한 내용이 있습니다.


1
오래전에 마운트에 "-o loop"옵션이 없었기 때문에 losetup 명령을 사용하여 루프 장치를 수동으로 만들어야합니다.
Edheldil

@Edheldil은“오래 전에”라는 개념에 의존합니다 ;-). 2001 년에 util-linux2.11이 지원 mount -o loop되었고, 적어도 1 년 전에 2.10도 지원 했다고 생각합니다.
Stephen Kitt

예, 그러나 2001 년에 일반적으로 안정적인 배포판을 사용했던 것은 이미 util-linux 2.11을 사용 했습니까?
rackandboneman

2
@rackandboneman 나는 조금 더 파고 갔고, 2.4에서 2.5j -o loop사이에 대한 지원 이 추가 되었다는 것이 밝혀졌습니다 util-linux. 데비안 1.1 은 후자를 갖고 1996 년 6 월에 릴리스되었습니다. 따라서이 옵션은 20 년 이상 배포판에서 사용할 수 있습니다.
Stephen Kitt

이 영리함의 장점 : XFS 개발자의 새로운 "직접 파일 마운트"기능 (루프 장치 필요 없음)이 커널에 도달하면 mount해당 메커니즘으로 투명하게 전환 할 수 있습니다 (최소 15 분 동안까지) 그것은 누군가의 셸 스크립트를 손상 시켰고mount -o loop 여전히 오래된 (현재) 메커니즘을 요구하는 것과 달리 모든 사람들이 루프 장치로 돌아 가야 합니다.
grawity

9

loop장치가 주로하여 제어 losteup명령. 그래서 losetup -a사용 된 루프 장치 및 첨부 파일에 대해 개요를 제공합니다. 이 mount명령은 블록 장치 만 마운트 할 수 있습니다 . 루프 장치는 파일 (문자 장치)에서 가상 블록 장치를 만들 수 있습니다.

사실 오래된 Linux 시스템에서는 파일 을 마운트 할 올바른 장치로 파일mount인식 할 수 없었지만 마운트 명령이 많은 기능으로 완료되는 동안 이제는 자체적으로 결정할 수 있기 때문에 이러한 명령 사이에는 큰 차이 가 있습니다. losetup 명령을 호출하고 결과를 마운트하십시오. 그러나 전체 디스크 이미지가 iso 형식이 아니고 예를 들어 처음에 MBR을 사용하는 경우 mount 명령은이를 인식 할 수 없으며 사용 가능한 파티션 (예 : 명령으로) yoursef를 찾아서 전체 옵션 mount comman으로 마운트해야합니다. 같이 :parted disk_image.raw unit B print

mount disk_image.raw /mntpoint/ -o loop,offset=${OFFSET_of_PARTITION}

이 구문에서 루프 장치는 지정되지 않았으며 시스템이 첫 번째 비어있는 것을 선택한다고 가정합니다 (예 /dev/loop0: /dev/loop1등) mount 명령의 다른 새로운 기능 중에서 마운트 된 블록 장치의 파일 시스템 유형을 지정할 필요가 없습니다 (귀하의 경우 -t iso9660). 파일 시스템 지원이 설치된 경우


7

mount ubuntu.iso /mnt와 사이에는 차이가 없습니다 mount -o loop ubuntu.iso /mnt.

첫 번째는 두 번째를 사용한 것처럼 투명하게 처리됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.