드라이브 연결이 끊어진 경우에도 부팅 시 Udev 노드 /dev/sda가 생성됨

드라이브 연결이 끊어진 경우에도 부팅 시 Udev 노드 /dev/sda가 생성됨

편집: 질문을 조금 단순화하고 싶습니다.

주요 문제는 USB 드라이브가 삽입되었는지 여부에 관계없이 부팅 시 /dev/sda가 생성된다는 것입니다. /dev/sda를 수동으로 rm하면 udev는 재부팅할 때까지 올바르게 작동하며, 재부팅하면 /dev/sda가 마술처럼 다시 나타납니다!

원래 질문은 다음과 같습니다.

임베디드 보드에서 Yocto Linux 빌드를 실행하고 있는데 문제가 발생했습니다.

새로운 빌드를 사용하여 USB 드라이브를 보드에 연결하면 /dev/sda 및 /dev/sda1로 표시됩니다(훌륭합니다!). 드라이브를 분리하면 해당 항목이 사라집니다(역시 좋습니다!).

USB 드라이브를 통해 중복 루트 파일 시스템을 보드에 복사한 후에 문제가 발생합니다(이렇게 하면 보드에 대한 전체 시스템 업데이트를 수행할 수 있습니다). USB 드라이브 삽입 여부에 관계없이 갑자기 /dev/sda 및 /dev/sda1이 존재하는 경우 재부팅할 때까지 모든 것이 잘 작동합니다.

권한을 확인했는데 두 경우 모두 동일하게 보입니다. 파일을 제거하려고 시도했지만 다음에 재부팅하면 다시 나타납니다. 두 파일은 새 루트 파일 시스템으로 복사되지 않습니다. 내 응용 프로그램은 해당 파일의 존재를 사용하여 드라이브가 삽입되었는지 확인하므로 올바르게 작동하는 것이 중요합니다.

어떤 아이디어가 있나요?

감사해요

말론

답변1

USB 드라이브는 신뢰할 수 없으므로 확인 방법을 변경하세요.

디렉토리를 사용 lsusb하거나 확인하십시오 /proc/scsi/usb-storage. 두 가지 방법 모두 커널에서 많은 정보를 얻을 수 있으므로 추가로 공급업체나 일련 번호를 기반으로 다른 로직으로 전환하는 등의 작업을 수행할 수 있습니다 :)

관련 정보