Package: e2fsprogs Version: 1.47.1-1+b1 Severity: minor Tags: patch * What led up to the situation?
Checking for defects with test-[g|n]roff -mandoc -t -K utf8 -rF0 -rHY=0 -ww -b -z < "man page" [Use "groff -e ' $' <file>" to find trailing spaces.] ["test-groff" is a script in the repository for "groff"; is not shipped] (local copy and "troff" slightly changed by me). [The fate of "test-nroff" was decided in groff bug #55941.] * What was the outcome of this action? troff: backtrace: '/home/bg/git/groff/build/s-tmac/an.tmac':679: macro 'IR' troff: backtrace: file '<stdin>':79 troff:<stdin>:79: warning: trailing space in the line * What outcome did you expect instead? No output (no warnings). -.- General remarks and further material, if a diff-file exist, are in the attachments. -- System Information: Debian Release: trixie/sid APT prefers testing APT policy: (500, 'testing') Architecture: amd64 (x86_64) Kernel: Linux 6.11.5-amd64 (SMP w/2 CPU threads; PREEMPT) Locale: LANG=is_IS.iso88591, LC_CTYPE=is_IS.iso88591 (charmap=ISO-8859-1), LANGUAGE not set Shell: /bin/sh linked to /usr/bin/dash Init: sysvinit (via /sbin/init) Versions of packages e2fsprogs depends on: ii libblkid1 2.40.2-9 ii libc6 2.40-3 ii libcom-err2 1.47.1-1+b1 ii libext2fs2t64 1.47.1-1+b1 ii libss2 1.47.1-1+b1 ii libuuid1 2.40.2-9 ii logsave 1.47.1-1+b1 Versions of packages e2fsprogs recommends: pn e2fsprogs-l10n <none> Versions of packages e2fsprogs suggests: pn e2fsck-static <none> pn fuse2fs <none> pn gpart <none> ii parted 3.6-4+b1 -- no debconf information
Any program (person), that produces man pages, should check the output for defects by using (both groff and nroff) [gn]roff -mandoc -t -ww -b -z -K utf8 <man page> The same goes for man pages that are used as an input. For a style guide use mandoc -T lint -.- So any 'generator' should check its products with the above mentioned 'groff', 'mandoc', and additionally with 'nroff ...'. This is just a simple quality control measure. The 'generator' may have to be corrected to get a better man page, the source file may, and any additional file may. Common defects: Input text line longer than 80 bytes. Not removing trailing spaces (in in- and output). The reason for these trailing spaces should be found and eliminated. Not beginning each input sentence on a new line. Lines should thus be shorter. See man-pages(7), item 'semantic newline'. -.- The difference between the formatted output of the original and patched file can be seen with: nroff -mandoc <file1> > <out1> nroff -mandoc <file2> > <out2> diff -u <out1> <out2> and for groff, using "printf '%s\n%s\n' '.kern 0' '.ss 12 0' | groff -mandoc -Z - " instead of 'nroff -mandoc' Add the option '-t', if the file contains a table. Read the output of 'diff -u' with 'less -R' or similar. -.-. If 'man' (man-db) is used to check the manual for warnings, the following must be set: The option "-warnings=w" The environmental variable: export MAN_KEEP_STDERR=yes (or any non-empty value) or (produce only warnings): export MANROFFOPT="-ww -b -z" export MAN_KEEP_STDERR=yes (or any non-empty value) -.-. Output from "mandoc -T lint debugfs.8": (possibly shortened list) mandoc: debugfs.8:326:13: STYLE: unterminated quoted argument mandoc: debugfs.8:331:12: STYLE: unterminated quoted argument mandoc: debugfs.8:340:11: STYLE: unterminated quoted argument mandoc: debugfs.8:349:15: STYLE: unterminated quoted argument mandoc: debugfs.8:481:18: STYLE: unterminated quoted argument mandoc: debugfs.8:490:19: STYLE: unterminated quoted argument mandoc: debugfs.8:683:2: WARNING: line scope broken: TP breaks I -.-. Use the correct macro for the font change of a single argument or split the argument into two. 478:.BI journal_close 487:.BI journal_run -.-. Change - to \- if it shall be printed as a minus sign. debugfs.8:429:is specified, also clear num-1 inodes after the specified inode. debugfs.8:720:is specified, also set num-1 inodes after the specified inode. -.-. Change a HYPHEN-MINUS (code 0x2D) to a minus(-dash) (\-), if it is in front of a name for an option, is a symbol for standard input, is a single character used to indicate an option, or is in the NAME section (man-pages(7)). N.B. - (0x2D), processed as a UTF-8 file, is changed to a hyphen (0x2010, groff \[u2010] or \[hy]) in the output. 88:.I -d data_source_device 96:.I -b blocksize 102:.I -s superblock 106:.I -s 108:.I -b 113:.I -f cmd_file 122:.I -D 129:.I -R request 136:.I -V 187:.BI bmap " [ -a ] filespec logical_block [physical_block]" 196:.BI block_dump " '[ -x ] [-f filespec] block_num" 222:.BI close " [-a]" 224:.I -a 245:.BI dirty " [-clean]" 248:.I -clean 251:.BI dump " [-p] filespec out_file" 257:.I -p 271:.BI dx_hash " [-cv] [-h hash_alg] [-s hash_seed] filename" 275:.I -c 277:.I -v 285:.I -h 287:.I -s 290:.I -h 294:.I -s 297:.BI dump_extents " [-n] [-l] filespec" 301:.I -n 305:.I -l 319:.BI ea_get " [-f outfile]|[-xVC] [-r] filespec attr_name" 331:.BI ea_set " [-f infile] [-r] filespec attr_name attr_value 356:.BI feature " [fs_feature] [-fs_feature] ..." 361:.BI filefrag " [-dvr] filespec" 367:.I -d 372:.I -v 377:.I -r 414:.BI freefrag " [-c chunk_kb]" 447:.BI inode_dump " [-b]|[-e]|[-x] filespec" 481:.BI journal_open " [-c] [-v ver] [-f ext_jnl] 483:be enabled by supplying \fI-c\fR; checksum formats 2 and 3 can be 484:selected with the \fI-v\fR option. An external journal can be loaded 490:.BI journal_write " [-b blocks] [-r revoke] [-c] file 496:\fI-c\fR switch writes an uncommitted transaction. 523:.BI logdump " [-acsOS] [-b block] [-n num_trans ] [-i filespec] [-f journal_file] [output_file]" 576:.BI ls " [-l] [-c] [-d] [-p] [-r] filespec" 625:.BI ncheck " [-c] inode_num ..." 628:.I -c 632:.BI open " [-weficD] [-b blocksize] [-d image_filename] [-s superblock] [-z undo_file] device" 634:.I -f 638:.I -e 640:.IR -b ", " -c ", " -d ", " -i ", " -s ", " -w ", and " -D 731:.B set_inode_field -l 742:.B set_mmp_value -l 753:.B set_super_value -l 762:.BI show_super_stats " [-h]" 764:.I -h 825:.BI zap_block " [-f filespec] [-o offset] [-l length] [-p pattern] block_num" 829:.I -p 833:.I -f 839:.I -o 841:.I -l 848:.BI zap_block " [-f filespec] [-b bit] block_num" 852:.I -f -.-. Wrong distance between sentences in the input file. Separate the sentences and subordinate clauses; each begins on a new line. See man-pages(7) ("Conventions for source file layout") and "info groff" ("Input Conventions"). The best procedure is to always start a new sentence on a new line, at least, if you are typing on a computer. Remember coding: Only one command ("sentence") on each (logical) line. E-mail: Easier to quote exactly the relevant lines. Generally: Easier to edit the sentence. Patches: Less unaffected text. Search for two adjacent words is easier, when they belong to the same line, and the same phrase. The amount of space between sentences in the output can then be controlled with the ".ss" request. 43:program is an interactive file system debugger. It can be used to 80:etc. are tried without specifying the 109:option. (This 304:to only display the interior nodes in the extent tree. The 312:not stored in file system data structures. Hence, the values displayed 456:space, which is used to store in-line extended attributes. The 765:flag is given, only print out the superblock contents. Also available as -.-. Split lines longer than 80 characters into two or more lines. Appropriate break points are the end of a sentence and a subordinate clause; after punctuation marks. Line 523, length 96 .BI logdump " [-acsOS] [-b block] [-n num_trans ] [-i filespec] [-f journal_file] [output_file]" Line 632, length 94 .BI open " [-weficD] [-b blocksize] [-d image_filename] [-s superblock] [-z undo_file] device" -.-. Do not use more than two space characters between sentences or (better) only a new line character. 109:option. (This 304:to only display the interior nodes in the extent tree. The 312:not stored in file system data structures. Hence, the values displayed -.-. Split a punctuation from a single argument, if a two-font macro is meant 728:.I value. 739:.I value. 750:.I value. -.-. No space is needed before a quote (") at the end of a line 79:.IR ls ", " dump ", " -.-. Output from "test-groff -mandoc -t -K utf8 -rF0 -rHY=0 -ww -b -z ": troff: backtrace: '/home/bg/git/groff/build/s-tmac/an.tmac':679: macro 'IR' troff: backtrace: file '<stdin>':79 troff:<stdin>:79: warning: trailing space in the line
--- debugfs.8 2024-11-06 22:59:01.205786483 +0000 +++ debugfs.8.new 2024-11-07 08:46:31.583397460 +0000 @@ -40,8 +40,9 @@ device .SH DESCRIPTION The .B debugfs -program is an interactive file system debugger. It can be used to -examine and change the state of an ext2, ext3, or ext4 file system. +program is an interactive file system debugger. +It can be used to examine and change the state of an ext2, ext3, or +ext4 file system. .PP .I device is a block device (e.g., /dev/sdXX) or a file containing the file system. @@ -76,8 +77,8 @@ commands will not function properly. no safety checks are in place, and .B debugfs may fail in interesting ways if commands such as -.IR ls ", " dump ", " -etc. are tried without specifying the +.IR ls ", " dump , +etc., are tried without specifying the .I data_source_device using the .I \-d @@ -85,7 +86,7 @@ option. .B debugfs is a debugging tool. It has rough edges! .TP -.I -d data_source_device +.I \-d data_source_device Used with the .I \-i option, specifies that @@ -93,24 +94,25 @@ option, specifies that should be used when reading blocks not found in the ext2 image file. This includes data, directory, and indirect blocks. .TP -.I -b blocksize +.I \-b blocksize Forces the use of the given block size (in bytes) for the file system, rather than detecting the correct block size automatically. (This option is rarely needed; it is used primarily when the file system is extremely badly damaged/corrupted.) .TP -.I -s superblock +.I \-s superblock Causes the file system superblock to be read from the given block number, instead of using the primary superblock (located at an offset of 1024 bytes from the beginning of the file system). If you specify the -.I -s +.I \-s option, you must also provide the blocksize of the file system via the -.I -b -option. (This -option is rarely needed; it is used primarily when the file system is -extremely badly damaged/corrupted.) +.I \-b +option. +(This option is rarely needed; +it is used primarily when the file system is extremely badly +damaged/corrupted.) .TP -.I -f cmd_file +.I \-f cmd_file Causes .B debugfs to read in commands from @@ -119,30 +121,33 @@ and execute them. When .B debugfs is finished executing those commands, it will exit. .TP -.I -D +.I \-D Causes .B debugfs to open the device using Direct I/O, bypassing the buffer cache. Note that some Linux devices, notably device mapper as of this writing, do not support Direct I/O. .TP -.I -R request +.I \-R request Causes .B debugfs to execute the single command .IR request , and then exit. .TP -.I -V +.I \-V print the version number of .B debugfs and exit. .TP .BI \-z " undo_file" Before overwriting a file system block, write the old contents of the block to -an undo file. This undo file can be used with e2undo(8) to restore the old -contents of the file system should something go wrong. If the empty string is -passed as the undo_file argument, the undo file will be written to a file named +an undo file. +This undo file can be used with +.BR e2undo (8) +to restore the old contents of the file system should something go wrong. +If the empty string is passed as the undo_file argument, +the undo file will be written to a file named debugfs-\fIdevice\fR.e2undo in the directory specified via the \fIE2FSPROGS_UNDO_DIR\fR environment variable. @@ -184,7 +189,7 @@ Print the blocks used by the inode .I filespec to stdout. .TP -.BI bmap " [ -a ] filespec logical_block [physical_block]" +.BI bmap " [ \-a ] filespec logical_block [physical_block]" Print or set the physical block number corresponding to the logical block number .I logical_block in the inode @@ -193,7 +198,7 @@ If the .I \-a flag is specified, try to allocate a block if necessary. .TP -.BI block_dump " '[ -x ] [-f filespec] block_num" +.BI block_dump " '[ \-x ] [\-f filespec] block_num" Dump the file system block given by .I block_num in hex and ASCII format to the console. If the @@ -219,9 +224,9 @@ Change the current working directory to Change the root directory to be the directory .IR filespec . .TP -.BI close " [-a]" +.BI close " [\-a]" Close the currently open file system. If the -.I -a +.I \-a option is specified, write out any changes to the superblock and block group descriptors to all of the backup superblocks, not just to the master superblock. @@ -242,19 +247,19 @@ Search the directory for .IR filename . .TP -.BI dirty " [-clean]" +.BI dirty " [\-clean]" Mark the file system as dirty, so that the superblocks will be written on exit. Additionally, clear the superblock's valid flag, or set it if -.I -clean +.I \-clean is specified. .TP -.BI dump " [-p] filespec out_file" +.BI dump " [\-p] filespec out_file" Dump the contents of the inode .I filespec to the output file .IR out_file . If the -.I -p +.I \-p option is given set the owner, group and permissions information on .I out_file to match @@ -268,13 +273,13 @@ number, otherwise use the .B s_mmp_block field in the superblock to locate and use the existing MMP block. .TP -.BI dx_hash " [-cv] [-h hash_alg] [-s hash_seed] filename" +.BI dx_hash " [\-cv] [\-h hash_alg] [\-s hash_seed] filename" Calculate the directory hash of .IR filename . The -.I -c +.I \-c option will casefold the filename before calculating the hash. The -.I -v +.I \-v option will make the .B dx_hash command more verbose and print the hash algorithm and hash seed to @@ -282,53 +287,54 @@ calculate the hash. If a file system is open, use the hash_seed and default hash_algorithm used by the file system, although these can be overridden by the -.I -h +.I \-h and -.I -s +.I \-s options. The hash algorithm specified with -.I -h +.I \-h may be .BR legacy , " half_md4" ", or " tea . The hash seed specified with -.I -s +.I \-s must be in UUID format. .TP -.BI dump_extents " [-n] [-l] filespec" +.BI dump_extents " [\-n] [\-l] filespec" Dump the extent tree of the inode .IR filespec . The -.I -n +.I \-n flag will cause .B dump_extents -to only display the interior nodes in the extent tree. The -.I -l +to only display the interior nodes in the extent tree. +The +.I \-l flag will cause .B dump_extents to only display the leaf nodes in the extent tree. .IP (Please note that the length and range of blocks for the last extent in an interior node is an estimate by the extents library functions, and is -not stored in file system data structures. Hence, the values displayed -may not necessarily by accurate and does not indicate a problem or -corruption in the file system.) +not stored in file system data structures. +Hence, the values displayed may not necessarily by accurate and +does not indicate a problem or corruption in the file system.) .TP .B dump_unused Dump unused blocks which contain non-null bytes. .TP -.BI ea_get " [-f outfile]|[-xVC] [-r] filespec attr_name" +.BI ea_get " [\-f outfile]|[\-xVC] [\-r] filespec attr_name" Retrieve the value of the extended attribute .I attr_name in the file .I filespec and write it either to stdout or to \fIoutfile\fR. .TP -.BI ea_list " filespec +.BI ea_list " filespec" List the extended attributes associated with the file .I filespec to standard output. .TP -.BI ea_set " [-f infile] [-r] filespec attr_name attr_value +.BI ea_set " [\-f infile] [\-r] filespec attr_name attr_value" Set the value of the extended attribute .I attr_name in the file @@ -337,7 +343,7 @@ to the string value .I attr_value or read it from \fIinfile\fR. .TP -.BI ea_rm " filespec attr_names... +.BI ea_rm " filespec attr_names..." Remove the extended attribute .I attr_name from the file \fIfilespec\fR. @@ -346,35 +352,35 @@ from the file \fIfilespec\fR. Expand the directory .IR filespec . .TP -.BI fallocate " filespec start_block [end_block] +.BI fallocate " filespec start_block [end_block]" Allocate and map uninitialized blocks into \fIfilespec\fR between logical block \fIstart_block\fR and \fIend_block\fR, inclusive. If \fIend_block\fR is not supplied, this function maps until it runs out of free disk blocks or the maximum file size is reached. Existing mappings are left alone. .TP -.BI feature " [fs_feature] [-fs_feature] ..." +.BI feature " [fs_feature] [\-fs_feature] ..." Set or clear various file system features in the superblock. After setting or clearing any file system features that were requested, print the current state of the file system feature set. .TP -.BI filefrag " [-dvr] filespec" +.BI filefrag " [\-dvr] filespec" Print the number of contiguous extents in .IR filespec . If .I filespec is a directory and the -.I -d +.I \-d option is not specified, .I filefrag will print the number of contiguous extents for each file in the directory. The -.I -v +.I \-v option will cause .I filefrag print a tabular listing of the contiguous extents in the file. The -.I -r +.I \-r option will cause .I filefrag to do a recursive listing of the directory. @@ -411,7 +417,7 @@ blocks starting at block number .I block will be marked as not allocated. .TP -.BI freefrag " [-c chunk_kb]" +.BI freefrag " [\-c chunk_kb]" Report free space fragmentation on the currently open file system. If the .I \-c @@ -426,7 +432,7 @@ Free the inode specified by .IR filespec . If .I num -is specified, also clear num-1 inodes after the specified inode. +is specified, also clear num\-1 inodes after the specified inode. .TP .BI get_quota " quota_type id" Display quota information for given quota type (user, group, or project) and ID. @@ -444,7 +450,7 @@ showing its tree structure. Print a listing of the inodes which use the one or more blocks specified on the command line. .TP -.BI inode_dump " [-b]|[-e]|[-x] filespec" +.BI inode_dump " [\-b]|[\-e]|[\-x] filespec" Print the contents of the inode data structure in hex and ASCII format. The .I \-b @@ -453,7 +459,9 @@ option causes the command to only dump t array. The .I \-e option causes the command to only dump the contents of the extra inode -space, which is used to store in-line extended attributes. The +space, +which is used to store in-line extended attributes. +The .I \-x option causes the command to dump the extra inode space interpreted and extended attributes. This is useful to debug corrupted inodes @@ -475,25 +483,27 @@ to do this, use the program. This is just a call to the low-level library, which sets up the superblock and block descriptors. .TP -.BI journal_close +.B journal_close Close the open journal. .TP -.BI journal_open " [-c] [-v ver] [-f ext_jnl] -Opens the journal for reading and writing. Journal checksumming can -be enabled by supplying \fI-c\fR; checksum formats 2 and 3 can be -selected with the \fI-v\fR option. An external journal can be loaded -from \fIext_jnl\fR. +.BI journal_open " [\-c] [\-v ver] [\-f ext_jnl]" +Opens the journal for reading and writing. +Journal checksumming can be enabled by supplying \fI\-c\fR; +checksum formats 2 and 3 can be selected with the \fI\-v\fR option. +An external journal can be loaded from \fIext_jnl\fR. .TP -.BI journal_run +.B journal_run Replay all transactions in the open journal. .TP -.BI journal_write " [-b blocks] [-r revoke] [-c] file -Write a transaction to the open journal. The list of blocks to write -should be supplied as a comma-separated list in \fIblocks\fR; the -blocks themselves should be readable from \fIfile\fR. A list of -blocks to revoke can be supplied as a comma-separated list in -\fIrevoke\fR. By default, a commit record is written at the end; the -\fI-c\fR switch writes an uncommitted transaction. +.BI journal_write " [\-b blocks] [\-r revoke] [\-c] file" +Write a transaction to the open journal. +The list of blocks to write should be supplied as a comma-separated list in +\fIblocks\fR; +the blocks themselves should be readable from \fIfile\fR. +A list of blocks to revoke can be supplied as a comma-separated list in +\fIrevoke\fR. +By default, a commit record is written at the end; +the \fI\-c\fR switch writes an uncommitted transaction. .TP .BI kill_file " filespec" Deallocate the inode @@ -520,7 +530,8 @@ which is a hard link to .IR filespec . Note this does not adjust the inode reference counts. .TP -.BI logdump " [-acsOS] [-b block] [-n num_trans ] [-i filespec] [-f journal_file] [output_file]" +.BI logdump " [\-acsOS] [\-b block] [\-n num_trans ] [\-i filespec] [\-f \ +journal_file] [output_file]" Dump the contents of the ext3 journal. By default, dump the journal inode as specified in the superblock. However, this can be overridden with the .I \-i @@ -573,7 +584,7 @@ Instead, it will stop only when the enti .I num_trans transactions. .TP -.BI ls " [-l] [-c] [-d] [-p] [-r] filespec" +.BI ls " [\-l] [\-c] [\-d] [\-p] [\-r] filespec" Print a listing of the files in the directory .IR filespec . The @@ -622,22 +633,23 @@ and .I minor device numbers must be specified. .TP -.BI ncheck " [-c] inode_num ..." +.BI ncheck " [\-c] inode_num ..." Take the requested list of inode numbers, and print a listing of pathnames to those inodes. The -.I -c +.I \-c flag will enable checking the file type information in the directory entry to make sure it matches the inode's type. .TP -.BI open " [-weficD] [-b blocksize] [-d image_filename] [-s superblock] [-z undo_file] device" +.BI open " [\-weficD] [\-b blocksize] [\-d image_filename] [\-s superblock] \ +[\-z undo_file] device" Open a file system for editing. The -.I -f +.I \-f flag forces the file system to be opened even if there are some unknown or incompatible file system features which would normally prevent the file system from being opened. The -.I -e +.I \-e flag causes the file system to be opened in exclusive mode. The -.IR -b ", " -c ", " -d ", " -i ", " -s ", " -w ", and " -D +.IR \-b ", " \-c ", " \-d ", " \-i ", " \-s ", " \-w ", and " \-D options behave the same as the command-line options to .BR debugfs . .TP @@ -680,7 +692,6 @@ If this causes the inode pointed to by .I pathname to have no other references, deallocate the file. This command functions as the unlink() system call. -.I .TP .BI rmdir " filespec" Remove the directory @@ -717,7 +728,7 @@ Mark inode .I filespec as in use in the inode bitmap. If .I num -is specified, also set num-1 inodes after the specified inode. +is specified, also set num\-1 inodes after the specified inode. .TP .BI set_inode_field " filespec field value" Modify the inode specified by @@ -725,10 +736,10 @@ Modify the inode specified by so that the inode field .I field has value -.I value. +.IR value . The list of valid inode fields which can be set via this command can be displayed by using the command: -.B set_inode_field -l +.B set_inode_field \-l Also available as .BR sif . .TP @@ -736,10 +747,10 @@ Also available as Modify the multiple-mount protection (MMP) data so that the MMP field .I field has value -.I value. +.IR value . The list of valid MMP fields which can be set via this command can be displayed by using the command: -.B set_mmp_value -l +.B set_mmp_value \-l Also available as .BR smmp . .TP @@ -747,10 +758,10 @@ Also available as Set the superblock field .I field to -.I value. +.IR value . The list of valid superblock fields which can be set via this command can be displayed by using the command: -.B set_super_value -l +.B set_super_value \-l Also available as .BR ssv . .TP @@ -759,10 +770,12 @@ Display .B debugfs parameters such as information about currently opened file system. .TP -.BI show_super_stats " [-h]" -List the contents of the super block and the block group descriptors. If the -.I -h -flag is given, only print out the superblock contents. Also available as +.BI show_super_stats " [\-h]" +List the contents of the super block and the block group descriptors. +If the +.I \-h +flag is given, only print out the superblock contents. +Also available as .BR stats . .TP .BI stat " filespec" @@ -822,34 +835,35 @@ Copy the contents of into a newly-created file in the file system named .IR out_file . .TP -.BI zap_block " [-f filespec] [-o offset] [-l length] [-p pattern] block_num" +.BI zap_block " [\-f filespec] [\-o offset] [\-l length] [\-p pattern] \ +block_num" Overwrite the block specified by .I block_num with zero (NUL) bytes, or if -.I -p +.I \-p is given use the byte specified by .IR pattern . If -.I -f +.I \-f is given then .I block_num is relative to the start of the file given by .IR filespec . The -.I -o +.I \-o and -.I -l +.I \-l options limit the range of bytes to zap to the specified .I offset and .I length relative to the start of the block. .TP -.BI zap_block " [-f filespec] [-b bit] block_num" +.BI zap_block " [\-f filespec] [\-b bit] block_num" Bit-flip portions of the physical .IR block_num . If -.I -f +.I \-f is given, then .I block_num is a logical block relative to the start of