다음에 등록되는 SCSI 대용량 저장 장치 이름을 예측할 수 있습니까?

다음에 등록되는 SCSI 대용량 저장 장치 이름을 예측할 수 있습니까?

sdX다음 대용량 저장 장치( sda, sdb, sdc, ...)가 SCSI 드라이버로부터 수신할 장치 이름( )을 예측해야 합니다 .

한 장치를 제거하고 다른 장치를 연결하면 새로 연결된 장치가 제거된 장치의 이름을 사용하지 않고 대신 알파벳순 장치 이름을 사용하는 것을 알 수 있습니다.

이 정보는 어디에 저장되나요? 보관기간은 얼마나 되나요? 이 정보를 사용하여 다음 장치가 수신할 장치 이름을 예측하려면 어떻게 해야 합니까?

답변1

udev 규칙 처리 및 장치 노드 생성을 살펴봐야 할 것 같습니다. 기본 udev 규칙은 /lib/udev/rules.d에 있지만 /etc/udev/rules.d에서 재정의할 수 있습니다.

답변2

나는 리눅스가 사용 가능한 첫 번째 문자를 사용한다고 생각합니다. 그러나 이는 커널 버전 및 장치 유형에 따라 달라질 수 있습니다.

당신이 필요로 할 가능성은 거의 없습니다예측하다다음 편지. 어쨌든 당신은 그것으로 유용한 어떤 것도 할 수 없을 것입니다: 프로그램이 반응할 시간을 갖기 전에 두 개의 장치가 추가되면 어떻게 될까요? Linux에는 다음과 같은 메커니즘이 있습니다.제어장치 이름:우데브. udev 규칙을 작성하여 장치의 특정 유형, 제조사, 모델, 특정 레이블이나 UUID가 있는 파일 시스템을 식별하고 일치하는 장치가 삽입되면 스크립트를 실행할 수 있습니다. 바라보다IDE 드라이브를 /dev/hda에 매핑그리고무선 키보드가 연결된 동안 작업 수행몇 가지 예를 들어보세요.

기본 udev 규칙은 모델 및 일련 번호(in)로 블록 장치를 식별하고 /dev/disk/by-id레이블 및 일련 번호(in /dev/disk/by-label및 )로 /dev/disk/by-serial파일 시스템을 식별하는 링크를 자동으로 생성합니다. 이것은 귀하의 요구에 충분할 수 있습니다.

답변3

한 장치를 제거하고 다른 장치를 연결하면 새로 연결된 장치가 제거된 장치의 이름을 사용하지 않고 대신 알파벳순 장치 이름을 사용하는 것을 알 수 있습니다.

아니요. 시간과 기존 장치의 전원이 켜져 있는지 여부에 따라 다릅니다. 내 시스템에서 USB 플래시 드라이브를 연결했다가 뺐다가 몇 초 후에 다시 연결하면 동일한 장치가 나타날 수 있습니다. 연결한 후 마운트하고 마운트 해제하지 않으면 다시 연결하면 다음 장치를 얻게 됩니다.

문자 자체는 실제 장치의 메이저/마이너만큼 중요하지 않습니다. 이전 항목이 아직 사용 중이면 커널은 다른 항목을 사용합니다.

이는 커널이 특정 작업에 30초 이상 걸릴 것으로 예상하는 SCSI/SAS 테이프에서 매우 명확하게 볼 수 있습니다. 링크가 약간 불안정한 경우 커널은 여전히 ​​/dev/st0을 열고 다시 나타날 때 하드웨어는 여전히 사용 중입니다(커널 로그에는 장치 초기화가 다음 초기화로 표시되기까지 오랜 시간이 걸린다는 것을 표시합니다). 장치).

리뷰를 보면 다음 기기를 예측해야 하는 이유는 무엇입니까? 많은 경우 udev(또는 다른 여러 방법)를 청취하여 udevadm monitor다음 장치를 찾고 특정 문자보다는 식별자로 사용하는 것이 더 좋습니다.

관련 정보