# dpkg-fsys-usrunmess

## NAME



           dpkg-fsys-usrunmess - undoes the merged-/usr-via-aliased-dirs mess
    


## SYNOPSIS



           **dpkg-fsys-usrunmess**[**option**...]
    


## DESCRIPTION



           **dpkg-fsys-usrunmess** is a tool to fix up filesystems that have been
           installed anew with recent installers with unfortunate defaults or
           migrated to the broken merged /usr via aliased directories layout,
           which is **not** supported by dpkg.  See the dpkg FAQ.
    
           **Note** : In Debian its tech-ctte has decreed that on the release
           after bookworm the non-usrmerged layout is not going to be
           supported, and thus some of its maintainers might not fix issues
           or intentionally remove non-usrmerged support, so you will need
           decide and pick your poison.
    
           The program will perform the following overall actions:
    
           •   Check whether the system needs to be switched, otherwise do
               nothing,
    
           •   Check for dpkg database consistency and otherwise abort.
    
           •   Generate and install a regression prevention package, if
               requested on the command-line or otherwise on the prompt.
    
           •   Get the list of files and alternatives that need to be
               restored.
    
           •   Look for untracked kernel modules files that need to be moved
               too.
    
           •   Create a shadow hierarchy under _/.usrunmess_ , by creating the
               directories symlinks or hardlinking or copying the files as
               needed.
    
           •   Prompt for confirmation before proceeding, if requested on the
               command-line.
    
           •   Lock the dpkg database.
    
           •   Mark all packages as half-configured to force running
               maintainer scripts that might need to recreate files.
    
           •   Replace the aliased directories with the shadow ones, by
               creating a backup of the old symlinked directories and
               renaming the shadow ones over.
    
           •   Relabel MAC information for directories and symlinks if
               necessary.
    
           •   Remove backup symlinks.
    
           •   Remove old moved objects, but defer directory removal.
    
           •   Remove old deferred directories that are not referenced by
               dpkg-query.
    
           •   Remove shadow root directory.
    
           •   Register a **policy-rc.d** to disallow service actions, which
               means that services might need to be restarted afterwards,
               ideally via a reboot.
    
           •   Reconfigure all packages.
    
           •   Unregister the **policy-rc.d** and restore the alternatives state.
    
           **Note** : When running the program from some shells such as bash(1) or
           **zsh**(1), after executing it, you might need to request the shell to
           forget all remembered executable locations with for example "hash
           -r".
    
           **Note** : Some directories might linger after the migration in case
           they contain untracked files.  A list is printed once the script
           has finished for further investigation.
    
           **Warning** : Note that this operation has the potential to render the
           system unusable or broken in case of a sudden crash or reboot,
           unexpected state of the system, or possible bugs in the script.
           Be prepared with recovery media and consider doing backups
           beforehand.
    
           This program was introduced in dpkg 1.20.6.
    


## OPTIONS



           **-p** , **--prompt**
               Prompt at the time of no return, so that the debug output or
               the shadow hierarchy can be evaluated before proceeding.
    
           **--prevention**
           **--no-prevention**
               Enables or disables generating and installing a regression
               prevention package into the system.  If no option has been
               specified, the action to take will be prompted.
    
               The generated package contains the **Protected** field set to **yes**
               to protect against accidental removal of the package.
    
           **-n** , **--no-act**
           **--dry-run**
               This option enables the dry-run mode, where no destructive
               action takes place, only the preparatory part.
    
           **-?** , **--help**
               Show the usage message and exit.
    
           **--version**
               Show the version and exit.
    


## ENVIRONMENT



           **DPKG_USRUNMESS_NOACT**
               This setting defines whether to enable dry-run mode.
    


* * *