따라서 장치를 가져와서 파티션을 나눈 다음 해당 파티션에 대한 장치 노드를 만드는 프로그램이 있습니다. 문제는 일종의 재검색이 강제로 실행될 때까지 커널이 장치를 선택하지 않는다는 것입니다. 예를 들어:
- 파티션 장치
- 노드 만들기
- 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 드라이브가 연결되어 있거나 핫 플러그되어 있습니다.