이해하려고 노력하면서이것은 또 다른 질문입니다, 언급되는 것을 발견했습니다 /dev/sda0
.
나는 Linux에 대한 경험이 있으며 이 체계에 익숙합니다. 여기서 sda
, sdb
, ...는 장치이고 sda1
, sda2
, ... , sdb1
, sdb2
, ...는 파티션입니다(각 파티션은 자체 장치 내에 있음). 이 시나리오에서는 sda0
, sdb0
...가 표시되지 않습니다. 나는 sda0
그것을 본 기억이 없습니다 .
여전히 sda0
나타납니다U&L SE에서,슈퍼유저 정보그리고 다른 곳에서도. 나타나는 곳은 거의 항상 첫 번째 파티션이며, sda1
익숙한 구성표에 나타날 것으로 예상되는 파티션입니다.
반면 데비안 10에서는 for , for 등 의 major,minor
숫자를 볼 수 있습니다. 그래서 누군가 나에게 그것이 무엇인지 묻는다면 나는 어느 것이 할당되었는지 말할 것입니다 . 이 추론은 전체 장치 와 동일합니다 . 나는 이 숫자가 Linux에만 국한된 것이며 Linux가 아닌 Unix(유사한) 운영 체제에서는 다를 수 있으므로 거기에는 추론이 적용되지 않을 수 있다고 생각합니다.8,1
sda1
8,2
sda2
sda0
8,0
sda
sda0
sda
인터넷에서 나는 sda0
완전한 장치처럼 보이는 것을 거의 발견하지 못했습니다. 그러나 이러한 예는 매우 모호하며 철자 오류나 누군가의 실수로 인한 것일 수 있습니다.
어쨌든 질문은 다음과 같습니다./dev/sda0
표준적인 것 입니까 ?그렇다면 무엇입니까? (완전한 장치가 될 수 있습니까?) 어떤 상황에서 이것이 표준적인 것입니까? (예: 특정 운영 체제, 일부 오래된 커널, 특정 드라이버, 가상 머신 내부, 일부 오래된(?) udev 구성 등)
나는 대답이 나에게 충분한 통찰력을 제공하여 다음에 그것을 볼 때 /dev/sda0
"아, 이 사람은..."을 사용하고 있을 수도 있다고 스스로에게 말할 수 있기를 바랍니다. 이전 사용자 정의 구성'입니다.
/dev/hda0
참고 사항: 에 대한 언급 과 처음부터 끝까지 열거할 계획 도 찾았습니다 hda1
. 그것이 내가 관찰한 것과 밀접하게 관련(병렬)된 것인지 /dev/sda*
아니면 단지 우연의 일치인지 전혀 알 수 없습니다 .
답변1
/dev/sda0
나는 그것이 다른 Unix 시스템에서도 표준 장치 이름이었다는 것을 알지 못합니다 . 내가 아는 바로는 에 대한 참조는 sda0
사용자 정의 설정을 나타내는 것이 아니라 버그일 수 있습니다.
출력에 장치 이름이 지정되더라도 사용자는 여전히 숫자를 혼동할 수 있습니다. 예를 들어,이 포럼 게시물인용된 출력에는 명시적으로 나열되어 있지만 sda1
제목 sda3
에는 언급되어 있습니다 sda0
. 비슷하게,일반적으로 표시되는 (hda0,5), (hda0,sda5) 등 대신 grub에서 내 드라이브가 "(hda0,msdos5)" 등으로 불리는 이유는 무엇입니까?Grub이 등을 hda0
사용하더라도 (내가 아는 한 표준 장치 이름이 아니었습니다)을 나타냅니다 .hd0
리눅스 커널 릴리스장치 할당 목록;파티션 처리 방법을 설명합니다.
파티션의 경우 전체 디스크에 장치 번호를 추가합니다.
값 장비 용법 0 /dev/hd?
접시 전체 1 /dev/hd?1
첫 번째 파티션 2 /dev/hd?2
두 번째 부문 … … … 63 /dev/hd?63
부문 63
SCSI 디스크( /dev/sd?
)는 동일한 방식으로 처리됩니다.
파티션은 파티션 제한이 15라는 점을 제외하면 IDE 디스크와 동일한 방식으로 처리됩니다(주 번호 3 참조).
보시다시피, 0번째 파티션은 제공되지 않습니다. "0번째" 장치는 숫자 접미사가 없는 전체 디스크입니다.
(일명 "SCSI 디스크"는 sd?
SCSI가 아닌 많은 장치에 사용됩니다.CentOS가 ATA 버스를 scsi 버스로 변환하는 이유는 무엇입니까?역사를 좀 배워보세요. )
답변2
나는 udev가 없는 시스템에서 이것을 보았는데, mknod는 당신을 추측하지 않습니다. (나는 잘못된 메이저와 마이너를 입력하는 것이 makenod에 의해 어떻게든 고쳐진 시스템에서 한동안 작업했습니다.) 그리고 2.0 커널을 사용하는 것은 /dev/hda0입니다; 전체 디스크 장치.
내가 사용하고 있던 시스템은 원하더라도 소스에서 구축할 수 없는 다양하고 이상한 플로피 기반 배포판이었습니다. 저는 주로 muLinux를 사용하고 있었지만 이것은 그렇지 않았고 찾기가 어려웠습니다. 다시. 저는 한동안 커뮤니티에 참여해왔습니다. 이 모든 것의 특징은 손으로 직접 만든다는 것입니다. 표준화도, 업그레이드도, 패키지 관리자도, 아무것도 없습니다. /dev/hda0 장치는 그것이 마땅한 방식이라고 믿었던 그것을 만든 사람에게서 나온 것이 틀림없습니다.
udev 시대에 이런 이상한 명명 규칙이 나타난다면 놀랄 것입니다.
답변3
문제가 Linux에만 해당되는지는 확실하지 않지만 그렇지 않은 경우 FreeBSD 시스템은 이를 /dev/da0
시스템의 첫 번째 디스크 드라이브로 처리합니다. 적어도 SCSI(및 USB) 드라이브의 경우, 그리고 아마도 장치 드라이버에서 표시하는 대로 기타 드라이브 유형 장치를 SCSI와 유사한 장치로 취급합니다. ATA/SATA(및 기존 ATAPI) 드라이브는 이며 /dev/adaN
, 여기서 N
>= 0입니다.
이는 /dev/da0
파티션된 장치가 아닌 전체 드라이브 장치입니다. 셀 0의 하위 구분은 /dev/da0sX
MBR 슬라이스(X>=1)에 사용되거나 /dev/da0pX
GPT 파티션에 (X>=1) 사용 됩니다 .
DA는 장치의 모든 블록에 동일하게 주소를 지정할 수 있으므로 장치에 대한 직접 액세스 또는 임의 액세스를 위한 니모닉입니다. 대신 FreeBSD는 순차 액세스 장치(예: 테이프 드라이브 ) sa
형태의 장치 드라이버 노드를 사용합니다 /dev/saN
.
답변4
짧은 대답은아니요. 커널과 사용자 공간 간의 인터페이스 약속에는 장치가 포함되지 않습니다.숫자. 임의의 값이 될 수 있으며 최신 커널로 재부팅할 때에도 달라질 수 있습니다. 그러므로 절대로 그들에게 의존해서는 안 됩니다.