fsdb_udfs(8) 맨 페이지 - 윈디하나의 솔라나라

개요

섹션
맨 페이지 이름
검색(S)

fsdb_udfs(8)

System Administration Commands                                    fsdb_udfs(8)



NAME
       fsdb_udfs - udfs file system debugger

SYNOPSIS
       fsdb [-F] udfs [generic_option] [-o specific_option] special

DESCRIPTION
       The  fsdb_udfs command is an interactive tool that can be used to patch
       up a damaged udfs file system. fsdb_udfs has conversions  to  translate
       block  and  i-numbers into their corresponding disk addresses. Mnemonic
       offsets to access different  parts  of  an  inode  are  also  included.
       Mnemonic  offsets  greatly  simplify  the process of correcting control
       block entries or descending the file system tree.


       fsdb contains several error-checking routines to verify inode and block
       addresses. These can be disabled if necessary by invoking fsdb with the
       -o option or by using the o command.


       fsdb reads one block at a time, and therefore works with raw as well as
       block  I/O  devices. A buffer management routine is used to retain com‐
       monly used blocks of data in order to reduce the number of read  system
       calls.  All  assignment operations result in an immediate write-through
       of the corresponding block. In order to modify any portion of the disk,
       fsdb must be invoked with the -w option.


       Wherever  possible, adb-like syntax has been adopted to promote the use
       of fsdb through familiarity.

OPTIONS
       The following options are supported:

       -o specific_option    Specify udfs file system specific  options  in  a
                             comma-separated  list with no intervening spaces.
                             The following specific options are supported:

                             o           Override some error conditions.


                             p=string    Set prompt to string.


                             w           Open for write.


                             ?           Display usage.



