나는 이전 버전의 Linux 2.6을 실행하는 일종의 홈 엔터테인먼트 시스템을 가지고 있습니다. SATA > USB 브리지 시스템과 여러 개의 USB 포트가 있습니다. 제가 하고 싶은 것은 네트워크 연결 스토리지로 사용하는 것입니다.
이제 운 좋게도 개방적이고 액세스 가능한 텔넷 서버가 실행되고 있습니다.
문제는 커널이나 초기화 시스템이 어디에 있는지 찾을 수 없다는 것입니다. 상자가 BusyBox를 실행 중입니다.
이 보드에는 플래시 메모리 칩이 있습니다. 그러나 block/의 sysfs 아래에는 여러 개의 플래시 칩이 있습니다.
/sys/block # ls
...
mtdblock0 mtdblock2 mtdblock4
mtdblock1 mtdblock3
그런데 왜 이런가요?
/dev
이제 USB 플래시 드라이브에 덤프하고 분석할 수 있도록 항목을 만들고 싶습니다 .
그래서 나는 이렇게 했습니다:
/sys/block # cat /sys/block/mtdblock0/dev
31:0
그리고..
mknod /dev/mtdblock0 c 31 0
0으로 종료한 다음 원시 데이터를 읽어 장치를 테스트해 보았습니다.
/sys/block # cat /dev/mtdblock0
cat: /dev/mtdblock0: No such device or address
왜 그런 겁니까? dd도 똑같은 말을 하더군요. 항목이 있습니다 /proc/devices
:
/sys/block # cat /proc/devices
Character devices:
1 mem
{ ... }
Block devices:
1 ramdisk
7 loop
8 sd
31 mtdblock
{ ... }
답변1
mknod /dev/mtdblock0씨31 0
캐릭터 장치를 만듭니다. 당신은 블록 장치를 원합니다. 따라서 명령에서 b
대신 사용하십시오.c
mknod
블록 장치 번호와 문자 장치 번호는 독립적입니다. 블록디바이스 31:0은 캐릭터디바이스 31:0과 아무런 관련이 없습니다. 커널에 문자 장치 31:0용 드라이버가 없으므로 "해당 장치 또는 주소가 없습니다" 오류가 발생합니다.