설치 파일 및 설치 디렉터리 반복

설치 파일 및 설치 디렉터리 반복

내가 읽고있다설치 개념을 이해하기 어려움그리고 다음 설명을 찾았습니다.

를 사용하면 mount -t iso9660 /dev/cdrom /media/cdrom시스템에 "이 긴 바이트 문자열을 에서 가져오고 /dev/cdrom이를 형식의 디렉터리 트리로 해석 iso9660하고 해당 위치에서 액세스할 수 있도록 허용합니다 /media/cdrom" 라고 말하는 것입니다.

및 기타 유사한 답변. 이는 의미가 있으며 이 논리를 통해 설치가 본질적으로커플커널이 기존 파일 시스템 계층에 배치할 수 있는 방식으로 장치의 내용을 해석하는 장치의 파일 시스템입니다.

이것이 사실이라면 링 마운트가 필요한 이유는 무엇입니까?

a의 목적 mount -o loop은 기술적으로 mount작업(파일을 읽고 파일 시스템의 컨텍스트에서 해당 내용을 해석하는 작업)과 동일하므로 특수 장치를 만들지 않고 마운트 작업을 일반화할 수 없는 이유는 무엇입니까?

편집하다: 제가 아는 한, 루프 장치는 파일용 블록 장치 API를 제공합니다. 그러나 내 질문은 더 일반적입니다. 일반 파일( iso또는 유사한 디스크 이미지 형식)에서 읽는 것이 특수 파일에서 읽는 것과 어떻게 다른가요?만약에동일한 데이터가 포함되어 있나요?

작동 방식에 대한 내 정신 모델은 mount다음과 같습니다. 파일에 의해 노출된 임의의 바이트 세트가 /dev/device파일 시스템 드라이버에 의해 해석되는 경우( ext4예를 들어) mount명령은 이를 루트 계층 구조와 연결하여 최종 사용자.

그러나 이 임의의 바이트 집합은 어디에나 나타날 수 있습니다. 파일 시스템 드라이버에 의해 해석되면 유효한 파일 시스템으로 인식되어야 합니다. 파일 시스템 드라이버 읽기를 제한하는 것오직일반 파일 대신 특수 파일에서?

답변1

블록 장치는 일반 파일이 아닙니다. 이를 통해 마운트와 같은 프로그램이 올바르게 작동하는 데 필요한 특수 기능을 수행할 수 있습니다.

루프 장치는 블록 파일 호출을 특정 파일에 대한 일반 파일 시스템 호출로 변환하는 변환 장치입니다. 이를 사용하여 losetup파일로 지원되는 완전한 루프백 장치( /dev/loopX일반 블록 장치로 표시되고 처리됨)를 생성하거나 -o loop마운트에 전달하여 블록 장치를 투명하게 생성하도록 지시할 수도 있습니다. 또한 이를 사용 losetup하여 루프백을 검사 할 수도 있습니다. 장치 장치와 해당 콘텐츠가 지원됩니다.

최신 설치에서는 일반 파일을 감지하고 자동으로 루프백 장치를 생성하려고 시도합니다. 그러니 넌 하지마필요옵션을 전달하세요 loop.

또한 기술적으로바인드 마운트디렉터리가 새 위치에 다시 마운트되는 곳입니다(따라서 두 번 마운트됩니다). 이는 설치할 플래그를 통해 수행할 수 있습니다 --bind. 무슨 뜻인지 알지만 단어가 혼란스러울 수 있어요제본설치 측면에서 특별한 의미가 있습니다.

편집하다:귀하의 정신 모델은 실제로 정확하지만 루프 장치를 파일 시스템이나 원시 블록 읽기/쓰기에 대해 아무것도 알 필요 없이 마치 블록 장치인 것처럼 마운트가 모든 파일과 통신할 수 있도록 하는 추상화 계층으로 생각할 수 있습니다. - 커널이 이 모든 것을 처리합니다. 마운트에서 알아야 할 것은 커널에 루프 장치를 설정한 다음 이를 블록 장치로 처리하도록 요청하는 방법입니다. 이렇게 하면 저수준 코드가 더 단순해지고 블록 장치와 통신할 수 있는 모든 항목이 없이 파일과 통신할 수 있습니다. 가감.

답변2

모호하게 설명하면 루프 설치는 설치를 "루프 장치"로 리디렉션합니다.

"사이클 장치"는 물리적 파티션(일반적으로 순차 장치 블록)을 효과적으로 나타내지만 이미지가 상주하는 파일 시스템에 의해 해석되어야 합니다.잠재적으로조각난 상태.

물리적 파티션과 달리 각 블록 읽기는 기본 파일 시스템을 참조해야 합니다. 효율성은 떨어지지만 더 편리하며 다양한 파일 시스템 유형의 중첩된 파일 시스템을 허용합니다.

A mount -o loop아니요 기술적으로mountswapon스왑 파일 에 사용된 것과 동일한 작업 swapon스왑 파티션에 사용된 것과 동일한 작업입니다.

실제 파티션에서는 읽기 및 쓰기가 물리적 파티션/실린더 경계로 제한됩니다. 파티션의 파일 시스템은 조각화를 혼동할 수 있습니다.

루프 이미지에서는 조각이 숨겨져 있습니다.확실히순차적으로 설치하세요. 기본 파일 시스템은 파일 조각화를 처리하고 순차적인 "파티션"을 렌더링합니다.

이는 디스크 이미지(예: )를 암호화하거나 압축할 때 수행됩니다 squashfs. 이 경우 이미지 블록은 기본 파일 시스템을 통해 액세스한 다음 적용 가능한 압축(또는 암호화) API를 통해 처리되어 명백하게 연속된 장치 블록 세트를 제공합니다.

즉, "블록 디바이스"는 "디바이스 블록"의 순차적 목록이어야 합니다. 이것특수 장치에 의해 생성됨루프 설치잠재적으로 서로 다른 크기의 비순차적 장치 블록이 미리 결정된 크기의 순차적 장치 블록이라고 가정합니다.

관련 정보