udev 이상한: /dev/hda1이 마운트되었지만 파일이 존재하지 않습니다.

udev 이상한: /dev/hda1이 마운트되었지만 파일이 존재하지 않습니다.

생각하다내 문제는 udev 및/또는 udisk와 관련되어 있지만 여기서 무슨 일이 일어나고 있는지 잘 모르겠습니다. 첫째, 내 시스템은 어느 정도 잘 작동합니다. 덜 중요한 부분은 데비안 설치를 일부 업그레이드한 후 /dev 폴더가 이상하게 작동하기 시작했다는 사실 때문인데, 이는 이전에 내가 이해했다고 생각했던 유닉스 드라이브 관리와 관련이 있었습니다. 요점을 말하자면 다음 두 가지 명령과 그 출력이 있습니다.

$ ls /dev/h*
/dev/hidraw0  /dev/hidraw1  /dev/hidraw2  /dev/hpet

$ mount
/dev/hdb1 on / type ext3 (rw,errors=remount-ro)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,size=5242880,mode=755,size=5242880,mode=755)
....

이제 설치되었지만 해당 파일이 디렉터리 /dev/hdb1에 없는 것을 확인하세요. /dev어떻게 그래? 파일이 존재하지 않으면 /dev/hdb1드라이브 링크로 어디에 나열되어 있습니까? 더 중요한 것은 CD를 마운트하고 싶다는 것입니다. 드라이브에 넣었는데 /dev/scd0표시되지 않아서 오류 mount /dev/scd0 /media/cdrom가 발생하기 때문에 그렇게 할 수 없습니다 File not found. 그러나 많은 고민 끝에 두 가지 방법을 찾았습니다.

$ mount /dev/disks/by-id/ata-HL-DT-ST_DVDRAM_GSA-4160B_K3H4A7E1256
$ udisks --mount /dev/scd0 /media/cdrom

위의 두 명령 모두 작동합니다. 그래서 제 질문은 udisks실제로 존재하지 않는 장치 파일로 무엇을 해야 할지 어떻게 알 수 있느냐는 것입니다. 그리고 아마도 더 중요한 것은 mount파일이 존재하지도 않는데 파일 시스템을 마운트했다고 생각하는 이유는 무엇입니까?/dev/hdb1

마지막으로, 이것이 최근 커널 업그레이드와 관련된 경우:

$ uname -srv
Linux 3.1.0-1-686-pae #1 SMP Sun Dec 11 20:40:16 UTC 2011

답변1

Udisks는 자체 장치 명명 체계를 사용합니다. 일반적으로 따르는 것과 동일한 명명 규칙을 따릅니다.우데브( 의 항목을 관리하는 프로그램 /dev)이지만 이러한 규칙을 자체적으로 구현하고 의 항목에 의존하지 않습니다 /dev.

표시된 루트 파일 시스템 항목은 mount루트 파일 시스템이 부팅 시 커널에 의해 마운트되고 부팅 스크립트가 나중에 이를 채우려고 시도하지만 /etc/mtab(명령으로 읽은 파일 mount) 루트 파일 시스템이 사용하는 정확한 장치 이름을 알 수 없기 때문에 신뢰할 수 없습니다. 커널(기술적으로 루트 파일 시스템을 포함하는 장치에는 일반적으로 발생하지 않더라도 에 항목이 없습니다 /dev). 여러분이 보고 있는 것은 /proc/mounts실시간으로 커널을 쿼리하는 것입니다. /(시스템에 존재할 수도 있고 존재하지 않을 수도 있는) 다른 장치 이름을 볼 수도 있습니다.

시스템에 일부 udev규칙이 누락된 것 같습니다. 이러한 규칙은 udev패키지, 특히 /lib/udev/rules.d/60-persistent-storage.rules. 그리고 규칙 파일이 존재하고 손상되지 않았는지 확인하세요.udevudev

관련 정보