logo

oasis-root

Compiled tree of Oasis Linux based on own branch at <https://hacktivis.me/git/oasis/> git clone https://anongit.hacktivis.me/git/oasis-root.git

e2fsck.8 (15443B)


  1. .\" -*- nroff -*-
  2. .\" Copyright 1993, 1994, 1995 by Theodore Ts'o. All Rights Reserved.
  3. .\" This file may be copied under the terms of the GNU Public License.
  4. .\"
  5. .TH E2FSCK 8 "Aug 2021" "E2fsprogs version 1.46.4"
  6. .SH NAME
  7. e2fsck \- check a Linux ext2/ext3/ext4 file system
  8. .SH SYNOPSIS
  9. .B e2fsck
  10. [
  11. .B \-pacnyrdfkvtDFV
  12. ]
  13. [
  14. .B \-b
  15. .I superblock
  16. ]
  17. [
  18. .B \-B
  19. .I blocksize
  20. ]
  21. [
  22. .BR \-l | \-L
  23. .I bad_blocks_file
  24. ]
  25. [
  26. .B \-C
  27. .I fd
  28. ]
  29. [
  30. .B \-j
  31. .I external-journal
  32. ]
  33. [
  34. .B \-E
  35. .I extended_options
  36. ]
  37. [
  38. .B \-z
  39. .I undo_file
  40. ]
  41. .I device
  42. .SH DESCRIPTION
  43. .B e2fsck
  44. is used to check the ext2/ext3/ext4 family of file systems.
  45. For ext3 and ext4 file systems that use a journal, if the system has been
  46. shut down uncleanly without any errors, normally, after replaying the
  47. committed transactions in the journal, the file system should be
  48. marked as clean. Hence, for file systems that use journaling,
  49. .B e2fsck
  50. will normally replay the journal and exit, unless its superblock
  51. indicates that further checking is required.
  52. .PP
  53. .I device
  54. is a block device (e.g.,
  55. .IR /dev/sdc1 )
  56. or file containing the file system.
  57. .PP
  58. Note that in general it is not safe to run
  59. .B e2fsck
  60. on mounted file systems. The only exception is if the
  61. .B \-n
  62. option is specified, and
  63. .BR \-c ,
  64. .BR \-l ,
  65. or
  66. .B -L
  67. options are
  68. .I not
  69. specified. However, even if it is safe to do so, the results printed by
  70. .B e2fsck
  71. are not valid if the file system is mounted. If
  72. .B e2fsck
  73. asks whether or not you should check a file system which is mounted,
  74. the only correct answer is ``no''. Only experts who really know what
  75. they are doing should consider answering this question in any other way.
  76. .PP
  77. If
  78. .B e2fsck
  79. is run in interactive mode (meaning that none of
  80. .BR \-y ,
  81. .BR \-n ,
  82. or
  83. .BR \-p
  84. are specified), the program will ask the user to fix each problem found in the
  85. file system. A response of 'y' will fix the error; 'n' will leave the error
  86. unfixed; and 'a' will fix the problem and all subsequent problems; pressing
  87. Enter will proceed with the default response, which is printed before the
  88. question mark. Pressing Control-C terminates e2fsck immediately.
  89. .SH OPTIONS
  90. .TP
  91. .B \-a
  92. This option does the same thing as the
  93. .B \-p
  94. option. It is provided for backwards compatibility only; it is
  95. suggested that people use
  96. .B \-p
  97. option whenever possible.
  98. .TP
  99. .BI \-b " superblock"
  100. Instead of using the normal superblock, use an alternative superblock
  101. specified by
  102. .IR superblock .
  103. This option is normally used when the primary superblock has been
  104. corrupted. The location of backup superblocks is dependent on the
  105. file system's blocksize, the number of blocks per group, and features
  106. such as
  107. .BR sparse_super .
  108. .IP
  109. Additional backup superblocks can be determined by using the
  110. .B mke2fs
  111. program using the
  112. .B \-n
  113. option to print out where the superblocks exist, supposing
  114. .B mke2fs
  115. is supplied with arguments that are consistent with the file system's layout
  116. (e.g. blocksize, blocks per group,
  117. .BR sparse_super ,
  118. etc.).
  119. .IP
  120. If an alternative superblock is specified and
  121. the file system is not opened read-only, e2fsck will make sure that the
  122. primary superblock is updated appropriately upon completion of the
  123. file system check.
  124. .TP
  125. .BI \-B " blocksize"
  126. Normally,
  127. .B e2fsck
  128. will search for the superblock at various different
  129. block sizes in an attempt to find the appropriate block size.
  130. This search can be fooled in some cases. This option forces
  131. .B e2fsck
  132. to only try locating the superblock at a particular blocksize.
  133. If the superblock is not found,
  134. .B e2fsck
  135. will terminate with a fatal error.
  136. .TP
  137. .B \-c
  138. This option causes
  139. .B e2fsck
  140. to use
  141. .BR badblocks (8)
  142. program to do a read-only scan of the device in order to find any bad
  143. blocks. If any bad blocks are found, they are added to the bad block
  144. inode to prevent them from being allocated to a file or directory. If
  145. this option is specified twice, then the bad block scan will be done
  146. using a non-destructive read-write test.
  147. .TP
  148. .BI \-C " fd"
  149. This option causes
  150. .B e2fsck
  151. to write completion information to the specified file descriptor
  152. so that the progress of the file system
  153. check can be monitored. This option is typically used by programs
  154. which are running
  155. .BR e2fsck .
  156. If the file descriptor number is negative, then absolute value of
  157. the file descriptor will be used, and the progress information will be
  158. suppressed initially. It can later be enabled by sending the
  159. .B e2fsck
  160. process a SIGUSR1 signal.
  161. If the file descriptor specified is 0,
  162. .B e2fsck
  163. will print a completion bar as it goes about its business. This requires
  164. that e2fsck is running on a video console or terminal.
  165. .TP
  166. .B \-d
  167. Print debugging output (useless unless you are debugging
  168. .BR e2fsck ).
  169. .TP
  170. .B \-D
  171. Optimize directories in file system. This option causes e2fsck to
  172. try to optimize all directories, either by re-indexing them if the
  173. file system supports directory indexing, or by sorting and compressing
  174. directories for smaller directories, or for file systems using
  175. traditional linear directories.
  176. .IP
  177. Even without the
  178. .B \-D
  179. option,
  180. .B e2fsck
  181. may sometimes optimize a few directories --- for example, if
  182. directory indexing is enabled and a directory is not indexed and would
  183. benefit from being indexed, or if the index structures are corrupted
  184. and need to be rebuilt. The
  185. .B \-D
  186. option forces all directories in the file system to be optimized. This can
  187. sometimes make them a little smaller and slightly faster to search, but
  188. in practice, you should rarely need to use this option.
  189. .IP
  190. The
  191. .B \-D
  192. option will detect directory entries with duplicate names in a single
  193. directory, which e2fsck normally does not enforce for performance reasons.
  194. .TP
  195. .BI \-E " extended_options"
  196. Set e2fsck extended options. Extended options are comma
  197. separated, and may take an argument using the equals ('=') sign. The
  198. following options are supported:
  199. .RS 1.2i
  200. .TP
  201. .BI ea_ver= extended_attribute_version
  202. Set the version of the extended attribute blocks which
  203. .B e2fsck
  204. will require while checking the file system. The version number may
  205. be 1 or 2. The default extended attribute version format is 2.
  206. .TP
  207. .BI journal_only
  208. Only replay the journal if required, but do not perform any further checks
  209. or repairs.
  210. .TP
  211. .BI fragcheck
  212. During pass 1, print a detailed report of any discontiguous blocks for
  213. files in the file system.
  214. .TP
  215. .BI discard
  216. Attempt to discard free blocks and unused inode blocks after the full
  217. file system check (discarding blocks is useful on solid state devices and sparse
  218. / thin-provisioned storage). Note that discard is done in pass 5 AFTER the
  219. file system has been fully checked and only if it does not contain recognizable
  220. errors. However there might be cases where
  221. .B e2fsck
  222. does not fully recognize a problem and hence in this case this
  223. option may prevent you from further manual data recovery.
  224. .TP
  225. .BI nodiscard
  226. Do not attempt to discard free blocks and unused inode blocks. This option is
  227. exactly the opposite of discard option. This is set as default.
  228. .TP
  229. .BI no_optimize_extents
  230. Do not offer to optimize the extent tree by eliminating unnecessary
  231. width or depth. This can also be enabled in the options section of
  232. .BR /etc/e2fsck.conf .
  233. .TP
  234. .BI optimize_extents
  235. Offer to optimize the extent tree by eliminating unnecessary
  236. width or depth. This is the default unless otherwise specified in
  237. .BR /etc/e2fsck.conf .
  238. .TP
  239. .BI inode_count_fullmap
  240. Trade off using memory for speed when checking a file system with a
  241. large number of hard-linked files. The amount of memory required is
  242. proportional to the number of inodes in the file system. For large file
  243. systems, this can be gigabytes of memory. (For example, a 40TB file system
  244. with 2.8 billion inodes will consume an additional 5.7 GB memory if this
  245. optimization is enabled.) This optimization can also be enabled in the
  246. options section of
  247. .BR /etc/e2fsck.conf .
  248. .TP
  249. .BI no_inode_count_fullmap
  250. Disable the
  251. .B inode_count_fullmap
  252. optimization. This is the default unless otherwise specified in
  253. .BR /etc/e2fsck.conf .
  254. .TP
  255. .BI readahead_kb
  256. Use this many KiB of memory to pre-fetch metadata in the hopes of reducing
  257. e2fsck runtime. By default, this is set to the size of two block groups' inode
  258. tables (typically 4MiB on a regular ext4 file system); if this amount is more
  259. than 1/50th of total physical memory, readahead is disabled. Set this to zero
  260. to disable readahead entirely.
  261. .TP
  262. .BI bmap2extent
  263. Convert block-mapped files to extent-mapped files.
  264. .TP
  265. .BI fixes_only
  266. Only fix damaged metadata; do not optimize htree directories or compress
  267. extent trees. This option is incompatible with the -D and -E bmap2extent
  268. options.
  269. .TP
  270. .BI check_encoding
  271. Force verification of encoded filenames in case-insensitive directories.
  272. This is the default mode if the file system has the strict flag enabled.
  273. .TP
  274. .BI unshare_blocks
  275. If the file system has shared blocks, with the shared blocks read-only feature
  276. enabled, then this will unshare all shared blocks and unset the read-only
  277. feature bit. If there is not enough free space then the operation will fail.
  278. If the file system does not have the read-only feature bit, but has shared
  279. blocks anyway, then this option will have no effect. Note when using this
  280. option, if there is no free space to clone blocks, there is no prompt to
  281. delete files and instead the operation will fail.
  282. .IP
  283. Note that unshare_blocks implies the "-f" option to ensure that all passes
  284. are run. Additionally, if "-n" is also specified, e2fsck will simulate trying
  285. to allocate enough space to deduplicate. If this fails, the exit code will
  286. be non-zero.
  287. .RE
  288. .TP
  289. .B \-f
  290. Force checking even if the file system seems clean.
  291. .TP
  292. .B \-F
  293. Flush the file system device's buffer caches before beginning. Only
  294. really useful for doing
  295. .B e2fsck
  296. time trials.
  297. .TP
  298. .BI \-j " external-journal"
  299. Set the pathname where the external-journal for this file system can be
  300. found.
  301. .TP
  302. .BI \-k
  303. When combined with the
  304. .B \-c
  305. option, any existing bad blocks in the bad blocks list are preserved,
  306. and any new bad blocks found by running
  307. .BR badblocks (8)
  308. will be added to the existing bad blocks list.
  309. .TP
  310. .BI \-l " filename"
  311. Add the block numbers listed in the file specified by
  312. .I filename
  313. to the list of bad blocks. The format of this file is the same as the
  314. one generated by the
  315. .BR badblocks (8)
  316. program. Note that the block numbers are based on the blocksize
  317. of the file system. Hence,
  318. .BR badblocks (8)
  319. must be given the blocksize of the file system in order to obtain correct
  320. results. As a result, it is much simpler and safer to use the
  321. .B -c
  322. option to
  323. .BR e2fsck ,
  324. since it will assure that the correct parameters are passed to the
  325. .B badblocks
  326. program.
  327. .TP
  328. .BI \-L " filename"
  329. Set the bad blocks list to be the list of blocks specified by
  330. .IR filename .
  331. (This option is the same as the
  332. .B \-l
  333. option, except the bad blocks list is cleared before the blocks listed
  334. in the file are added to the bad blocks list.)
  335. .TP
  336. .B \-n
  337. Open the file system read-only, and assume an answer of `no' to all
  338. questions. Allows
  339. .B e2fsck
  340. to be used non-interactively. This option
  341. may not be specified at the same time as the
  342. .B \-p
  343. or
  344. .B \-y
  345. options.
  346. .TP
  347. .B \-p
  348. Automatically repair ("preen") the file system. This option will cause
  349. .B e2fsck
  350. to automatically
  351. fix any file system problems that can be safely fixed without human
  352. intervention. If
  353. .B e2fsck
  354. discovers a problem which may require the system administrator
  355. to take additional corrective action,
  356. .B e2fsck
  357. will print a description of the problem and then exit with the value 4
  358. logically or'ed into the exit code. (See the \fBEXIT CODE\fR section.)
  359. This option is normally used by the system's boot scripts. It may not
  360. be specified at the same time as the
  361. .B \-n
  362. or
  363. .B \-y
  364. options.
  365. .TP
  366. .B \-r
  367. This option does nothing at all; it is provided only for backwards
  368. compatibility.
  369. .TP
  370. .B \-t
  371. Print timing statistics for
  372. .BR e2fsck .
  373. If this option is used twice, additional timing statistics are printed
  374. on a pass by pass basis.
  375. .TP
  376. .B \-v
  377. Verbose mode.
  378. .TP
  379. .B \-V
  380. Print version information and exit.
  381. .TP
  382. .B \-y
  383. Assume an answer of `yes' to all questions; allows
  384. .B e2fsck
  385. to be used non-interactively. This option
  386. may not be specified at the same time as the
  387. .B \-n
  388. or
  389. .B \-p
  390. options.
  391. .TP
  392. .BI \-z " undo_file"
  393. Before overwriting a file system block, write the old contents of the block to
  394. an undo file. This undo file can be used with e2undo(8) to restore the old
  395. contents of the file system should something go wrong. If the empty string is
  396. passed as the undo_file argument, the undo file will be written to a file named
  397. e2fsck-\fIdevice\fR.e2undo in the directory specified via the
  398. \fIE2FSPROGS_UNDO_DIR\fR environment variable.
  399. WARNING: The undo file cannot be used to recover from a power or system crash.
  400. .SH EXIT CODE
  401. The exit code returned by
  402. .B e2fsck
  403. is the sum of the following conditions:
  404. .br
  405. \ 0\ \-\ No errors
  406. .br
  407. \ 1\ \-\ File system errors corrected
  408. .br
  409. \ 2\ \-\ File system errors corrected, system should
  410. .br
  411. \ \ \ \ be rebooted
  412. .br
  413. \ 4\ \-\ File system errors left uncorrected
  414. .br
  415. \ 8\ \-\ Operational error
  416. .br
  417. \ 16\ \-\ Usage or syntax error
  418. .br
  419. \ 32\ \-\ E2fsck canceled by user request
  420. .br
  421. \ 128\ \-\ Shared library error
  422. .br
  423. .SH SIGNALS
  424. The following signals have the following effect when sent to
  425. .BR e2fsck .
  426. .TP
  427. .B SIGUSR1
  428. This signal causes
  429. .B e2fsck
  430. to start displaying a completion bar or emitting progress information.
  431. (See discussion of the
  432. .B \-C
  433. option.)
  434. .TP
  435. .B SIGUSR2
  436. This signal causes
  437. .B e2fsck
  438. to stop displaying a completion bar or emitting progress information.
  439. .SH REPORTING BUGS
  440. Almost any piece of software will have bugs. If you manage to find a
  441. file system which causes
  442. .B e2fsck
  443. to crash, or which
  444. .B e2fsck
  445. is unable to repair, please report it to the author.
  446. .PP
  447. Please include as much information as possible in your bug report.
  448. Ideally, include a complete transcript of the
  449. .B e2fsck
  450. run, so I can see exactly what error messages are displayed. (Make sure
  451. the messages printed by
  452. .B e2fsck
  453. are in English; if your system has been
  454. configured so that
  455. .BR e2fsck 's
  456. messages have been translated into another language, please set the the
  457. .B LC_ALL
  458. environment variable to
  459. .B C
  460. so that the transcript of e2fsck's output will be useful to me.)
  461. If you
  462. have a writable file system where the transcript can be stored, the
  463. .BR script (1)
  464. program is a handy way to save the output of
  465. .B e2fsck
  466. to a file.
  467. .PP
  468. It is also useful to send the output of
  469. .BR dumpe2fs (8).
  470. If a specific inode or inodes seems to be giving
  471. .B e2fsck
  472. trouble, try running the
  473. .BR debugfs (8)
  474. command and send the output of the
  475. .BR stat (1u)
  476. command run on the relevant inode(s). If the inode is a directory, the
  477. .B debugfs
  478. .I dump
  479. command will allow you to extract the contents of the directory inode,
  480. which can sent to me after being first run through
  481. .BR uuencode (1).
  482. The most useful data you can send to help reproduce
  483. the bug is a compressed raw image dump of the file system, generated using
  484. .BR e2image (8).
  485. See the
  486. .BR e2image (8)
  487. man page for more details.
  488. .PP
  489. Always include the full version string which
  490. .B e2fsck
  491. displays when it is run, so I know which version you are running.
  492. .SH ENVIRONMENT
  493. .TP
  494. .BI E2FSCK_CONFIG
  495. Determines the location of the configuration file (see
  496. .BR e2fsck.conf (5)).
  497. .SH AUTHOR
  498. This version of
  499. .B e2fsck
  500. was written by Theodore Ts'o <tytso@mit.edu>.
  501. .SH SEE ALSO
  502. .BR e2fsck.conf (5),
  503. .BR badblocks (8),
  504. .BR dumpe2fs (8),
  505. .BR debugfs (8),
  506. .BR e2image (8),
  507. .BR mke2fs (8),
  508. .BR tune2fs (8)