blob: 4af15f2823e71f8a3dd53af8b1693d148413c9a5 [file] [log] [blame]
.\" Copyright (c) 2024 OPPO Mobile Comm Corp., Ltd.
.\"
.TH INJECT.F2FS 8
.SH NAME
inject.f2fs \- inject a Linux F2FS file system
.SH SYNOPSIS
.B inject.f2fs
[
.I options
]
.I device
.SH DESCRIPTION
.B inject.f2fs
is used to modify metadata or data (directory entry) of f2fs file system
image offline flexibly.
.SH OPTIONS
.TP
.BI \-d " debug level [default:0]"
Specify the level of debugging options.
.TP
.BI \-V
Print the version number and exit.
.TP
.BI \-\-mb " member name"
Specify the member name in a struct that is injected.
.TP
.BI \-\-val " new value"
New value to set if \fImb\fP is a number.
.TP
.BI \-\-str " new string"
New string to set if \fImb\fP is a string.
.TP
.BI \-\-idx " slot index"
Specify which slot is injected if \fImb\fP is an array.
.TP
.BI \-\-nid " nid"
Specify which nid is injected.
.TP
.BI \-\-blk " blkaddr"
Specify which blkaddr is injected.
.TP
.BI \-\-sb " 0 or 1 or 2"
Inject super block, its argument means which sb pack is injected, where 0 choses the current valid sb automatically.
The available \fImb\fP of \fIsb\fP are:
.RS 1.2i
.TP
.BI magic
magic number.
.TP
.BI s_stop_reason
s_stop_reason array.
.TP
.BI s_errors
s_errors array.
.TP
.BI feature
features.
.TP
.BI devs.path
path in devs array.
.RE
.TP
.BI \-\-cp " 0 or 1 or 2"
Inject checkpoint, its argument means which cp pack is injected, where 0 choses the current valid cp automatically.
The available \fImb\fP of \fIcp\fP are:
.RS 1.2i
.TP
.BI checkpoint_ver
checkpoint version.
.TP
.BI ckpt_flags
checkpoint flags.
.TP
.BI cur_node_segno
cur_node_segno array.
.TP
.BI cur_node_blkoff
cur_node_blkoff array.
.TP
.BI cur_data_segno
cur_data_segno array.
.TP
.BI cur_data_blkoff
cur_data_blkoff array.
.TP
.BI next_blkaddr
fsync dnodes.
.TP
.BI alloc_type
alloc_type array.
.TP
.BI crc
crc checksum.
.TP
.BI elapsed_time
elapsed mount time.
.RE
.TP
.BI \-\-nat " 0 or 1 or 2"
Inject nat entry specified by \fInid\fP, its argument means which nat pack is injected, where 0 choses the current valid nat automatically.
The available \fImb\fP of \fInat\fP are:
.RS 1.2i
.TP
.BI version
nat entry version.
.TP
.BI ino
nat entry ino.
.TP
.BI block_addr
nat entry block_addr.
.RE
.TP
.BI \-\-sit " 0 or 1 or 2"
Inject sit entry specified by \fIblk\fP, its argument means which sit pack is injected, where 0 choses the current valid sit automatically.
The available \fImb\fP of \fIsit\fP are:
.RS 1.2i
.TP
.BI vblocks
sit entry vblocks.
.TP
.BI valid_map
sit entry valid_map.
.TP
.BI mtime
sit entry mtime.
.RE
.TP
.BI \-\-ssa
Inject summary block or summary entry specified by \fIblk\fP.
The available \fImb\fP of \fIssa\fP are:
.RS 1.2i
.TP
.BI entry_type
summary block footer entry_type.
.TP
.BI check_sum
summary block footer check_sum.
.TP
.BI nid
summary entry nid.
.TP
.BI version
summary entry version.
.TP
.BI ofs_in_node
summary entry ofs_in_node.
.RE
.TP
.BI \-\-node
Inject node block specified by \fInid\fP.
The available \fImb\fP of \fInode\fP are:
.RS 1.2i
.TP
.BI nid
node footer nid.
.TP
.BI ino
node footer ino.
.TP
.BI flag
node footer flag.
.TP
.BI cp_ver
node footer cp_ver.
.TP
.BI next_blkaddr
node footer next_blkaddr.
.TP
.BI i_mode
inode i_mode.
.TP
.BI i_advise
inode i_advise.
.TP
.BI i_inline
inode i_inline.
.TP
.BI i_links
inode i_links.
.TP
.BI i_size
inode i_size.
.TP
.BI i_blocks
inode i_blocks.
.TP
.BI i_xattr_nid
inode i_xattr_nid.
.TP
.BI i_ext.fofs
inode i_ext.fofs.
.TP
.BI i_ext.blk_addr
inode i_ext.blk_addr.
.TP
.BI i_ext.len
inode i_ext.len.
.TP
.BI i_extra_isize
inode i_extra_isize.
.TP
.BI i_inline_xattr_size
inode i_inline_xattr_size.
.TP
.BI i_inode_checksum
inode i_inode_checksum.
.TP
.BI i_compr_blocks
inode i_compr_blocks.
.TP
.BI i_addr
inode i_addr array specified by \fIidx\fP.
.TP
.BI i_nid
inode i_nid array specified by \fIidx\fP.
.TP
.BI addr
{in}direct node nid/addr array specified by \fIidx\fP.
.RE
.TP
.BI \-\-dent
Inject dentry block or dir entry specified by \fInid\fP.
.RS 1.2i
.TP
.BI \-\-dots " 1 or 2"
The option means the "." or ".." directory entry of \fInid\fP is going to be injected.
.RE
.TP
.BI ""
The available \fImb\fP of \fIdent\fP are:
.RS 1.2i
.TP
.BI d_bitmap
dentry block d_bitmap.
.TP
.BI d_hash
dentry hash.
.TP
.BI d_ino
dentry ino.
.TP
.BI d_ftype
dentry ftype.
.TP
.BI filename
dentry filename, and corresponding d_hash and namelen are updated implicitly.
.RE
.TP
.BI \-\-dry\-run
Do not really inject.
.PP
.SH AUTHOR
This version of
.B inject.f2fs
has been written by Sheng Yong <shengyong@oppo.com>.
.SH AVAILABILITY
.B inject.f2fs
is available from git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs-tools.git.
.SH "SEE ALSO"
.BR mkfs.f2fs(8),
.BR fsck.f2fs(8),
.BR dump.f2fs(8),
.BR defrag.f2fs(8),
.BR resize.f2fs(8),
.BR sload.f2fs(8),
.BR defrag.f2fs(8).