bad directory names - SCO

This is a discussion on bad directory names - SCO ; I had a 3.2 5.0.6 server crash pretty hard the other day (power outtage, bad UPS...yeah, I know). I have run into a rather interesting problem on recovery, though. There are many, *many* directories that are missing the '.' directory ...

+ Reply to Thread
Results 1 to 2 of 2

Thread: bad directory names

  1. bad directory names

    I had a 3.2 5.0.6 server crash pretty hard the other day (power
    outtage, bad UPS...yeah, I know). I have run into a rather
    interesting problem on recovery, though. There are many, *many*
    directories that are missing the '.' directory entry. However, I can
    create the '.' directory with no problem.

    Here's the screwy part. After creating the '.', and doing an 'ls
    -al', I see the following:

    drwxr-xr-x 2 root sys 512 Nov 16 06:45 .
    drwxrwxrwx 396 root root 8192 Nov 15 17:34 ..
    drwxrwxrwx 3 root root 512 Nov 16 06:45 .;34672


    Some of the directories even have a '..;34672' directory.

    I have been fairly successfull in removing the '..;34672' directories
    (using unlink. rmdir fails), however, sco wont let me remove the
    single-dot entries. The OS believe they are the actual '.' directory.
    I can even cd into the directory about 50 times (got bored after that)
    with the results being:

    # pwd
    /full/path/to/parent/directory/.;34672/.;34672/.;34672/.;34672/.;34672/.;34672/.;34672/
    ..;34672/.;34672/.;34672/.;34672/.;34672/.;34672/.;34672/.;34672/.;34672/.;34672/
    ..;34672/.;34672/.;34672/.;34672/.;34672/.;34672/.;34672/.;34672/.;34672/.;34672/
    ..;34672/.;34672/.;34672/.;34672/.;34672/.;34672/.;34672/.;34672/.;34672/.;34672/
    ..;34672


    If I "mkdir .", then unmount the filesystem and run "fsck -d -ofull -D
    -s filesystem", I get prompted for duplicate '.' directories, which I
    answer yes to fix, but the (in my mind) wrong directory gets removed.
    It removes the '.' directory and not the '.;34672' directory.

    Any tips on how I can get rid of these things other than a complete
    wipe and re-install?

    Thanks,
    David


  2. Re: bad directory names

    "dazole" wrote:

    > I had a 3.2 5.0.6 server crash pretty hard the other day (power
    > outtage, bad UPS...yeah, I know). I have run into a rather
    > interesting problem on recovery, though. There are many, *many*
    > directories that are missing the '.' directory entry. However, I can
    > create the '.' directory with no problem.
    >
    > Here's the screwy part. After creating the '.', and doing an 'ls
    > -al', I see the following:
    >
    > drwxr-xr-x 2 root sys 512 Nov 16 06:45 .
    > drwxrwxrwx 396 root root 8192 Nov 15 17:34 ..
    > drwxrwxrwx 3 root root 512 Nov 16 06:45 .;34672
    >
    >
    > Some of the directories even have a '..;34672' directory.
    >
    > I have been fairly successfull in removing the '..;34672' directories
    > (using unlink. rmdir fails), however, sco wont let me remove the
    > single-dot entries. The OS believe they are the actual '.' directory.
    > I can even cd into the directory about 50 times (got bored after that)
    > with the results being:
    >
    > # pwd
    > /full/path/to/parent/directory/.;34672/.;34672/.;34672/.;34672/.;34672/.;34672/.;34672/
    > .;34672/.;34672/.;34672/.;34672/.;34672/.;34672/.;34672/.;34672/.;34672/.;34672/
    > .;34672/.;34672/.;34672/.;34672/.;34672/.;34672/.;34672/.;34672/.;34672/.;34672/
    > .;34672/.;34672/.;34672/.;34672/.;34672/.;34672/.;34672/.;34672/.;34672/.;34672/
    > .;34672
    >
    >
    > If I "mkdir .", then unmount the filesystem and run "fsck -d -ofull -D
    > -s filesystem", I get prompted for duplicate '.' directories, which I
    > answer yes to fix, but the (in my mind) wrong directory gets removed.
    > It removes the '.' directory and not the '.;34672' directory.
    >
    > Any tips on how I can get rid of these things other than a complete
    > wipe and re-install?


    You can fix individual directories by recreating them:

    # cd /full/path/to/parent
    # mkdir directory.new
    # mv directory/* directory.new/*

    This moves everything that isn't a ".*" file. In most directories that
    will be everything (other than "." ".." and any messed up ".;number"
    files). In some cases you may need to manually move other dot files.
    You can do things like:

    # mv directory/.[a-zA-Z0-9]* directory.new

    Once you've removed everything useful from the directory, you can
    obliterate the bad directory itself. Don't use `rm -rf`, because it may
    misbehave and follow the "..;number" links and wipe out the parent
    directory. I don't _know_ that it would do that, but it isn't worth
    risking.

    Instead, start with a simple `rmdir directory`. I expect that will
    fail. Try to remove any unusual links from the directory and do it
    again:

    # unlink "directory/.;34672"
    # unlink "directory/..;34672"
    # rmdir directory

    If you can't get to a point where `rmdir` is willing to do its job, try:

    # unlink directory

    and if that still won't go, try `clri`. You need to collect the inode
    number and filesystem device name:

    # ls -lid directory
    94773 drwxrwxrwx 3 root root 512 Nov 16 06:45 directory
    ^^^^^ inode#

    # df -v directory
    Mount Dir Filesystem blocks used free %used
    directory /dev/u 226194926 100201524 125993402 45%
    ### ^^^^^^ filesystem device name

    # clri /dev/u 94773
    ### ^^^^^^^^ ^^^^^
    ### device name inode # from `ls -lid`
    ### from `df

    Make sure the device name here is correct. If you give the wrong device
    name, you'll destroy some completely unrelated file!

    When the old one is completely gone, finish the job by renaming the new
    directory into place:

    # mv directory.new directory

    Once you've cleaned up all the directories, unmount the filesystem and
    fsck it:

    # fsck -o full /dev/u

    If it's the root filesystem, reboot, go to single-user mode, and:

    # fsck -o full /dev/root

    Good luck...

    >Bela<


+ Reply to Thread