파일 시스템을 "/dev/..../"에 두는 대신 특정 위치에 마운트하는 이유는 무엇입니까?

파일 시스템을 "/dev/..../"에 두는 대신 특정 위치에 마운트하는 이유는 무엇입니까?

Linux 컴퓨터에 실제 파일 시스템을 마운트하는 경우 파일 시스템을 사용자 정의 위치에 마운트해야 하는 이유는 무엇입니까? 왜 파일 시스템을 해당 장치 경로에 두지 않는 걸까요? "/개발/...."

답변1

왜 파일 시스템을 해당 장치 경로에 두지 않는 걸까요?

나는 이것이 바람직하지 않다고 생각한다. 결론은 모든 소프트웨어가 연결하는 장치에 대해 어떤 방식으로든 알아야 한다는 것입니다.

MS Windows가 드라이브 문자를 사용하여 수행하는 방식을 살펴보면 레이아웃은 다음으로 제한됩니다.환경 변수예를 들어 %HOMEPATH%. 다른 하드 드라이브에 많은 음악이 있는 경우 소프트웨어에 이것이 E:특정 사용자의 음악 폴더임을 알릴 방법이 없습니다 .

이 문제는 *nix 시스템에서는 존재하지 않습니다. 음악을 다른 하드 드라이브에 저장하려는 경우 항목을 추가하여 /etc/fstab에 설치할 수 /home/me/Music있으며 소프트웨어는 변경 사항을 알 필요가 없습니다.


그리고 아래 이름은 /dev실제로 안정적이지 않습니다. 예를 들어 부팅하기 전에 USB 하드 드라이브를 연결하면 /dev/sda내부 드라이브 대신 할당될 수 있습니다. 이렇게 하면 어떤 이름이 할당되는지 보장할 수 없으므로 구성하기가 매우 어렵습니다.


실제로 저장된 위치에 너무 집중하기보다는 유사한 유형의 항목을 그룹화하여 파일 시스템을 배치하는 것이 더 합리적입니다.

이것파일 시스템 계층 표준요구 사항에 따라 부분적으로 항목을 그룹화합니다. 이는 전체 파일을 /usr읽기 전용 네트워크 파일 시스템에 넣는 것과 같은 몇 가지 매우 유용한 트릭을 허용합니다 (네트워크 파일 시스템) 각 시스템의 구성을 쓰기 가능한 상태로 유지합니다 /etc.

이를 통해 시스템 관리자는 무엇을 어디에 저장해야 하는지 결정할 수 있지만 사용자와 소프트웨어는 일반적으로 이를 알 필요가 없으며 추적하고 싶지도 않습니다.


Windows(적어도 Windows Server)에서도 동일한 기술을 사용할 수 있으며 드라이브를 파일 시스템의 다른 위치에 마운트할 수 있다는 점은 주목할 가치가 있습니다.

답변2

이는 UNIX 시스템 레이아웃에 대한 규칙을 설명하는 참조인 FHS(파일 시스템 계층 구조 표준)에 설명된 규칙입니다.

바라보다https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard그리고https://refspecs.linuxfoundation.org/fhs.shtml

유닉스에서는 모든 것이 파일입니다. 즉, /dev에서 특수 블록 플래그가 있는 장치 파일을 찾을 수 있습니다.

UNIX에서는 파일 시스템 계층의 어느 위치에나 장치를 마운트할 수 있습니다.

관례적으로 다양한 장치를 /mnt에 마운트하게 되며, 임시 장치의 경우 /media로 변경되었습니다.

/run/media/$USER에서 udisks2 마운트 지점을 찾을 수 있으며 udisks의 경우 /media입니다. Kde와 Gnome은 이 규칙을 사용합니다.

마운트 지점에 장치를 연결하면 커널에 양방향 관계가 등록됩니다. 여기서 마운트 지점 아래의 모든 작업은 원래 장치에 반영되고 그 반대의 경우도 마찬가지입니다.

실제로 Windows에서는 이 작업을 수행하지만 이를 숨깁니다. \Device\HarddiskVolumeX가 있지만 A:, C:, D:\ 또는 X:\로만 마운트를 지원합니다.

mount 또는 df 명령을 사용하여 마운트 지점 목록을 얻을 수 있습니다.

참고로 이 질문 을 살펴볼 수 있습니다./media, /mnt 및 /run/mount의 차이점은 무엇입니까?

답변3

Linux는 모든 장치를 /dev또는 /sys. /dev장비를 배치하는 위치도 마찬가지입니다. 파일 시스템의 일반 파일처럼 보이지만 /그렇지 않습니다. 커널 드라이버는 장치의 파일 작업을 버스를 통해 전송되는 물리적 명령으로 변환합니다.

예를 들어 다음 명령을 사용하여 디스크의 원시 내용을 볼 수 있습니다.

dd if=/dev/sda1 count=64

그러나 어떤 방식으로든 해석되지 않는 32kb의 원시 데이터만 표시됩니다(사실 여기에는 FAT 파일 시스템과 같은 부팅 지침에 포함되는 파일 시스템 메타데이터가 포함되어 있습니다). 이러한 파일(장치)을 마운트하면 해당 장치를 마운트 지점에 배치되는 파일 시스템 구조로 생각할 수 있습니다. 따라서 설치는 원시 데이터의 의미를 디렉터리와 파일을 통해 액세스할 수 있는 조직화된 컬렉션으로 변경합니다.

관련 정보