>  기사  >  운영 및 유지보수  >  Linux에서 파일 생성이 실패하는 이유는 무엇입니까?

Linux에서 파일 생성이 실패하는 이유는 무엇입니까?

青灯夜游
青灯夜游원래의
2022-06-10 19:18:416717검색

리눅스가 파일 생성에 실패하는 이유: 1. 현재 디렉터리에 해당하는 디스크 공간이 부족하여, 특정 디렉터리에 파일을 생성할 경우 실제로는 해당 디렉터리에 해당하는 디스크에서 작업이 진행됩니다. , 자연스럽게 실패가 생성됩니다. 2. inode가 부족합니다. 하나의 파일이 하나의 inode에 해당하므로 디스크에 작은 파일이 너무 많으면 블록이 많지만 inode가 할당되었습니다. 즉, 여전히 많은 공간이 있습니다. 그러나 파일이 생성되지 않았기 때문에 생성할 수 없습니다.

Linux에서 파일 생성이 실패하는 이유는 무엇입니까?

이 튜토리얼의 운영 환경: linux7.3 시스템, Dell G3 컴퓨터.

파일 생성 실패

Linux 시스템에서 파일 생성 실패는 비교적 흔한 일입니다. 물론 여기서 파일을 생성한다는 것은 사용자가 수동으로 파일을 생성한다는 의미만은 아닙니다. 등을 계속 작성해야 합니다. 파일, 파일 생성, 실제 사용자가 파일 생성에 실패하는 경우는 거의 없습니다. 다음으로 생성이 실패하는 이유를 분석합니다.

파일 생성 실패 이유:

1. 현재 디렉터리에 해당하는 디스크 공간이 부족합니다.

위 설명에 따르면 특정 디렉터리에 파일을 생성하면 실제로는 해당 디스크에서 동작하게 됩니다. 이 디렉터리에 해당하는 경우, 디스크가 가득 차면 당연히 생성이 실패합니다. 보다 구체적인 설명은 파일을 생성할 때 블록 신청이 실패한다는 것입니다. 다음 명령을 사용하여 확인할 수 있습니다.

# 查看当前目录所在磁盘的空间使用情况
df -h ./

2. insufficient inode

이것은 파일 생성이 실패하는 또 다른 이유입니다. 파일이 inode에 해당하므로 디스크에 작은 파일이 너무 많으면 블록이 많아지는데 inode가 할당된 즉, 여전히 공간은 많지만 생성할 수 없다. . 파일을 생성할 때 inode 번호를 요청하는 데 실패하기 때문입니다. 다음 명령을 사용하여 innode가 할당되었는지 확인할 수 있습니다.

# 查看当前目录所在磁盘的inode的使用情况
df -i ./

확장 지식: 여러 핵심 용어

  • superblock: 보다 대중적인 용어로 설명하면: superblock은 디스크 영역을 관리하며 모든 파일은 All입니다. 모든 작업(생성, 접근, 삭제)은 디스크 관리 하우스키퍼 역할을 하는 슈퍼블록을 거쳐야 합니다.

  • inode: 디스크 포맷으로 미리 구분된 작은 디스크 영역입니다. 일반적으로 각 inode는 128바이트로 파일 권한, 속성, 점유된 블록 및 기타 정보를 기록하는 데 사용됩니다. 각 파일은 inode에 해당합니다. inode의 적용 및 반환은 superblock에 의해 관리됩니다.

  • 블록: 파일 콘텐츠가 실제로 저장되는 위치 블록의 크기도 시스템에 따라 1K, 2K 또는 4K일 수 있습니다. 파일은 정수 블록을 차지해야 하며 나머지 공간을 모두 사용하면 낭비됩니다. 예를 들어, 각 블록은 4K입니다. 크기가 1K인 파일이 있는 경우 이 블록의 나머지 3K는 다른 파일에서 사용할 수 없습니다. 이를 디스크 조각화라고 합니다. 또 다른 상황은 파일이 10K이고 3개의 블록을 점유해야 하며 실제 사용률은 10/12이며 이 3개의 블록의 수가 파일에 해당하는 inode에 기록된다는 것입니다.

  • 마운트 포인트: Linux 시스템에서 각 물리적 디스크는 특정 디렉터리에 마운트됩니다. 이 디렉터리에 파일을 만드는 것은 이 물리적 디스크에 무언가를 쓰는 것과 같습니다.

    일반인의 관점에서 보면 물리적 디스크는 먼저 파일 트리의 디렉터리에 마운트됩니다. 물리적 디스크는 여러 영역으로 나누어집니다. 각 영역에는 해당 영역을 관리하는 슈퍼 블록이 있습니다. 특정 개수의 inode와 블록이 있으며, 하나의 inode는 하나의 파일에 해당하며, 새 파일을 생성할 때 먼저 슈퍼 블록으로 이동하여 inode 번호를 신청한 후 파일 크기에 따라 여러 블록을 신청해야 합니다. , inode에 파일의 속성, 사용된 블록 번호를 기록하고 마지막으로 파일의 실제 내용이 할당된 블록에 기록됩니다.

관련 추천: "Linux 비디오 튜토리얼"

위 내용은 Linux에서 파일 생성이 실패하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.