포트 번호를 장치에 일치시키기

포트 번호를 장치에 일치시키기

여러 개의 부팅 드라이브가 있는 컴퓨터가 있는데, 모두 동일한 소프트웨어가 포함되어 있습니다. 부팅 디스크는 전면 패널의 다중 위치 스위치를 통해 선택됩니다. 디스크 1을 선택하면 SATA 포트 0의 디스크가 부팅됩니다. 디스크 2를 선택하면 SATA 포트 1의 디스크가 부팅됩니다. 등.

RH의 디스크 관리자는 하드 디스크가 연결된 SATA 포트를 표시할 수 있습니다. 이는 상단의 그래픽 UI입니다.무엇, 그리고 그무엇내가 원하는 것입니다.

명령줄에서 이 정보를 어떻게 얻을 수 있나요? SSH 연결을 통해 연결했는데 부팅 디스크가 무엇에 연결되어 있는지 알고 싶습니다. 이 정보는 어디에 보관되나요?

감사해요!

답변1

포트 번호를 장치에 일치시키기

나는 같은 것을 알아 내려고 노력했기 때문에이 질문을 발견했습니다. 내가 알아낸 것은 다음과 같습니다. bash나 zsh에서 작동해야 합니다.

for i in /dev/disk/by-path/*;do [[ ! "$i" =~ '-part[0-9]+$' ]] && echo "Port $(basename "$i"|grep -Po '(?<=ata-)[0-9]+'): $(readlink -f "$i")";done

출력은 다음과 같아야 합니다.

Port 1: /dev/sda
Port 2: /dev/sdb
Port 3: /dev/sdc

이 포트 번호해야 한다이는 마더보드 공급업체가 보드에 인쇄된 숫자를 SATA 컨트롤러 칩의 포트 번호와 일치시킬 만큼 충분히 배려했다고 가정하더라도 마더보드에 인쇄된 번호와 일치합니다. 최소한 장치 경로는 안정적으로 유지되므로 나열된 포트 번호와 패널의 번호 사이에 매핑을 설정하면 변경되지 않습니다.

이 조각은 디렉터리를 반복합니다 /dev/disk/by-path. 이는 파티션일 뿐이므로 끝나는 파일을 건너뛰고 나머지 파일 이름 끝에 있는 -part<number>에서 포트 번호를 추출합니다 . -ata<number>이러한 파일은 기존 /dev/sdX노드 에 대한 심볼릭 링크이며 readlink -f.

여러 SATA 컨트롤러가 있는 경우 각 컨트롤러마다 자체 포트 1, 포트 2 등이 있으므로 동일한 포트 번호에 대해 여러 장치가 나열됩니다. 따라서 수동으로 실행 ls -l /dev/disk/by-path하고 구문 분석하십시오.

어떤 장치가 부팅 장치인지 알아내기

어떤 장치가 부팅 장치인지 확인하려면 를 실행하세요 mount | grep ' on / ' | cut -f 1 -d ' '. 에 마운트된 장치를 보여줍니다 /.

답변2

적절한 SATA 포트 매핑은 "user371366"이 언급한 것입니다.

마더보드 PCB에 인쇄된 SATA 포트 번호에 의존하지 말 것을 적극 권장합니다.

하드웨어/소프트웨어 문제나 버그로 인해 신뢰할 수 없기 때문입니다.

마더보드 PCB에 표시된 SATA 포트 1번이 SDA가 아닌 SDB 또는 SDx(여기서 x는 PC 터미널 등에 표시되는 문자)로 표시되는 경우가 있습니다.

"clonezilla" 백업 소프트웨어를 사용하는 등 이런 일이 몇 번 발생했습니다. 여기서 SATA 포트#1은 SDA여야 하는데 SDB로 표시됩니다.

가장 좋은 방법은 하드 드라이브 일련 번호를 기록하고 이를 대상 하드 드라이브에 대한 참조로 사용하는 것입니다.

관련 정보