Linux에서 ISO 및 기타 이미지 파일 형식을 마운트하는 방법은 무엇입니까?

게시 됨: 2018-09-06

H 이미지 파일의 내용을 확인해야 했던 적이 있습니까? 그 Linux 배포판의 버전을 잊어버렸을 수도 있습니다. 이미지를 다시 확인하는 데는 여러 가지 이유가 있을 수 있지만 이미지를 굽지 않고 어떻게 수행합니까? 추가 소프트웨어가 필요하지 않습니다.

기술에 정통한 모든 Linux 사용자는 마운트 명령에 익숙해야 합니다. 이는 일반 시스템 관리에서 매우 중요한 부분입니다. 그러나 많은 사람들은 마운트 명령이 언뜻 보기에 보이는 것보다 실제로 훨씬 더 강력하다는 것을 모릅니다.

Linux에서 이미지 파일 마운트

ISO 이미지뿐만 아니라 파티션이 있는 디스크 이미지도 빠르고 쉽게 마운트할 수 있습니다.

다음은 ISO 파일을 마운트하는 예입니다.

마운트 -o 루프 disk_image.iso /path/to/mount/dir

여기서 -o 플래그는 마운트 옵션을 전달하기 위한 것이며, 이 경우 루프백 장치 를 사용하여 이미지를 마운트하고 싶다고 마운트 에 알려줍니다. 루프백 장치는 이미지 파일 탑재를 지원하기 위해 개발된 정말 좋은 개념입니다. 루프백 장치는 중개자 역할을 하는 소프트웨어 의사 장치이며 시스템이 파일을 CDROM 드라이브, 하드 드라이브 등과 같은 블록 장치인 것처럼 처리할 수 있습니다. 이렇게 함으로써 처리할 때 훨씬 더 유연하게 처리할 수 있습니다. 파일 시스템 기능 수행과 같은 파일 사용 (기본 블록 장치가 있다고 가정함) .

그것은 꽤 멋지지만 누가 더 이상 ISO를 사용하지 않습니까? 마운트 도 꽤 많은 일을 할 수 있습니다. 하드 드라이브의 이미지 파일 (dd 또는 이와 유사한 것) 이 있는 경우 이를 hdd.img라고 부르고 실제로 그 안에 파일 시스템을 마운트할 수도 있습니다. 루프백 장치를 다시 사용해야 한다고 생각한다면 올바른 방향으로 가고 있는 것입니다.

그러나 이것을 시도하면 ...

마운트 -o 루프 hdd.img /path/to/mount/dir

당신은 많은 운이 없을 것입니다.

대부분의 디스크에 파티션 테이블이 있기 때문입니다. CD 및 DVD에는 사용 사례에 적합하지 않기 때문에 일반적으로 파티션 테이블이 없습니다. 마운트 가 볼륨을 마운트하기 시작할 때 파티션 테이블이 아닌 파일 시스템을 만날 것으로 예상합니다.

그렇다고 해서 할 수 없는 것은 아닙니다. 파일 시스템을 마운트하려면 마운트 옵션에 전달된 정보를 사용하여 이미지 파일 내의 위치를 ​​마운트 에 알려야 합니다. 마운트 에 필요한 정보는 파티션의 오프셋, 즉 파티션 이 시작 되는 이미지 파일의 바이트 수입니다. 이를 알아내는 방법에는 여러 가지가 있지만 fdisk 가 알아서 해줍니다.

fdisk -l hdd.img

fdisk 가 시작 섹터가 100이라고 말합니다 (이것은 순전히 예일 뿐이며 특정 경우에 정확할 가능성은 매우 낮습니다) . 이제 우리가 해야 할 일은 해당 섹터 번호에 이미지를 가져온 HDD의 섹터 크기를 곱하는 것입니다. 이것은 (대부분) 이전 드라이브의 경우 512바이트이고 최신 드라이브의 경우 4096 (4K) 일 것입니다. 그러나 드라이브를 복제할 때 항상 이것을 확인해야 합니다 (좋은 측정을 위해 파일 이름에 넣을 수 있음) . 섹터 크기는 섹터당 바이트 수입니다.

단순화를 위해 섹터 크기를 512바이트로 지정하면 오프셋이 51,200이 됩니다. 이 오프셋은 파일 시스템이 시작되는 이미지의 바이트 수입니다. 이것을 알면 파일 시스템을 찾을 위치를 마운트 에 정확히 알릴 수 있습니다.

