답변1
예, 블록 장치의 장치 번호는 변경될 수 있습니다. 이는 시스템 시작 시 동적으로 할당됩니다. 장치를 추가 및 제거하면(때로는 BIOS 펌웨어 변경도 가능) 항목이 다른 순서로 검색되어 장치 ID가 달라질 수 있습니다.
파일 시스템을 고유하게 식별하려면 파일 시스템 UUID(예: 명령을 통해 얻을 수 있음 blkid
)를 사용합니다.
inode를 식별자로 사용하는 것은 수행하려는 작업에 따라 문제가 될 수도 있습니다. 예를 들어 하드 링크로 인해 단일 파일이 동일한 inode가 있는 여러 위치에 존재할 수 있으며 inode가 원래 연결되었을 때 새 파일에 대해 회수될 수 있습니다. 파일이 삭제되면.
답변2
그렇습니다. 변화할 수는 있지만 지속되지는 않습니다. 간단한 예를 들어보겠습니다. 두 개의 네트워크 드라이브를 마운트한 다음 다른 순서로 마운트합니다.
st_dev
장치 클래스와 해당 클래스의 장치 번호라는 두 부분으로 구성됩니다. 장치 클래스는 장치가 설치될 때 학습됩니다(기본적으로 장치 설치 방법). 그러나 클래스의 번호는 설치 순서에 따라 정의됩니다.
물론 fstab에서 마운트된 장치에 대해 이야기하는 경우 fstab을 수정하기 전까지는 이 명령을 신뢰할 수 있습니다.
makedev(3)
그것을 분해하는 방법을 알아보십시오 st_dev
.