1 .. SPDX-License-Identifier: GPL-2.0 2 3 Checksums 4 --------- 5 6 Starting in early 2012, metadata checksums wer 7 and jbd2 data structures. The associated featu 8 The desired checksum algorithm is indicated in 9 of October 2012 the only supported algorithm i 10 structures did not have space to fit a full 32 11 lower 16 bits are stored. Enabling the 64bit f 12 structure size so that full 32-bit checksums c 13 structures. However, existing 32-bit filesyste 14 enable 64bit mode, at least not without the ex 15 patches to do so. 16 17 Existing filesystems can have checksumming add 18 ``tune2fs -O metadata_csum`` against the under 19 encounters directory blocks that lack sufficie 20 checksum, it will request that you run ``e2fsc 21 directories rebuilt with checksums. This has t 22 removing slack space from the directory files 23 indexes. If you _ignore_ this step, your direc 24 protected by a checksum! 25 26 The following table describes the data element 27 of checksum. The checksum function is whatever 28 (crc32c as of October 2013) unless noted other 29 30 .. list-table:: 31 :widths: 20 8 50 32 :header-rows: 1 33 34 * - Metadata 35 - Length 36 - Ingredients 37 * - Superblock 38 - __le32 39 - The entire superblock up to the checksu 40 the superblock. 41 * - MMP 42 - __le32 43 - UUID + the entire MMP block up to the c 44 * - Extended Attributes 45 - __le32 46 - UUID + the entire extended attribute bl 47 zero. 48 * - Directory Entries 49 - __le32 50 - UUID + inode number + inode generation 51 fake entry enclosing the checksum field 52 * - HTREE Nodes 53 - __le32 54 - UUID + inode number + inode generation 55 The checksum field is set to zero. 56 * - Extents 57 - __le32 58 - UUID + inode number + inode generation 59 the checksum field. 60 * - Bitmaps 61 - __le32 or __le16 62 - UUID + the entire bitmap. Checksums are 63 and truncated if the group descriptor s 64 * - Inodes 65 - __le32 66 - UUID + inode number + inode generation 67 field is set to zero. Each inode has it 68 * - Group Descriptors 69 - __le16 70 - If metadata_csum, then UUID + group num 71 else if gdt_csum, then crc16(UUID + gro 72 descriptor). In all cases, only the low 73
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.