Linux 블록 장치 이름 지정

Linux 블록 장치 이름 지정

Linux 하드 디스크/저장 장치 및 블록 파일의 이름이 어떻게 지정되는지에 대해 약간 혼란스럽습니다.

내 질문은 다음과 같습니다

  • IDE 장치와 파티션의 이름은 어떻게 지정됩니까?

  • EIDE 장치와 파티션의 이름은 어떻게 지정됩니까?

  • PATA 장치와 파티션의 이름은 어떻게 지정됩니까?

  • SATA 장치와 파티션의 이름은 어떻게 지정됩니까?

  • SCSI 장치와 파티션의 이름은 어떻게 지정됩니까?

마지막으로 이 주제에 관한 기사를 읽다가 "마스터 드라이브"와 "슬레이브 드라이브"에 대한 언급을 보았습니다. 그것들은 무엇이며, 어떤 용도로 사용되며, 이름은 어떻게 지정됩니까?

답변1

소개하다

먼저 /dev폴더가 모든 장치로 채워집니다.

또한 (E)IDE와 PATA라는 용어는 일반적으로 동일한 것을 의미한다는 점에 주목할 필요가 있습니다.인터페이스 표준 PATA. 이러한 맥락에서 IDE와 PATA는 서로 바꿔서 사용할 수 있는 용어입니다.

Linux 커널 버전 2.6이 출시되면서 Linux의 블록 장치에 대한 명명 규칙이 크게 변경되었습니다. 커널은 다음을 통해 모든 ATA 장치를 지원합니다.libATA, 2003년부터 SATA 장치 지원을 시작했으며 현재 PATA 지원으로 확장되었습니다.

따라서 드라이브 명명 규칙은 배포판 및 커널 버전에 따라 다를 수 있습니다.

한동안 "현대" 배포판의 PATA 장치는 SATA 드라이브의 이름을 따서 명명되었습니다. 둘 다 현재 libATA를 사용하기 때문입니다.


배포판의 경우 에서 찾을 수 있습니다 /lib/udev/rules.d/60-persistent-storage.rules.

Debian 9를 사용하는 시스템에서도 마찬가지입니다. 예를 들어:

$ cat /lib/udev/rules.d/60-persistent-storage.rules | grep "ATA"
# ATA
KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}!="?*", SUBSYSTEMS=="scsi", 
ATTRS{vendor}=="ATA", IMPORT{program}="ata_id --export $devnode"

이 파일을 탐색하면 배포판에서 컴퓨터에 연결할 수 있는 각 블록 장치의 이름을 지정하는 방법을 알 수 있습니다.

블록 장치 명명 규칙

IDE 드라이브

  • IDE 드라이브(이전 PATA 드라이버 사용)에는 "hd"라는 접두사가 붙습니다.
    • IDE 컨트롤러(마스터)의 첫 번째 장치는hda
    • 두 번째 장치(슬레이브)는hdb

IDE 컨트롤러/케이블에는 두 개의 드라이브만 있을 수 있으므로 첫 번째는 마스터 드라이브이고 두 번째는 슬레이브 드라이브입니다. 대부분의 마더보드에는 두 개의 IDE 컨트롤러가 함께 제공되므로 두 번째 컨트롤러는 두 번째 컨트롤러와 동일한 목적, 즉 hdc두 번째 컨트롤러의 마스터 및 hdd슬레이브 드라이브 로 사용됩니다.

Linux 커널 2.6.19부터 IDE 드라이브에 대한 지원이 SATA/SCSI 드라이브와 병합되었으므로 이름이 이와 같이 지정됩니다.

SATA 및 SCSI 드라이브

이 명명 규칙은 SCSI 드라이브로 시작하여 libATA가 있는 SATA 드라이브로 확장됩니다. SCSI, SATA, PATA 및 OP의 질문 범위를 벗어나는 기타 드라이브(USB 대용량 저장 장치, FireWire 등)에서 작동합니다. 어쨌든 일반적으로 요즘 직렬 버스를 사용하는 모든 장치는 동일한 이름을 사용합니다(NVMe 드라이브는 제외하지만 이는 PCI 장치의 이야기입니다).

  • SATA/SCSI 드라이브는 "sd"로 시작합니다.
    • 첫 번째는sda
    • 두 번째는sdb
    • 등.