USAGE
       Numbers are considered hexadecimal by default.  The  user  has  control
       over how data is to be displayed or accepted. The base command displays
       or sets the input and output base. Once set, all input defaults to this
       base  and  all output displays in this base. The base can be overridden
       temporarily for input by preceding hexadecimal numbers by 0x, preceding
       decimal  numbers with a 0t, or octal numbers with a 0. Hexadecimal num‐
       bers beginning with a-f or A -F must be preceded with a 0x  to  distin‐
       guish them from commands.


       Disk addressing by fsdb is at the byte level. However, fsdb offers many
       commands to convert a desired inode, directory  entry,  block,  and  so
       forth,  to  a byte address. After the address has been calculated, fsdb
       records the result in the current address (dot).


       Several global values are maintained by fsdb:

           o      Current base (referred to as base)


           o      Current address (referred to as dot)


           o      Current inode (referred to as inode)


           o      Current count (referred to as count)


           o      Current type (referred to as type)



       Most commands use the preset value of dot in their execution. For exam‐
       ple,

          > 2:inode



       first sets the value of dot (.) to 2, colon (:), signifies the start of
       a command, and the inode command sets inode to 2. A count is  specified
       after  a  comma  (,). Once set, count remains at this value until a new
       command is encountered that resets the value back to 1 (the default).


       So, if

         > 2000,400/X



       is entered, 400 hex longs are listed from 2000, and when completed, the
       value  of  dot  is  2000  +  400  *  sizeof (long). If a RETURN is then
       entered, the output routine uses the current values of dot, count,  and
       type and displays 400 more hex longs. An asterisk (*) causes the entire
       block to be displayed. An example showing several commands and the  use
       of RETURN would be:


         > 2:ino; 0:dir?d



       or

         > 2:ino; 0:db:block?d



       The  two  examples  are  synonymous  for getting to the first directory
       entry of the root of the file system. Once there, subsequently entering
       a RETURN, plus (+), or minus (-) advances to subsequent entries. Notice
       that

         > 2:inode; :ls



       or

         > :ls /



       is again synonymous.

   Expressions
       The following symbols are recognized by fsdb:

       RETURN       Update the value of dot by the current value of  type  and
                    display using the current value of count.


       #            Update  the  value  of dot by specifying a numeric expres‐
                    sion. Specify numeric expressions using addition, subtrac‐
                    tion,  multiplication,  and  division operators ( +, -, *,
                    and %). Numeric expressions are  evaluated  from  left  to
                    right and can use parentheses. After evaluation, the value
                    of dot is updated.


       , count      Update the count indicator. The global value of  count  is
                    updated  to  count. The value of count remains until a new
                    command is run. A count specifier of * attempts to show  a
                    blocks's worth of information. The default for count is 1.


       ? f          Display  in  structured style with format specifier f. See
                    Formatted Output.


       / f          Display in unstructured style with format specifier f. See
                    Formatted Output.


       .            Display the value of dot.


       +e           Increment the value of dot by the expression e. The amount
                    actually incremented is dependent on the size of type: dot
                    = dot +  e  *  sizeof (type) The default for e is 1.


       −e           Decrement the value of dot by the expression e. See +.


       *e           Multiply the value of dot by the expression e. Multiplica‐
                    tion and division don't use type. In the above calculation
                    of dot, consider the sizeof (type) to be 1.


       %e           Divide the value of dot by the expression e. See *.


       < name       Restore  an address saved in register name. name must be a
                    single letter or digit.


       > name       Save an address in register name. name must  be  a  single
                    letter or digit.


       = f          Display  indicator.  If f is a legitimate format specifier
                    (see Formatted Output), then the value of dot is displayed
                    using   format   specifier  f.  Otherwise,  assignment  is
                    assumed. See = [s] [e].


       = [s] [e]    Change the value of dot using an assignment indicator. The
                    address  pointed to by dot has its contents changed to the
                    value of the expression e or to the  ASCII  representation
                    of  the quoted (") string s. This can be useful for chang‐
                    ing directory names or ASCII file information.


       =+ e         Change the value of dot using an  incremental  assignment.
                    The address pointed to by dot has its contents incremented
                    by expression e.


       =- e         Change the value of dot using  a  decremental  assignment.
                    Decrement the contents of the address pointed to by dot by
                    expression e.


   Commands
       A command must be prefixed by a colon (:). Only enough letters  of  the
       command to uniquely distinguish it are needed. Multiple commands can be
       entered on one line by separating them by a SPACE,  TAB,  or  semicolon
       (;).


       To  view a potentially unmounted disk in a reasonable manner, fsdb sup‐
       ports the cd, pwd, ls, and find commands. The functionality of each  of
       these  commands  basically  matches  that  of its UNIX counterpart. See
       cd(1), pwd(1), ls(1), and find(1) for details. The *, ,, ?, and - wild‐
       card characters are also supported.


       The following commands are supported:

       base[=b]

           Display  or  set  the base. All input and output is governed by the
           current base. Without the =  b, displays the current  base.  Other‐
           wise, sets the current base to b. Base is interpreted using the old
           value of base, so to ensure correctness use the 0, 0t, or 0x prefix
           when changing the base. The default for base is hexadecimal.


       block

           Convert the value of dot to a block address.


       cd [dir]

           Change  the  current directory to directory dir. The current values
           of inode and dot are also updated. If dir is not specified, changes
           directories to inode 2, root (/).


       directory

           If the current inode is a directory, converts the value of dot to a
           directory slot offset in that directory, and dot now points to this
           entry.


       file

           Set  the  value of dot as a relative block count from the beginning
           of the file. The value of dot is updated to the first byte of  this
           block.


       find dir [-name n] | [-inum i]

           Find  files by name or i-number. Recursively searches directory dir
           and below for file names whose i-number matches  i  or  whose  name
           matches pattern n. Only one of the two options (-name or -inum) can
           be used at one time. The find -print is not necessary or accepted.


       fill=p

           Fill an area of disk with pattern p. The area of disk is  delimited
           by dot and count.


       inode

           Convert  the  value  of dot to an inode address. If successful, the
           current value of inode is updated as well as the value of dot. As a
           convenient  shorthand,  if  :inode  appears at the beginning of the
           line, the value of dot is set to the current inode and  that  inode
           is displayed in inode format.


       ls [ -R ] [-l ] pat1 pat2...

           List  directories  or  files.  If no file is specified, the current
           directory is assumed. Either or both of the  options  can  be  used
           (but,  if  used, must be specified before the filename specifiers).
           Wild card characters  are  available  and  multiple  arguments  are
           acceptable.  The long listing shows only the i-number and the name;
           use the inode command with ?i to get more information.


       override

           Toggle the value of override. Some error conditions might be  over‐
           ridden if override is toggled to on.


       prompt "p"

           Change the fsdb prompt to p. p must be enclosed in quotes.


       pwd

           Display the current working directory.


       quit

           Quit fsdb.


       tag

           Convert the value of dot and if this is a valid tag, print the vol‐
           ume structure according to the tag.


       !

           Escape to the shell.


   Inode Commands
       In addition to the above commands, several  other  commands  deal  with
       inode  fields  and  operate  directly  on the current inode (they still
       require the colon (:). They can be  used  to  more  easily  display  or
       change  the particular fields. The value of dot is only used by the :db
       and :ib commands. Upon completion of the command, the value of  dot  is
       changed so that it points to that particular field. For example,

         > :ln=+1



       increments  the  link  count of the current inode and sets the value of
       dot to the address of the link count field.


       The following inode commands are supported:

       at      Access time


       bs      Block size


       ct      Creation time


       gid     Group id


       ln      Link number


       mt      Modification time


       md      Mode


       maj     Major device number


       min     Minor device number


       nm      This command actually operates on  the  directory  name  field.
               Once poised at the desired directory entry (using the directory
               command), this command allows you  to  change  or  display  the
               directory name. For example,


                  > 7:dir:nm="foo"


               gets  the  7th directory entry of the current inode and changes
               its name to foo. Directory names cannot be made larger than the
               field  allows.  If  an attempt is made to make a directory name
               larger than the field allows,, the string is truncated  to  fit
               and a warning message is displayed.


       sz      File size


       uid     User ID


       uniq    Unique ID


   Formatted Output
       Formatted  output  comes  in  two styles and many format types. The two
       styles of formatted output are: structured and unstructured. Structured
       output  is  used to display inodes, directories, and so forth. Unstruc‐
       tured output displays raw data.


       Format specifiers are preceded by the slash (/) or  question  mark  (?)
       character. type is updated as necessary upon completion.


       The following format specifiers are preceded by the ? character:

       i    Display as inodes in the current base.


       d    Display as directories in the current base.



       The following format specifiers are preceded by the / character:

       b        Display as bytes in the current base.


       c        Display as characters.


       o | O    Display as octal shorts or longs.


       d | D    Display as decimal shorts or longs.


       x | X    Display as hexadecimal shorts or longs.


EXAMPLES
       Example 1 Using fsdb as a calculator for complex arithmetic



       The  following command displays 2010 in decimal format, and is an exam‐
       ple of using fsdb as a calculator for complex arithmetic.


         > 2000+400%(20+20)=D


       Example 2 Using fsdb to display an i-number in inode format



       The following command displays the i-number  386  in  inode  format.386
       becomes the current inode.


         > 386:ino?i


       Example 3 Using fsdb to change the link count



       The  following  command changes the link count for the current inode to
       4.


         > :ln=4


       Example 4 Using fsdb to increment the link count



       The following command increments the link count by 1.


         > :ln=+1


       Example 5 Using fsdb to display the creation time as a hexadecimal long



       The following command displays the creation time as a hexadecimal long.


         > :ct=X


       Example 6 Using fsdb to display the modification time in time format



       The following command displays the modification time in time format.


         > :mt=t


       Example 7 Using fsdb to display in ASCII



       The following command displays, in ASCII, block 0 of the  file  associ‐
       ated with the current inode.


         > 0:file/c


       Example  8  Using  fsdb  to  display the directory entries for the root
       inode



       The following command displays the first block's directory entries  for
       the  root  inode of this file system. This command stops prematurely if
       the EOF is reached.


         > 2:ino,*?d


       Example 9 Using fsdb to change the current inode



       The following command changes the current inode to that associated with
       the  5th  directory  entry  (numbered from 0) of the current inode. The
       first logical block of the file is then displayed in ASCII.


         > 5:dir:inode; 0:file,*/c


       Example 10 Using fsdb to change the i-number



       The following command changes the i-number for the 7th  directory  slot
       in the root directory to 3.


         > 2:inode; 7:dir=3


       Example 11 Using fsdb to change the name field



       The  following  command changes the name field in the directory slot to
       name.


          > 7:dir:nm="name"


       Example 12 Using fsdb to display the a block



       The following command displays the 3rd block of the  current  inode  as
       directory entries.

       Example 13 Using fsdb to set the contents of address



       The  following command sets the contents of address 2050 to 0xffffffff.
       0xffffffff can be truncated, depending on the current type.


         > 2050=0xffff


       Example 14 Using fsdb to place an ASCII string at an address



       The following command places the ASCII string  this  is  some  text  at
       address 1c92434.


         > 1c92434="this is some text"


ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:


       tab()  box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) ATTRIBUTE TYPEAT‐
       TRIBUTE VALUE _ Availabilitysystem/file-system/udfs


SEE ALSO
       dir(5), attributes(7), clri(8), fsck_udfs(8)



Oracle Solaris 11.4               14 May 2018                     fsdb_udfs(8)
맨 페이지 내용의 저작권은 맨 페이지 작성자에게 있습니다.
RSS ATOM XHTML 5 CSS3