ioctl()
FIBMAP
를 통해 사용 가능한 논리 블록이 있는 경우 파일이 차지하는 물리적 블록을 결정하는 데 사용할 수 있습니다 stat()
. 그러나 루트 액세스가 필요합니다. 파일의 디스크 위치를 결정하는 데 루트 액세스가 필요한 이유는 무엇이며, 동일한 정보를 얻기 위해 루트가 필요하지 않은 메커니즘이 있습니까? 이 질문을 제기하는 사용 사례의 경우 파일이 작기 때문에(평균 약 1블록) 첫 번째 블록의 물리적 위치를 아는 것만으로도 충분합니다(간접 블록은 물론 필요하지 않음). 이러한 파일 중 약 100,000개는 가능한 한 빠른 순서로 짧은 순서로 액세스해야 하며 I/O 스케줄러 대기열로 전달하기 전에 디스크 위치를 기준으로 파일을 미리 정렬하고 싶습니다. 정렬은 inode
루트 권한이 필요하지 않은 가능성을 기반으로 하지만 inode 번호와 디스크 위치 간의 일치 정도는 확률적이므로 일치 정도에 따라 성능이 달라집니다.
파일이 차지하는 물리적 블록에 대한 루트가 아닌 액세스
관련 정보
- Linux 커널 버전을 변경하는 방법
- SD 카드를 플래싱하기 전에 Embedded Linux를 파티션하세요.
- Bash 프롬프트에 CPU 온도를 표시하는 방법은 무엇입니까?
- 펄스 오디오 출력을 얻는 방법은 무엇입니까?
- Centos 7의 vncserver: Gnome 환경을 변경하는 방법은 무엇입니까?
- RST 삭제 및 NOTRACK 사용
- Debian에서 AMD 마이크가 감지되지 않습니다.
- 쉘 스크립트의 주요 기능은 어디에 있습니까?
- systemd.run 커널 매개변수(예: systemd 장치의 요구/원함)에서 네트워크를 기다립니다.
- Ubuntu 파티션 이미지에서 부팅 가능한 Ubuntu 하드 드라이브를 만드는 방법은 무엇입니까?