git: HAMMER Utility - Add catastrophic recovery feature

看板DFBSD_commit作者時間15年前 (2010/08/17 15:01), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
commit b9107f58ed117184a899e7d65ffd8038f2f6ee52 Author: Matthew Dillon <dillon@apollo.backplane.com> Date: Mon Aug 16 23:49:16 2010 -0700 HAMMER Utility - Add catastrophic recovery feature * hammer -f <devices> recover <empty_target_dir> * Add a catastrophic recovery feature. A HAMMER filesystem image is scanned (using the -f <blockdevs> specification). Any buffer which looks like a B-Tree node is then sub-scanned for inode, directory, and data records and the filesystem is reconstructed in the specified target directory. * The files and directories are initially named after the object id and are renamed and moved as directory entries are found to resolve the fragmentory information. * File writes strip trailing 0's (data records are not limited to the file EOF), but will properly truncate the file if/when the related inode record is found. * Currently no attempt is made to restore owner, group, file modes, softlinks, or hardlinks (only one link will be restored). TODO: Currently a valid volume header is required, but the only thing we actually need from it is the vol_buf_beg field. This field could be guessed or passed in on the command line in a future update to the recovery code. Summary of changes: sbin/hammer/Makefile | 2 +- sbin/hammer/blockmap.c | 73 +++++- sbin/hammer/cmd_recover.c | 552 +++++++++++++++++++++++++++++++++++++++ sbin/hammer/cmd_show.c | 14 +- sbin/hammer/hammer.8 | 15 + sbin/hammer/hammer.c | 8 + sbin/hammer/hammer.h | 1 + sbin/hammer/hammer_util.h | 1 + sbin/hammer/ondisk.c | 19 ++- sys/vfs/hammer/hammer.h | 1 + sys/vfs/hammer/hammer_cursor.c | 17 ++ sys/vfs/hammer/hammer_reblock.c | 7 +- 12 files changed, 690 insertions(+), 20 deletions(-) create mode 100644 sbin/hammer/cmd_recover.c http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/b9107f58ed117184a899e7d65ffd8038f2f6ee52 -- DragonFly BSD source repository
文章代碼(AID): #1CQZEoCC (DFBSD_commit)