왜 ls /dev/sda1만 하면 안 되나요?

왜 ls /dev/sda1만 하면 안 되나요?

USB 스틱을 통해 외부 microSD 카드를 컴퓨터에 연결했습니다. 볼 수 있기 때문에 자동으로 설치되었다고 생각합니다.

$ ls /media/me
7538-3DFD

/dev/sda1보기 때문에 설치되었다고 생각합니다 .

$ sudo fdisk -l
Disk /dev/loop0: 4 KiB, 4096 bytes, 8 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

...    

Disk /dev/nvme0n1: 476.94 GiB, 512110190592 bytes, 1000215216 sectors
Disk model: SAMSUNG MZVKW512HMJP-00000              
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 00330861-D059-4F2E-8AAD-204F67A60293

Device           Start        End   Sectors   Size Type
/dev/nvme0n1p1    2048    1050623   1048576   512M EFI System
/dev/nvme0n1p2 1050624 1000214527 999163904 476.4G Linux filesystem

...

Disk /dev/sda: 29.73 GiB, 31927042048 bytes, 62357504 sectors
Disk model:  Storage Device 
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00000000

Device     Boot Start      End  Sectors  Size Id Type
/dev/sda1        8192 62357503 62349312 29.7G  c W95 FAT32 (LBA)

(... /dev/loop__의 많은 항목을 이동했습니다)

ls를 수행 /media/me/7538-3DFD하고 해당 디렉토리의 파일을 볼 수는 있지만 /dev/sda또는 에서 직접 ls를 수행할 수는 없습니다 /dev/sda1. 내가 보는 것은 /dev/sda또는 입니다 /dev/sda1. 왜 그런 겁니까? 내 MicroSD 카드가 다른 곳에 설치되어 있나요? 그렇다면 왜 볼 수 없나요 fdisk -l?

답변1

/dev/sda/dev/sda1"디스크 블록(클러스터)"만 읽고 쓰는 "블록 장치"입니다 . 블록 장치가 "마운트"되면( man mount) 장치는 "파일 시스템"에 의해 해석되고 해당 장치에 있는 파일 시스템에 연결됩니다 /media/me/7538-3DFD.

답변2

/dev/sda1파티션인 블록 장치의 조각에 액세스할 수 있는 특수 파일입니다. 귀하의 경우 해당 장치는 microSD 카드입니다. /dev/sda전체 카드에 대한 액세스를 제공합니다. 충분한 권한이 있으면 파티션이나 전체 카드를 처음부터 끝까지 단일 데이터 스트림(단일 "BLOB")으로 읽을 수 있습니다. 충분한 권한이 있으면 데이터를 파티션이나 전체 카드로 스트리밍할 수 있습니다.

파티션 /dev/sda1에는 파일 시스템이 포함되어 있으며 "blob"에는 내부 구조가 있습니다. tar, rar 또는 zip 아카이브와 다소 유사합니다. 파일과 디렉토리 트리도 메타데이터와 함께 이러한 아카이브에 기록될 수 있습니다.

일반적으로 tar 또는 zip을 추출합니다. 그러나 이러한 아카이브를 보고, 개별 파일을 얻고, 파일을 추가하고, 수정할 수 있는 프로그램이 있습니다.

의 파일 시스템으로 비슷한 작업을 수행할 수 있지만 /dev/sda1사용하는 프로그램은 (보통) 적절한 파일 시스템 드라이버가 있는 커널 자체입니다. 마운트 지점에 파일 시스템을 마운트하면( 귀하 /media/me/7538-3DFD의 경우에는/dev/sda1아니요마운트 지점), 파일 시스템의 "아카이브"에 쉽게 액세스할 수 있습니다. 마운트 지점에서 파일을 읽거나 쓸 때 커널은 실제로 "blob"에 대한 읽기 및/또는 쓰기를 예약하고 /dev/sda1이를 올바른 방식으로 수행하므로 파일 시스템은 여전히 ​​유효한 파일 시스템입니다. 유형.

그러나 tar 파일과 마찬가지로 tar 파일은 일부 프로그램에서 내용을 표시하더라도 여전히 tar 파일이며 /dev/sda1파일 시스템이 마운트되어 사용 중이더라도 여전히 파티션과 관련된 특수 파일입니다. tar 파일이나 /dev/sda1디렉토리를 기대하지 마십시오. 마운트된 파일 시스템인 경우 마운트 지점은 다음과 같습니다.이것파일 시스템 내의 파일에 액세스하려면 이 디렉터리를 사용해야 합니다.

답변3

  • 의 항목은 /dev장치입니다. 귀하는 귀하의 시스템과 연결된 각 장치에 대해 (적어도) 하나를 받게 됩니다. 예를 /dev/sda들어 ,/dev/sda1
  • 아래 디렉터리 /media는 일반적으로 이동식 저장소 연결 시 자동으로 마운트되는 파일 시스템입니다. 예를 들어, /media/me/7538-3DFD.

관련 정보