diff options
Diffstat (limited to 'sbin/fsdb/fsdb.8')
-rw-r--r-- | sbin/fsdb/fsdb.8 | 235 |
1 files changed, 235 insertions, 0 deletions
diff --git a/sbin/fsdb/fsdb.8 b/sbin/fsdb/fsdb.8 new file mode 100644 index 0000000..a55a56f --- /dev/null +++ b/sbin/fsdb/fsdb.8 @@ -0,0 +1,235 @@ +.\" $NetBSD: fsdb.8,v 1.2 1995/10/08 23:18:08 thorpej Exp $ +.\" +.\" Copyright (c) 1995 John T. Kohl +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. The name of the author may not be used to endorse or promote products +.\" derived from this software without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR `AS IS'' AND ANY EXPRESS OR +.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +.\" DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, +.\" INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +.\" (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +.\" SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +.\" ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +.\" POSSIBILITY OF SUCH DAMAGE. +.\" +.Dd September 14, 1995 +.Dt FSDB 8 +.Os FreeBSD +.Sh NAME +.Nm fsdb +.Nd FFS debugging/editing tool +.Sh SYNOPSIS +.Nm +.Op Fl d +.Op Fl f +.Ar fsname +.Sh DESCRIPTION +.Nm +opens +.Ar fsname +(usually a raw disk partition) and runs a command loop +allowing manipulation of the file system's inode data. You are prompted +to enter a command with +.Ic "fsdb (inum X)>" +where +.Va X +is the currently selected i-number. The initial selected inode is the +root of the filesystem (i-number 2). +The command processor uses the +.Xr libedit 3 +library, so you can use command line editing to reduce typing if desired. +When you exit the command loop, the file system superblock is marked +dirty and any buffered blocks are written to the file system. +.Pp +The +.Fl d +option enables additional debugging output (which comes primarily from +.Xr fsck 8 -derived +code). +.Pp +The +.Fl f +option is left for historical reasons and has no meaning. +.Sh COMMANDS +Besides the built-in +.Xr libedit 3 +commands, +.Nm +supports these commands: +.Pp +.Bl -tag -width indent -compact +.It Cm help +Print out the list of accepted commands. +.Pp +.It Cm inode Ar i-number +Select inode +.Ar i-number +as the new current inode. +.Pp +.It Cm back +Revert to the previously current inode. +.Pp +.It Cm clri +Clear the current inode. +.Pp +.It Cm lookup Ar name +.It Cm cd Ar name +Find +.Ar name +in the current directory and make its inode the current inode. +.Ar Name +may be a multi-component name or may begin with slash to indicate that +the root inode should be used to start the lookup. If some component +along the pathname is not found, the last valid directory encountered is +left as the active inode. +.br +This command is valid only if the starting inode is a directory. +.Pp +.It Cm active +.It Cm print +Print out the active inode. +.Pp +.It Cm uplink +Increment the active inode's link count. +.Pp +.It Cm downlink +Decrement the active inode's link count. +.Pp +.It Cm linkcount Ar number +Set the active inode's link count to +.Ar number . +.Pp +.It Cm ls +List the current inode's directory entries. This command is valid only +if the current inode is a directory. +.Pp +.It Cm rm Ar name +.It Cm del Ar name +Remove the entry +.Ar name +from the current directory inode. This command is valid only +if the current inode is a directory. +.Pp +.It Cm ln Ar ino Ar name +Create a link to inode +.Ar ino +under the name +.Ar name +in the current directory inode. This command is valid only +if the current inode is a directory. +.Pp +.It Cm chinum Ar dirslot Ar inum +Change the i-number in directory entry +.Ar dirslot +to +.Ar inum . +.Pp +.It Cm chname Ar dirslot Ar name +Change the name in directory entry +.Ar dirslot +to +.Ar name . +This command cannot expand a directory entry. You can only rename an +entry if the name will fit into the existing directory slot. +.Pp +.It Cm chtype Ar type +Change the type of the current inode to +.Ar type . +.Ar type +may be one of: +.Em file , +.Em dir , +.Em socket , +or +.Em fifo . +.Pp +.It Cm chmod Ar mode +Change the mode bits of the current inode to +.Ar mode . +You cannot change the file type with this subcommand; use +.Ic chtype +to do that. +.Pp +.It Cm chflags Ar flags +Change the file flags of the current inode to +.Ar flags . +.Pp +.It Cm chown Ar uid +Change the owner of the current inode to +.Ar uid . +.Pp +.It Cm chgrp Ar gid +Change the group of the current inode to +.Ar gid . +.Pp +.It Cm chgen Ar gen +Change the generation number of the current inode to +.Ar gen . +.Pp +.It Cm mtime Ar time +.It Cm ctime Ar time +.It Cm atime Ar time +Change the modification, change, or access time (respectively) on the +current inode to +.Ar time . +.Ar Time +should be in the format +.Em YYYYMMDDHHMMSS[.nsec] +where +.Em nsec +is an optional nanosecond specification. If no nanoseconds are specified, the +.Va mtimensec , +.Va ctimensec , +or +.Va atimensec +field will be set to zero. +.Pp +.It Cm quit, Cm q, Cm exit, Em <EOF> +Exit the program. +.El +.Sh SEE ALSO +.Xr libedit 3 , +.Xr fs 5 , +.Xr fsck 8 , +.Xr clri 8 . +.Sh BUGS +Manipulation of ``short'' symlinks doesn't work (in particular, don't +try changing a symlink's type). +.br +You must specify modes as numbers rather than symbolic names. +.br +There are a bunch of other things that you might want to do which +.Nm +doesn't implement. +.br +The +.Xr libedit 3 +reference page is not yet written. +.Sh HISTORY +.Nm +uses the source code for +.Xr fsck 8 +to implement most of the file system manipulation code. The remainder of +.Nm +first appeared in NetBSD, written by John T. Kohl. +.br +Peter Wemm ported it to FreeBSD. +.Sh WARNING +Use this tool with extreme caution--you can damage an FFS file system +beyond what +.Xr fsck 8 +can repair. |