파티션 명명 규칙

파티션의 경우, 각 파티션은 각 디스크 끝에 숫자로 표시되며 앞에서 언급한 대로 이름이 지정됩니다.1부터 시작. OP에 언급되지 않은 일부 다른 장치를 제외하고는 항상 그렇습니다.

sda1예를 들어, SATA 드라이브의 파티션의 경우 다음과 같이 나열됩니다 sda2.기본 파티션의 경우. 논리 파티션은 인덱스 "5"에서 시작하고 확장 파티션은 인덱스 "4"에서 시작합니다. 이는 분명히 GPT가 아닌 MBR을 사용하는 드라이브에만 적용됩니다.

lsblksdd아래는 3개의 기본 파티션( sdd1, sdd2, sdd3), 1개의 확장 파티션( sdd4) 및 2개의 논리 파티션( sdd5, sdd6) 으로 명명된 예제 디스크의 출력입니다 .

$ lsblk
sdd      8:48   1   1.9G  0 disk 
├─sdd1   8:49   1   153M  0 part 
├─sdd2   8:50   1   229M  0 part 
├─sdd3   8:51   1   138M  0 part 
├─sdd4   8:52   1     1K  0 part 
├─sdd5   8:53   1   289M  0 part 
└─sdd6   8:54   1   1.1G  0 part 

마스터-슬레이브 장치

단일 IDE 인터페이스는 두 개의 장치를 지원할 수 있습니다. 일반적으로 마더보드에는 이중 IDE 커넥터(기본 및 보조)가 장착되어 있으며 시스템에 최대 4개의 IDE 장치를 수용할 수 있습니다.

동일한 병렬 케이블에서 두 개의 드라이브를 실행할 수 있도록 IDE는 마스터 및 슬레이브 드라이브라는 특수 구성을 사용합니다. 이 구성을 사용하면 한 드라이브의 컨트롤러가 컴퓨터와 데이터를 주고받을 수 있을 때 다른 드라이브에 이를 알릴 수 있습니다. 슬레이브 드라이버가 마스터에게 마더보드와 통신 중인지 묻기 때문에 이름이 유래되었습니다. 마스터가 통신 중이면 슬레이브에게 작업이 완료될 때까지 기다리라고 지시하고, 그렇지 않으면 슬레이브에게 계속하라고 지시합니다.

"케이블 선택" 기능 덕분에 마스터/슬레이브 역할을 선택할 수 있습니다. 이 기능을 지원하는 각 드라이브에서 점퍼를 사용하여 "마스터", "슬레이브" 또는 "자동"을 선택할 수 있습니다(마지막 옵션은 마스터가 위치한다는 의미) IDE에서는 케이블의 한쪽 끝, 슬레이브 케이블의 다른 쪽 끝).

답변2

하나 찾았어오래된 참조SATA를 제외한 모든 것을 의미합니다.

SATA 및 SCSI 드라이브/dev/sd엑스어디서 시작하나요물리적 드라이브를 나타냅니다.
파티션은/dev/sdX 어디장치 내의 파티션 번호를 나타냅니다(1부터 시작).

Linux 커널 2.6.19 이전에는 EIDE 장치 이름이 IDE와 PATA와 동일했습니다(감사합니다.역설, 변경 사항을 기록하려면! )
/dev/hda는 "마스터" 컨트롤러의 "마스터" 드라이브입니다. /dev/hdb
는 "마스터" 컨트롤러의 "슬레이브" 드라이브입니다. /dev/hdc는
"보조" 컨트롤러의 "기본" 드라이브입니다. /dev/hdd
는 "보조" 컨트롤러의 "슬레이브" 드라이브입니다.
각 드라이브 장치 뒤에는 1부터 시작하여 파티션을 나타내는 숫자가 표시됩니다.

Linux 커널 2.6.19부터 EIDE, IDE 및 PATA는 SCSI 및 SATA와 동일한 명명 규칙을 사용합니다.

관련 정보