web-dev-qa-db-ja.com

lsattrの出力の意味は何ですか

lsattrの出力が何を意味するのか疑問に思っています。試してみると、次のように奇妙に出力されます:lsattr /usr

$ lsattr /usr
-----------------e- /usr/local
-----------------e- /usr/src
-----------------e- /usr/games
--------------I--e- /usr/include
--------------I--e- /usr/share
--------------I--e- /usr/lib
-----------------e- /usr/lib32
--------------I--e- /usr/bin
--------------I--e- /usr/sbin

chattrlsattrのmanページを読みましたが、まだわかりません。

16
Hongxu Chen

chattrのmanページには、lsattrの出力を理解するために必要なすべての情報が含まれています。

抜粋

    The letters `acdeijstuACDST' select the new attributes for the files: 
    append only (a), compressed (c), no dump (d), extent format (e),  
    immutable (i),  data  journalling  (j),  secure deletion (s), no 
    tail-merging (t), undeletable (u), no atime updates (A), no copy on 
    write (C), synchronous directory updates (D), synchronous updates (S), 
    and top of directory hierarchy (T).

    The following attributes are read-only, and may be listed by lsattr(1) 
    but not modified by chattr: huge file (h), compression error (E), 
    indexed directory (I), compression raw access (X), and compressed dirty 
    file (Z).

同じmanページのさらに下にあるタグの説明を見ると、次のようになります。

    The 'e' attribute indicates that the file is using extents for mapping 
    the blocks on disk.  It may not be removed using chattr(1).

    The 'I' attribute is used by the htree code to indicate that a directory 
    is being indexed using hashed trees.  It may not be set or  reset  using
    chattr(1), although it can be displayed by lsattr(1).
13
slm

chattrのmanページから、「e」属性は、ファイルがディスク上のブロックをマッピングするためにエクステントを使用していることを示しています。 chattrを使用して削除することはできません。

エクステントは、コンピューターファイルシステム内の連続したストレージ領域であり、ファイル用に予約されています。プロセスがファイルを作成すると、ファイルシステム管理ソフトウェアがエクステント全体を割り当てます。ファイルに再度書き込むとき、おそらく他の書き込み操作を行った後、前の書き込みが中断したところからデータが続行されます。これにより、ファイルの断片化が削減または排除され、ファイルの分散も可能になります。

エクステントベースのファイルシステム(つまり、単一のブロックではなくエクステントを介してストレージに対処するファイルシステム)では、各ファイルを単一の連続するエクステントに制限する必要はありません。

次のシステムはエクステントをサポートしています。

ASM - Automatic Storage Management - Oracle's database-oriented filesystem.
BFS - BeOS, Zeta and Haiku operating systems.
Btrfs - GPL'd extent based file storage (16PiB/264 max file size).
Ext4 - Linux filesystem (when the configuration enables extents — the default in Linux since version 2.6.23).
Files-11 - Digital Equipment Corporation (subsequently Hewlett-Packard) OpenVMS filesystem.
HFS and HFS Plus - Hierarchical File System - Apple Macintosh filesystems.
HPFS - High Performance File Syzstem - OS/2 and eComStation.
JFS - Journaled File System - Used by AIX, OS/2/eComStation and Linux operating systems.
Microsoft SQL Server - Versions 2000-2008 supports extents of up to 64KB [1].
Multi-Programming Executive - Filesystem by Hewlett-Packard.
NTFS - Microsoft's latest-generation file system [1]
Reiser4 - Linux filesystem (in "extents" mode).
SINTRAN III - File system used by early computer company Norsk Data.
UDF - Universal Disk Format - Standard for optical media.
VERITAS File System - Enabled via the pre-allocation API and CLI.
XFS - SGI's second generation file system.[2]

wikipedia から

Linuxのchattrおよびlsattrユーティリティと、それらが操作する属性は、2番目の拡張ファイルシステムファミリー(ext2、ext3)に固有であり、 e2fsprogs の一部として利用できます。パッケージ。これらは、他のファイルシステムにあるファイル(たとえば、 ReiserFS、FAT。

(j)データジャーナリング(t)末尾マージなし(e)拡張を使用して、ディスク上のブロックをマッピングします

通常、エクステントファイルシステムでは、通常のファイルとディレクトリファイルは、ディスク上の一連のエクステント、連続したブロックのシーケンスとして格納されます。ファイルのディレクトリエントリは、ファイルのエクステントを追跡します。ファイルシステムがファイルを保持するために複数のエクステントを必要とする場合、エクステントブロックのリンクリストを使用して、エクステントに関する情報を格納します。

10
harish.venkat