debugfs가 crtime을 나노초 단위로 표시하지 않는 이유는 무엇입니까?

debugfs가 crtime을 나노초 단위로 표시하지 않는 이유는 무엇입니까?

나는 다음을 사용하고 있습니다 :

debugfs -R 'stat <7473635>' /dev/sda7

파일 생성 시간( crtime)을 가져옵니다.

Inode: 7473635   Type: regular    Mode:  0664   Flags: 0x80000
Generation: 1874934325    Version: 0x00000000:00000001
User:  1000   Group:  1000   Size: 34
File ACL: 0    Directory ACL: 0
Links: 1   Blockcount: 8
Fragment:  Address: 0    Number: 0    Size: 0
 ctime: 0x55b65ebc:98040bc4 -- Mon Jul 27 22:09:24 2015
 atime: 0x55da0168:60b33f74 -- Sun Aug 23 22:52:48 2015
 mtime: 0x55b65ebc:98040bc4 -- Mon Jul 27 22:09:24 2015
crtime: 0x55b65ebc:970fe7cc -- Mon Jul 27 22:09:24 2015
Size of extra inode fields: 28
EXTENTS:
(0):29919781

crtime그런데 왜 나노초를 입력하지 않는 걸까요 ?ext4 지원하다나노초 분해능?

답변1

타임스탬프(나노초 정밀도)를 표시하지만16진수crtime:; 예를 들어 출력에서 ​​뒤에 오는 필드입니다 0x55b65ebc:970fe7cc. 콜론 다음 부분은 나노초입니다.
이 기사자세한 내용을 제공하고 타임스탬프/나노초 계산 방법을 설명합니다. 예를 들어 16진수 값을 타임스탬프로 변환합니다.알라 stat다음을 실행할 수 있습니다.

날짜 -d @$(printf %d 0x55b65ebc).$(( $(printf %d 0x970fe7cc) / 4 )) +'%F %T.%N %z'
2015-07-27 19:39:24.633600499 +0300

답변2

debugfs는 1초 미만 부분(i_의 상위 30비트) 인쇄를 지원하지 않는 것 같습니다.엑스asctimetime_extra) 형식에 따라 달라집니다. ~에서http://git.kernel.org/cgit/fs/ext2/e2fsprogs.git/tree/debugfs/debugfs.c:

if (is_large_inode && large_inode->i_extra_isize >= 24) {
        fprintf(out, "%s ctime: 0x%08x:%08x -- %s", prefix,
            inode->i_ctime, large_inode->i_ctime_extra,
            time_to_string(inode->i_ctime));
        fprintf(out, "%s atime: 0x%08x:%08x -- %s", prefix,
            inode->i_atime, large_inode->i_atime_extra,
            time_to_string(inode->i_atime));
        fprintf(out, "%s mtime: 0x%08x:%08x -- %s", prefix,
            inode->i_mtime, large_inode->i_mtime_extra,
            time_to_string(inode->i_mtime));
        fprintf(out, "%scrtime: 0x%08x:%08x -- %s", prefix,
            large_inode->i_crtime, large_inode->i_crtime_extra,
            time_to_string(large_inode->i_crtime));

관련 정보