2016-09-15 3 views
2

저는 8MB 플래시와 16MB RAM을 가진 Digi 임베디드 리눅스 모듈을 사용하고 있습니다.du linux 명령 크기가 df보다 큰

내 파티션 테이블은 다음과 같습니다 : SO

enter image description here

, 내가 rootfs에 대한 4.4MB를 얻었다. UserFS는 2MB입니다.

'df -ah'를 실행하면 출력이 다음과 같이 표시됩니다. 그러나

enter image description here

, 내가 루트 '뒤 -SH'실행, 나는 4M /의 lib 디렉토리와는/usr에서 3M이있다. 둘 다 뿌리를 내리고있다. 그러나 뿌리는 단지 4.4M입니다.

심볼릭 링크를 확인하고 파일이/lib 및/usr에 실제로 있는지 확인할 수 있습니다.

enter image description here

나는 2M에 가까이/lib 디렉토리에서 라이브러리 파일 ( 은 netsnmp)의 일부를 삭제하지만,/dev에/루트에서 사용 가능한 크기는 408K에서 792K를에 ~ 390K (증가).

enter image description here

이 제안 그/lib 디렉토리/libnetsnmp * 다른 곳에서 보관 하였다. 나는 그 파일들이 어디에 저장되었는지 확신하지 못한다. 아이디어가 있으십니까?

또한 rootfs 이미지 크기는 4M입니다. 그리고 이것은/dev/root 파일 시스템의 df -ah 명령에 올바르게 표시됩니다.

답변

0

아마 루트 파일 시스템에 하드 링크가 있기 때문일 수 있습니다. 각 하드 링크는 일반 파일로 표시되지만 모든 하드 링크는 동일한 inode를 가리 킵니다. 따라서 물리적으로 하드 디스크에 파일 사본이 하나만 존재합니다. 이 link에서 소프트 링크 및 하드 링크의 올바른 정의를 볼 수 있습니다.

편집 : 당신은 (이 answer에서 촬영)이 명령을 사용하여 하드 링크를 검색 할 수 있습니다

find . -samefile /path/to/file 
+0

나는 그것을 믿지는 링크 할 수 없습니다./lib의 파일 이름은 모두 lib * .so 파일입니다./usr의 파일 이름은 모두 mib 파일입니다. – user3033152