일괄적으로 파티션을 생성한 후 파티션 노드에 액세스하지 못했습니다.

일괄적으로 파티션을 생성한 후 파티션 노드에 액세스하지 못했습니다.

따라서 장치를 가져와서 파티션을 나눈 다음 해당 파티션에 대한 장치 노드를 만드는 프로그램이 있습니다. 문제는 일종의 재검색이 강제로 실행될 때까지 커널이 장치를 선택하지 않는다는 것입니다. 예를 들어:

  • 파티션 장치
  • 노드 만들기
  • cat 노드 > cat: /dev/xxx: 해당 장치 또는 주소가 없습니다.

하지만 이것은 작동합니다:

  • 파티션 장치
  • 노드 만들기
  • cfdisk /dev/xxx를 실행하고 즉시 종료합니다.
  • 고양이 노드 > 잘 작동함

왜 이런거야? SCSI 버스 등을 다시 검색할 수 있는 일종의 ioctl이 있습니까?

그리고 이것은 작동하지 않습니다.

echo "- - -" > /sys/class/scsi_host/hostX/scan

답변1

사용partprobe /dev/xxx

partprobe패키지의 일부입니다 parted. 매뉴얼 페이지에서:

partprobe파티션 테이블의 변경 사항을 운영 체제 커널에 알리는 프로그램입니다.

파티션된 장치(예: 디스크 이미지 파일)가 있고 이에 대한 장치 노드(예: /dev/loop*)를 자동으로 생성하고 커널에 알리려는 경우 다른 옵션은 다음을 사용할 수 있다는 것입니다 kpartx. USB 또는 SATA 드라이브가 연결되어 있거나 핫 플러그되어 있습니다.

관련 정보