마운트 -o ro, 루프, 오프셋=51200 hdd.img /path/to/mount/dir

참고: 파일 시스템을 읽기 전용으로 마운트하는 방법을 보여주기 위해 이 예제에도 ro 옵션을 추가했습니다. 이는 보안 또는 법적 문제를 위해 데이터 무결성을 방해할 수 없는 포렌식 애플리케이션에서 특히 유용합니다. 종종 이미지 파일은 모든 쓰기 명령을 문자 그대로 차단하고 읽기 명령만 허용하는 쓰기 차단기라는 특수 어댑터를 사용하여 디스크에서 생성됩니다.

수학 등의 작업을 하려면 꽤 많은 작업이 필요하지만 더 쉬운 방법이 있어야 합니다. 그렇죠? 이는 사용 중인 Linux 배포판의 최신 버전에 따라 다르지만 지난 5년 정도는 문제가 없을 것입니다.

Lostup 도구는 루프백 장치를 설정하기 위한 것입니다. 마운트 가 모든 것을 처리할 때 루프백 장치를 수동으로 설정하려는 이유가 궁금할 것입니다. 그 성가신 파티션 테이블 때문에 마운트가 전체 디스크 이미지를 마운트하지 않으려는 것을 기억하십니까? 글쎄, 파티션 테이블이 파티션의 위치 (fdisk가 모든 정보를 얻는 위치) 에 대한 모든 수학을 포함하고 있다는 점을 감안할 때 시스템이 대신 참조하도록 하는 것이 훨씬 쉬울 것입니다. 전체 디스크 이미지에 대한 루프백 장치를 생성한 다음 새로 생성된 루프백 장치에서 파티션을 검색하도록 시스템에 지시할 수 있습니다.

Lostup -f hdd.img

참고: lostup 에 전달된 -f 플래그는 단순히 이름이 아직 사용되지 않은 루프백 장치를 생성하도록 지시하는 것입니다(예: /dev/loop0 이 이미 사용 중이 면 /dev /loop1 ). 또는 /dev/loop0 과 같은 장치 이름을 전달할 수 있습니다. 해당 장치가 존재하지 않으면 Lostup 이 생성하고, 존재하는 경우 새로 지정된 이미지 파일에 다시 할당합니다.

명령이 성공하면 /dev/ 아래에 새로 생성된 루프백 장치가 표시됩니다. 이제 사용할 수 있습니다.

부품 프로브 /dev/loopback0

또는

kpartx -u /dev/loopback0

partprobe 또는 kpartx 가 각각 설치된 경우. 그러나 parted 는 대부분의 최신 Linux 배포판에 설치해야 합니다.

이 작업이 완료되면 /dev/에 / dev/loop0p1 과 같은 내용이 표시되어야 합니다. 이것은 당신이 쉽게 마운트할 수 있는 파티션입니다.

마운트 /dev/loop0p1 /경로/to/mount/dir

아시겠지만 루프백이 필요하지 않습니다. 그것은 우리가 이미 그것을 처리했기 때문입니다.

하지만 Lostup 에 단일 플래그를 추가하여 이를 훨씬 더 쉽게 만들 수 있습니다.

Lostup -f -P hdd.img

우리가 사용한 -P 플래그는 실제로 커널이 파티션 테이블을 스캔하도록 lostup 에 지시하므로 원하는 파티션 마운트로 건너뛸 수 있습니다.

위의 방법을 사용하여 다양한 디스크 이미지를 마운트할 수 있습니다. 광학 미디어, USB 키, MBR 파티셔닝 또는 GPT에서 가져온 것인지는 중요하지 않습니다. Linux 커널은 매우 다양한 파티션 테이블과 파일 시스템을 처리할 수 있으므로 지원하지 않는 것을 찾기가 더 어려울 것입니다.

물론, 이것을 훨씬 더 쉽게 하는 도구가 있을 수 있지만 거기에 재미가 어디 있겠습니까? 저는 이러한 기술을 데이터 복구 및 일반 시스템 관리에 사용해 왔으며 모든 유형의 지식과 마찬가지로 필요할 때 매우 유용합니다.

이러한 것들을 보완할 수 있는 트릭이 있으면 아래 의견에 알려주십시오.

또한 읽기: