둘 다 읽어보세요Linux에서 장치를 마운트한다는 것은 무엇을 의미합니까?그리고운영 체제의 개념으로 "마운트"를 이해하십시오., 질문이 있는데 다음과 같습니다.
액세스 가능한 모든 저장소에는 이 단일 디렉터리 트리에 연결된 위치가 있어야 합니다. 이는 가장 일반적인 파일 경로 구문에서 저장소 구성 요소(드라이브)당 하나의 디렉터리 트리가 있는 Windows와 다릅니다. 마운트는 저장 장치를 디렉터리 트리의 특정 위치에 연결하는 작업입니다.
그러나 /dev/cdrom 아래에는 이미 CDROM 드라이브와 같은 액세스 가능한 위치가 있으며 이는 분명히 디렉토리 계층 구조에 있습니다. 그렇다면 /media/cdrom 아래에 별도의 "마운트 지점"을 생성해야 하는 이유는 무엇입니까? /dev/cdrom에서 직접 액세스할 수 없는 이유는 무엇입니까? 디바이스 노드 파일은 일반 파일과 같다고 들었습니다. 일반 파일처럼 읽고 쓰여집니다. 이는 /dev/cdrom에서 액세스하면 cdrom의 파일 시스템을 사용할 수 없다는 의미입니다. 파일 시스템 계층 구조(CDROM 내)를 "마운트"하면 "살아납니다"?
답변1
/dev/cdrom을 읽거나 쓸 수 있습니다(예: dd
또는 사용 cat
). 하지만 이렇게 하면 장치의 원시 바이트를 읽거나 쓰는 것뿐입니다. 이는 다양한 상황(예: 파티션 복제)에 유용하지만 일반적으로 장치에 저장된 디렉터리와 파일을 보고 싶습니다.
장치를 마운트하면 기본적으로 소프트웨어 계층(파일 시스템 드라이버)을 사용하여 이러한 원시 바이트를 실제 파일 시스템으로 변환하도록 커널에 지시하는 것입니다. 따라서 장치 연결을 설치하십시오파일 시스템이 장치의 디렉터리 계층 구조입니다.
답변2
저는 이것을 이렇게 생각합니다: mount
특정 파일의 내용을 디렉토리 트리로 해석하도록 시스템에 지시하는 도구입니다.
- 파일 시스템에는 디렉토리와 파일이 있으며 각 파일은 일부 바이트 문자열의 레이블입니다.
/dev/cdrom
CD에 저장된 바이트 문자열을 나타내는 파일입니다.- 이 긴 문자열을 직접 읽을 수 있지만 특별한 목적(예: 완전한 디스크 이미지 생성)을 제외하고는 그다지 실용적이지 않습니다.
- 이 긴 문자열에는 추가적인 내부 구조가 있습니다. 여기에는 어떤 디렉터리와 파일이 저장되어 있는지, 이 매우 긴 문자열의 위치에 대한 정보가 포함된 파일 시스템이 포함되어 있습니다.
- 를 사용하면
mount -t iso9660 /dev/cdrom /media/cdrom
시스템에 "이 긴 바이트 문자열을 에서 가져와/dev/cdrom
이를 iso9660 형식의 디렉터리 트리로 해석하고 해당 위치에서 액세스할 수 있도록 허용합니다/media/cdrom
"라고 말하는 것입니다. - 실제로 이는 일반 파일에도 적용됩니다. 디스크 이미지가 포함된 일반 파일을 만든 다음 이를 사용하여
mount
액세스할 수 있습니다. 이 시도:
dd if=/dev/zero of=fs-image bs=1M 개수=50 mke2fs fs 이미지 sudo install fs-image /some/mount/point
(처음 두 명령은 처음 이미지 파일을 준비할 때만 필요합니다.)
답변3
/dev/cdrom
추천장비문서. 이것은아니요광학 드라이브에 삽입된 디스크의 내용을 원할 수도 있지만 하드웨어 비트에 대한 참조는(그리고 소프트웨어 드라이버도 가능)그러니 전화해서 보시면 됩니다. mount
/dev/cdrom
트리의 특정 경로로 이동 하면 이를 추가합니다.콘텐츠당신을 위한파일 시스템.
문제는 – 나는 이것을 수행하는 다른 방법을 정말로 생각할 수 없다는 것입니다. Windows에서도 - 비록 그렇습니다.덜 분명하다- 파일 시스템 추상화가 여전히 존재합니다 \\?\volumename\
. 그것이 어떻게 생겼는지 기억하는 데 1분 정도 걸렸고, 그러다가 이것을 발견했습니다.구글해봐:
...볼륨 이름은 단순히 실제 볼륨 장치(일반적으로 .)를 가리키는 기호 링크입니다
\Device\HarddiskVolume23
. MS-DOS 장치의 또 다른 예는 드라이브 문자입니다. 볼륨에 C: 드라이브 문자가 있는 경우 해당 형식의 실제 볼륨을\\?\C
가리키는:이라는 심볼릭 링크가 있습니다 .\Device\HarddiskVolumeXX
따라서 그다지 다르지 않을 수도 있습니다. 비록 그렇게 복잡하다고 생각하지는 않지만, 단지더 분명한, 제 생각에는. 그것들은 동일한 시스템은 아니지만 근본적으로 다르지도 않습니다.
/dev/device
아마도 와 사이의 가장 중요한 차이점은 /path/to/its/mount
후자 경로에서 파일 시스템(조직화된 방식으로 데이터를 처리하도록 설계된 일부 소프트웨어)이 전자의 내용을 해석한다는 것입니다. 디스크를 읽기만 할 수는 없습니다. 누군가가 디스크를 읽어주어야 합니다. 파일 시스템은 장치의 내용을 해석합니다.
답변4
위에서 언급한 항목 외에도 드라이버나 기타 프로그램이 장치에서 데이터를 캐시할 수 있습니다. 읽기-쓰기 장치(예: 하드 드라이브 또는 썸 드라이브)에서는 장치에 기록된 데이터가 아직 기록되지 않았을 수 있습니다. 저널링 파일 시스템은 장치가 더 이상 표시되지 않기 전에 저널을 플러시해야 할 수도 있습니다. 그런 다음 기본 파일 시스템을 더 이상 사용할 수 없는 시기를 알아야 하는 cryptfs와 같은 다른 파일 시스템을 오버레이하는 파일 시스템이 있습니다.
물론 읽기 전용 장치의 경우 이는 그다지 의미가 없지만 여전히 적용됩니다.