package: torque-server

title: pbs_server(8)

summary: start a pbs batch server

text:
# pbs_server(8)

## NAME
pbs_server - start a pbs batch server

## SYNOPSIS
pbs_server [-a active] [-c] [-d config_path] [-e] [-F] [-f] [-h] [-l location] [-p port] [-t type] [-v] [-A acctfile] [-D] [-H hostname] [-L logfile] [-M mom_port] [-n don't send hierarchy] [-R momRPP_port] [-S scheduler_port] [--about] [--ha] [--help] [--version]

## DESCRIPTION
The pbs_server command starts the operation of a batch server on the local host. Typically, this command will be in a local boot file such as /etc/rc.local . If the batch server is already in execution, pbs_server will exit with an error. To insure that the pbs_server command is not runnable by the general user community, the server will only execute if its real and effective uid is zero.

The server will record a diagnostic message in a log file for any error occurrence. The log files are maintained in the server_logs directory below the home directory of the server. If the log file cannot be opened, the diagnostic message is written to the system console.

## OPTIONS
-a active

Specifies if scheduling is active or not. This sets the server attribute scheduling. If the option argument is "true" ("True", "t", "T", or "1"), the server is active and the PBS job scheduler will be called. If the argument is "false" ("False", "f", "F", or "0), the server is idle, and the scheduler will not be called and no jobs will be run. If this option is not specified, the server will retain the prior value of the scheduling attribute.

-c

Wait 10 minutes before contacting moms. Any mom reporting in does not get pinged if starting pbs_server before moms.

-d config_path

Specifies the path of the directory which is home to the servers configuration files, PBS_HOME. A host may have multiple servers. Each server must have a different configuration directory. The default configuration directory is given by the symbol $PBS_SERVER_HOME which is typically /usr/spool/PBS.

-e

Accept status update from any mom. Adds node to nodes file.

-F

Do not fork. Use when running under systemd.

-f

Force overwrite of server database.

-h

Print help information.

-l location

Specifies where to find the scheduler (for example, Moab) when it does not reside on the same host as Torque. Example: pbs_server -1 <other_host>:<other_port>

-p port

Specifies the port number on which the server will listen for batch requests. If multiple servers are running on a single host, each must have its own unique port number. This option is for use in testing with multiple batch systems on a single host.

-t type

If the job is rerunnable or restartable, and -t create is specified, the server will discard any existing configuration files, queues, and jobs, and initialize configuration files to the default values. The server is idled. If -t is not specified, job states will remain the same.

-v

Shows version.

-A acctfile

Specifies an absolute path name of the file to use as the accounting file. If not specified, the file is named for the current date in the PBS_HOME/server_priv/accounting directory.

-D

Debug mode. Do not fork.

-H hostname

Causes the server to start under a different hostname as obtained from gethostname(2). Useful for servers with multiple network interfaces to support connections from clients over an interface that has a hostname assigned that differs from the one that is returned by gethostname(2).

-L logfile

Specifies an absolute path name of the file to use as the log file. If not specified, the file is one named for the current date in the PBS_HOME/server_logs directory, see the -d option.

-M mom_port

Specifies the host name and/or port number on which the server should connect the job executor, MOM. The option argument, mom_conn, is one of the forms: host_name, [:]port_number, or host_name:port_number. If host_name not specified, the local host is assumed. If port_number is not specified, the default port is assumed. See the -M option for pbs_mom(8).

-n don't send heirarchy

Directs pbs_server to not send the hierarchy to all the MOMs on startup. Instead, the hierarchy is only sent if a MOM requests it. This flag works only in conjunction with the local MOM hierarchy feature.

-R mom_RPPport

Specifies the port number on which the the server should query the up/down status of Mom. See the -R option for pbs_mom(8).

-S scheduler_port

Specifies the port number to which the server should connect when contacting the Scheduler. By default pbs_server looks for the scheduler on the loopback address at port 15004. The -S option changes the default to the value given in the option argument. The option argument, scheduler_conn, is of the same syntax as under the -M option.

--about

Shows information about pbs_server.

--ha

Enables high availability mode.

--help

Prints help information.

--version

Shows version and commit information.

## FILES
$PBS_SERVER_HOME/server_priv

default directory for configuration files, typically /usr/spool/pbs/server_priv

$PBS_SERVER_HOME/server_logs

directory for log files recorded by the server.

## Signal Handling
On receipt of the following signals, the server performs the defined action:

SIGHUP

The current server log and accounting log are closed and reopened. This allows for the prior log to be renamed and a new log started from the time of the signal.

SIGINT

Causes an orderly shutdown of pbs_server.

SIGUSR1, SIGUSR2

Causes server to increase and decrease logging levels, respectively.

SIGTERM

Causes an orderly shutdown of pbs_server.

SIGSHUTDN

On systems (Unicos) where SIGSHUTDN is defined, it also causes an orderly shutdown of the server.

SIGPIPE

This signal is ignored.

All other signals have their default behavior installed.

## EXIT STATUS
If the server command fails to begin batch operation, the server exits with a value greater than zero.

## SEE ALSO
qsub (1B), pbs_connect(3B), pbs_mom(8B), pbs_sched_basl(8B), pbs_sched_tcl(8B), pbsnodes(8B), qdisable(8B), qenable(8B), qmgr(1B), qrun(8B), qstart(8B), qstop(8B), qterm(8B), and the PBS External Reference Specification.


torsocks

package: torsocks

title: torsocks(8)

text:
# torsocks(8)

## NAME
torsocks — Library for intercepting outgoing network connections and redirecting them through the Tor SOCKS proxy.

## DESCRIPTION
Torsocks library overloads the libc symbols use for Internet communication such as connect(2) system call. Using that technique, the library sends everything through the Tor network including DNS resolution done by the application.

For DNS, gethostbyname(3) family functions are rerouted through Tor. Please note that the ISC res_* API is currently not supported.

Here is an example on how to use torsocks library with ssh(1):

$ LD_PRELOAD=/path/to/libtorsocks.so ssh -l kalexander -p 1234 prism.nsa.gov [...]

## SHELL USAGE
Set LD_PRELOAD to load the library then use applications as normal. The syntax to force preload of the library for different shells is specified below:

Bash, Ksh and Bourne shell:

$ export LD_PRELOAD=/path/to/libtorsocks.so

C Shell:

$ setenv LD_PRELOAD=/path/to/libtorsocks.so

This process can be automated (for Bash, Bourne and Korn shell users) for a single command or for all commands in a shell session by using the torsocks(1) script.

You can also setup torsocks(1) in such a way that all processes automatically use it, a very useful configuration. Please refer to the torsocks script documentation for more information.

## ENVIRONMENT VARIABLES
TORSOCKS_CONF_FILE

This environment variable overrides the default location of the torsocks configuration file. This variable is not honored if the program torsocks is embedded in is setuid.

TORSOCKS_LOG_LEVEL

Enable logging level of torsocks library. By default, warnings and errors are printed (level 3). Note that each level includes the lower ones except the 1 which disables any possible logging. (default: 3)

1

No log at all.

2

Error messages.

3

Warning messages.

4

Notice messages.

5

Debug messages.

TORSOCKS_LOG_TIME

Control whether or not the time is added to each logging line. (default: 1)

TORSOCKS_LOG_FILE_PATH

If set, torsocks will log in the file set by this variable. (default: stderr)

TORSOCKS_USERNAME

Set the username for the SOCKS5 authentication method. Password MUST be set also with the variable below.

TORSOCKS_PASSWORD

Set the password for the SOCKS5 authentication method. Username MUST be set also with the variable above.

TORSOCKS_TOR_ADDRESS

Set the Tor address. (default: 127.0.0.1)

TORSOCKS_TOR_PORT

Set the Tor port. (default: 9050)

TORSOCKS_ALLOW_INBOUND

Allow inbound connections so the application can accept and listen for connections.

TORSOCKS_ISOLATE_PID

Set the username and password for the SOCKS5 authentication method to a PID/current time based value automatically. Username and Password MUST NOT be set.

## KNOWN ISSUES

### DNS
Torsocks is not able to send DNS queries through Tor since UDP is not supported. Thus, any UDP socket is denied. However, DNS queries that can be intercept are sent to Tor and sent back to the caller.

### ERRORS
Torsocks might generate error messages and print them to stderr when there are problems with the configuration file or the SOCKS negotiation with the Tor daemon. The TORSOCKS_LOG_LEVEL environment variable controls that behavior as well as the log file option. Keep in mind that this library can output on the stderr of the application.

## LIMITATIONS
Outgoing TCP connections can only be proxified through the Tor network.

Torsocks forces the libc resolver to use TCP for name queries, if it does this it does it regardless of whether or not the DNS to be queried is local or not. This introduces overhead and should only be used when needed.

Torsocks uses ELF dynamic loader features to intercept dynamic function calls from programs in which it is embedded. As a result, non-ELF executables, or executables that make system calls directly with the system call trap (int 0x80) are not supported.

## FILES
/etc/tor/torsocks.conf - default torsocks configuration file

## SEE ALSO
torsocks.conf(5), torsocks(1)

## AUTHOR
David Goulet <dgoulet@ev0ke.net>

branch: sisyphus


title: tpm2-abrmd(8)

text:
# tpm2-abrmd(8)

## NAME
tpm2-abrmd - TPM2 access broker and resource management daemon

## SYNOPSIS
tpm2-abrmd [-m][-e][-i][-o][-l logger-name][-r][-s][-g /dev/urandom][-t conf]

## DESCRIPTION
tpm2-abrmd is a daemon that implements the TPM access broker and resource manager as described by the Trusted Computing Group (TGC) in the “TSS System Level API and TPM Command Transmission Interface Specification”. This daemon uses the DBus system bus and some pipes to communicate with clients.

## OPTIONS
-t, --tcti

Provide the daemon with a string that describes the TCTI and how to configure it for communication with the next component down the TSS2 stack. This string is formatted as "tcti-name:tcti-conf" where:

'tcti-name'

The name of the TCTI library shared object file. Libraries are found using the same algorithm as dlopen (3). If the TCTI library file name follows the naming convention: libtss2-tcti-<name>.so.0 where <name> is the name for the TCTI, the value of <name> may be supplied in place of the full library file name. See 'EXAMPLES' below.

'tcti-conf'

The configuration string passed to the TCTI library upon initialization.

If this option is omitted (or a NULL string provided) then a default TCTI is used in it's default configuration. If the string does not contain a colon then it will be interpreted as only the 'tcti-name'. To provide only the configuration string (using the default TCTI) then the first character in the string passed to this option must be a colon followed by the configuration string. See examples below.

-o, --allow-root

Allow daemon to run as root. If this option is not provided the daemon will refused to run as the root user. Use of this option is not recommended.

-m, --max-connections

Set an upper bound on the number of concurrent client connections allowed. Once this number of client connections is reached new connections will be rejected with an error. If the option is not specified the default is 27.

-f, --flush-all

Flush all objects and sessions when daemon is started.

-l, --logger

Direct logging output to named logging target. Supported targets are stdout and syslog. If the logger option is not specified the default is stdout.

-e, --max-sessions

Set and upper bound on the number of sessions that each client connection is allowed to create (loaded or active) at any one time. If the option is not specified the default is 4.

-r, --max-transients

Set an upper bound on the number of transient objects that each client connection allowed to load. Once this number of objects is reached attempts to load new transient objects will produce an error. If the option is not specified the default is 27.

-n, --dbus-name

Claim the given name on dbus. This option overrides the default of com.intel.tss2.Tabrmd.

-g, --prng-seed-file

Read seed for pseudo-random number generator from the provided file.

-s, --session

Connect daemon to the session dbus. If the option is not specified the daemon connects to the system dbus.

-v, --version

Display version string.

## EXAMPLES
Execute daemon with default TCTI and options:

tpm2-abrmd

Execute daemon with default TCTI and provided config string:

tpm2-abrmd --tcti=":/dev/tpm0"

This is equivalent to:

tpm2-abrmd --tcti="device:/dev/tpm0"

tpm2-abrmd --tcti="libtss2-tcti-device.so.0:/dev/tpm0"

Have daemon use swtpm TPM2 Simulator tcti library

This connects to a TPM2 simulator via a TCP swtpm.

tpm2-abrmd --tcti="swtpm"

tpm2-abrmd --tcti="libtss2-tcti-swtpm.so.0"

Have daemon use tcti library 'libtss2-tcti-swtpm.so.0' and config string

tpm2-abrmd --tcti=swtpm:host=127.0.0.1,port=5555"

tpm2-abrmd --tcti="libtss2-tcti-swtpm.so.0:host=127.0.0.1,port=5555"

## AUTHOR
Philip Tricca <philip.b.tricca@intel.com>

## SEE ALSO
tcsd(8)

## COLOPHON
This page is part of the 3.0.0 release of Intel's TPM2 Access Broker & Resource Management Daemon. A description of the project, information about reporting bugs, and the latest version of this page can be found at https://github.com/01org/tpm2-abrmd/.


tcsd

package: trousers

title: tcsd(8)

text:
# tcsd(8)

TCG Software Stack

## NAME
tcsd - daemon that manages Trusted Computing resources

## SYNOPSIS
tcsd [-f] [-e] [-c <configfile> ] [-h]

## DESCRIPTION
Trousers is an open-source TCG Software Stack (TSS), released under the BSD License. Trousers aims to be compliant with the current (1.1b) and upcoming (1.2) TSS specifications available from the Trusted Computing Group website: http://www.trustedcomputinggroup.org.

tcsd is a user space daemon that should be (according to the TSS spec) the only portal to the TPM device driver. At boot time, tcsd should be started, it should open the TPM device driver and from that point on, all requests to the TPM should go through the TSS stack. The tcsd manages TPM resources and handles requests from TSP's both local and remote.

-f, --foreground

run the daemon in the foreground

-e

attempt to connect to software TPMs over TCP

-c, --config <configfile>

use the provided configuration file rather than the default configuration file

-h, --help

display help message

## ACCESS CONTROL
There are two types of access control for the tcsd, access to the daemon's socket itself and access to specific commands internal to the tcsd. Access to the tcsd's port should be controlled by the system administrator using firewall rules. If using iptables, the following rule will allow a specific host access to the tcsd:

\# iptables -A INPUT -s $IP_ADDRESS -p tcp --destination-port 30003 -j ACCEPT

Access to individual commands internal to the tcsd is configured by the tcsd configuration file's "remote_ops" directive. Each function call in the TCS API is reachable by a unique ordinal. Each labeled "remote op" actually defines a set of ordinals (usually more than one) necessary to accomplish the operation. So, for example, the "random" operation enables the ordinals for opening and closing a context, calling TCS_StirRandom and TCS_GetRandom, as well as TCS_FreeMemory. By default, connections from localhost will allow any ordinals.

## DATA FILES
TSS applications have access to 2 different kinds of 'persistant' storage. 'User' persistant storage has the lifetime of that of the application using it and therefore is destroyed when an application exits. User PS is controlled by the TSP of the application. 'System' persistent storage is controlled by the TCS and stays valid across application lifetimes, tcsd restarts and system resets. Data registered in system PS stays valid until an application requests that it be removed. User PS files are by default stored as /var/tpm/user.{pid} and the system PS file by default is /var/tpm/system.data. The system PS file is initially created when ownership of the TPM is first taken.

## CONFIGURATION
tcsd configuration is stored by default in /etc/tcsd.conf

## DEBUG OUTPUT
If TrouSerS has been compiled with debugging enabled, the debugging output can be supressed by setting the TSS_DEBUG_OFF environment variable.

## DEVICE DRIVERS
tcsd is compatible with the IBM Research TPM device driver available from http://ibmswtpm.sourceforge.net/ and the TPM device driver available from http://sf.net/projects/tpmdd, which is also available in the upstream Linux kernel and many Linux distros.

## CONFORMING TO
tcsd conforms to the Trusted Computing Group Software Specification version 1.1 Golden

## SEE ALSO
tcsd.conf(5)

## AUTHOR
Kent Yoder

## REPORTING BUGS
Report bugs to <trousers-tech@lists.sf.net>


tsocks

package: tsocks

title: tsocks(8)

text:
# tsocks(8)

## NAME
tsocks - Library for intercepting outgoing network connections and redirecting them through a SOCKS server.

## SYNOPSIS
Set LD_PRELOAD to load the library then use applications as normal

The syntax to force preload of the library for different shells is specified below:

Bash, Ksh and Bourne shell -

export LD_PRELOAD=libtsocks.so

C Shell -

setenv LD_PRELOAD=libtsocks.so

This process can be automated (for Bash, Bourne and Korn shell users) for a single command or for all commands in a shell session by using the tsocks(1) script

You can also setup tsocks in such a way that all processes automatically use it, a very useful configuration. For more information on this configuration see the CAVEATS section of this manual page.

## DESCRIPTION
tsocks is a library to allow transparent SOCKS proxying. It wraps the normal connect() function. When a connection is attempted, it consults the configuration file (which is defined at configure time but defaults to /etc/tsocks.conf) and determines if the IP address specified is local. If it is not, the library redirects the connection to a SOCKS server specified in the configuration file. It then negotiates that connection with the SOCKS server and passes the connection back to the calling program.

tsocks is designed for use in machines which are firewalled from then internet. It avoids the need to recompile applications like lynx or telnet so they can use SOCKS to reach the internet. It behaves much like the SOCKSified TCP/IP stacks seen on other platforms.

### ARGUMENTS
Most arguments to tsocks are provided in the configuration file (the location of which is defined at configure time by the --with-conf=<file> argument but defaults to /etc/tsocks.conf). The structure of this file is documented in tsocks.conf(8)

Some configuration options can be specified at run time using environment variables as follows:

TSOCKS_CONFFILE

This environment variable overrides the default location of the tsocks configuration file. This variable is not honored if the program tsocks is embedded in is setuid. In addition this environment variable can be compiled out of tsocks with the --disable-envconf argument to configure at build time

TSOCKS_DEBUG

This environment variable sets the level of debug output that should be generated by tsocks (debug output is generated in the form of output to standard error). If this variable is not present by default the logging level is set to 0 which indicates that only error messages should be output. Setting it to higher values will cause tsocks to generate more messages describing what it is doing. If set to -1 tsocks will output absolutely no error or debugging messages. This is only needed if tsocks output interferes with a program it is embedded in. Message output can be permanently compiled out of tsocks by specifying the --disable-debug option to configure at build time

TSOCKS_DEBUG_FILE

This option can be used to redirect the tsocks output (which would normally be sent to standard error) to a file. This variable is not honored if the program tsocks is embedded in is setuid. For programs where tsocks output interferes with normal operation this option is generally better than disabling messages (with TSOCKS_DEBUG = -1)

TSOCKS_USERNAME

This environment variable can be used to specify the username to be used when version 5 SOCKS servers request username/password authentication. This overrides the default username that can be specified in the configuration file using 'default_user', see tsocks.conf(8) for more information. This variable is ignored for version 4 SOCKS servers.

TSOCKS_PASSWORD

This environment variable can be used to specify the password to be used when version 5 SOCKS servers request username/password authentication. This overrides the default password that can be specified in the configuration file using 'default_pass', see tsocks.conf(8) for more information. This variable is ignored for version 4 SOCKS servers.

### DNS ISSUES
tsocks will normally not be able to send DNS queries through a SOCKS server since SOCKS V4 works on TCP and DNS normally uses UDP. Version 1.5 and up do however provide a method to force DNS lookups to use TCP, which then makes them proxyable. This option can only enabled at compile time, please consult the INSTALL file for more information.

### ERRORS
tsocks will generate error messages and print them to stderr when there are problems with the configuration file or the SOCKS negotiation with the server if the TSOCKS_DEBUG environment variable is not set to -1 or and --disable-debug was not specified at compile time. This output may cause some problems with programs that redirect standard error.

### CAVEATS
tsocks will not in the above configuration be able to provide SOCKS proxying to setuid applications or applications that are not run from a shell. You can force all applications to LD_PRELOAD the library by placing the path to libtsocks in /etc/ld.so.preload. Please make sure you correctly enter the full path to the library in this file if you do this. If you get it wrong, you will be UNABLE TO DO ANYTHING with the machine and will have to boot it with a rescue disk and remove the file (or try the saveme program, see the INSTALL file for more info). THIS IS A ***WARNING***, please be careful. Also be sure the library is in the root filesystem as all hell will break loose if the directory it is in is not available at boot time.

## BUGS
tsocks can only proxy outgoing TCP connections

tsocks does NOT work correctly with asynchronous sockets (though it does work with non blocking sockets). This bug would be very difficult to fix and there appears to be no demand for it (I know of no major application that uses asynchronous sockets)

tsocks is NOT fully RFC compliant in its implementation of version 5 of SOCKS, it only supports the 'username and password' or 'no authentication' authentication methods. The RFC specifies GSSAPI must be supported by any compliant implementation. I haven't done this, anyone want to help?

tsocks can force the libc resolver to use TCP for name queries, if it does this it does it regardless of whether or not the DNS to be queried is local or not. This introduces overhead and should only be used when needed.

tsocks uses ELF dynamic loader features to intercept dynamic function calls from programs in which it is embedded. As a result, it cannot trace the actions of statically linked executables, non-ELF executables, or executables that make system calls directly with the system call trap or through the syscall() routine.

## FILES
/etc/tsocks.conf - default tsocks configuration file

## SEE ALSO
tsocks.conf(5) tsocks(1)

## AUTHOR
Shaun Clowes (delius@progsoc.uts.edu.au)

## COPYRIGHT
Copyright 2000 Shaun Clowes

tsocks and its documentation may be freely copied under the terms and conditions of version 2 of the GNU General Public License, as published by the Free Software Foundation (Cambridge, Massachusetts, United States of America).

This documentation is based on the documentation for logwrites, another shared library interceptor. One line of code from it was used in tsocks and a lot of the documentation :) logwrites is by adam@yggdrasil.com (Adam J. Richter) and can be had from ftp.yggdrasil.com pub/dist/pkg


tunctl

package: tunctl

title: tunctl(8)

text:
# tunctl(8)

## NAME
tunctl - create and manage persistent TUN/TAP interfaces

## SYNOPSIS
tunctl [ OPTIONS ] [ -u owner ] [ -t device-name ]

tunctl -d device-name

## DESCRIPTION
tunctl allows the host sysadmin to preconfigure a TUN/TAP network interface for use by a particular user. That user may open and use the network/write side of the interface, but may not change any aspects of the host side of the interface.

## OPTIONS
-b

Brief output, prints just the interface name

-n

Create a point-to-point TUN interface without Ethernet header. Automatically enabled if the desired interface name starts with "tun".

-p

Create a TAP type interface with Ethernet header. Automatically selected if the desired interface starts with "tap" or if no interface name is given.

-f tun-clone-device

Specifies the tun clone device name. The default is /dev/net/tun, but some systems use /dev/misc/net/tun instead.

-d interfacename

Delete the specified interfacename (set it to non-persistent)

-u user

Specifies the owner of the interface. This user is allowed to attach to the "network/wire" side.

-g group

Specifies the group of the interface. This group is allowed to attach to the "network/wire" side of the interface.

-t interface

Specifies the desired interface name.

## USAGE
To create an interface for use by a particular user, invoke tunctl without the -d option:

```
        # tunctl -u someuser

        Set 'tap0' persistent and owned by 'someuser'

```

Then, configure the interface as normal:

```
        # ifconfig tap0 192.168.0.254 up

        # route add -host 192.168.0.253 dev tap0

        # bash -c 'echo 1 > /proc/sys/net/ipv4/conf/tap0/proxy_arp'

        # arp -Ds 192.168.0.253 eth0 pub

```

To delete the interface, use the -d option:

```
        # tunctl -d tap0

        Set 'tap0' nonpersistent

```

## SEE ALSO
The UserModeLinux-HOWTO <URL:http://user-mode-linux.sourceforge.net/old/UserModeLinux-HOWTO.html>

## AUTHOR
tunctl was originally written by Jeff Dike <jdike@karaya.com> as part of the User Mode Linux tools. Current version is maintained as a separate package by Henrik Nordstrom <henrik@henriknordstrom.net>.

This manual page was originally written by Matt Zimmerman <mdz@debian.org> for the Debian GNU/Linux system, based on examples from Jeff Dike. Extended by Henrik Nordstrom <henrik@henriknordstrom.net> to cover all options supported.


tuned

package: tuned

title: tuned(8)

text:
# tuned(8)

## NAME
TuneD - dynamic adaptive system tuning daemon

## SYNOPSIS
tuned [options]

## DESCRIPTION
tuned is a dynamic adaptive system tuning daemon that tunes system settings dynamically depending on usage.

## OPTIONS
-d, --daemon

This options starts tuned as a daemon as opposed to in the foreground without forking at startup.

-D, --debug

Sets the highest logging level. This could be very useful when having trouble with tuned.

-h, --help

Show this help.

-l [LOG], --log[=LOG]

Log to the file LOG. If no LOG file is specified /var/log/tuned/tuned.log is used.

--no-dbus

Do not attach to DBus.

-P [PID], --pid[=PID]

Write process ID to the PID file. If no PID file is specified /run/tuned/tuned.pid is used.

-p PROFILE, --profile PROFILE

Tuning profile to be activated. It will override other settings (e.g. from tuned-adm). This is intended for debugging purposes.

-v, --version

Show version information.

## FILES

```
/etc/tuned
```

## SEE ALSO
tuned.conf(5) tuned-adm(8)

## AUTHOR

```
Jan Kaluža <jkaluza@redhat.com>
Jan Včelák <jvcelak@redhat.com>
Jaroslav Škarvada <jskarvad@redhat.com>
Phil Knirsch <pknirsch@redhat.com>
```

## REPORTING BUGS
Report bugs to https://bugzilla.redhat.com/.


tuned-adm

title: tuned-adm(8)

text:
# tuned-adm(8)

## NAME
tuned-adm - command line tool for switching between different tuning profiles

## SYNOPSIS
tuned-adm [list | active | profile [profile]... | profile_info [profile]... | off | auto_profile | profile_mode | verify [-i | --ignore-missing] | recommend | instance_acquire_devices devices instance | get_instances [plugin] | instance_get_devices instance]

## DESCRIPTION
This command line utility allows you to switch between user definable tuning profiles. Several predefined profiles are already included. You can even create your own profile, either based on one of the existing ones by copying it or make a completely new one. The distribution provided profiles are stored in subdirectories below /usr/lib/tuned/profiles/ and the user defined profiles in subdirectories below /etc/tuned/profiles/. If there are profiles with the same name in both places, user defined profiles have precedence.

## OPTIONS
list

List all available profiles.

profiles List all available profiles.

plugins List all available plugins.

-v, --verbose List plugin's configuration options and their hints.

active

Show current active profile.

profile [PROFILE_NAME]...

Switches to the given profile. If more than one profile is given, the profiles are merged (in case of conflicting settings, the setting from the last profile is used) and the resulting profile is applied. If no profile is given, then all available profiles are listed. If the profile given is not valid, the command gracefully exits without performing any operation.

profile_info [PROFILE_NAME]...

Show information/description of given profile or current profile if no profile is specified.

verify [-i | --ignore-missing]

Verifies current profile against system settings. Outputs information whether system settings match current profile or not (e.g. somebody modified a sysfs/sysctl value by hand). Detailed information about what is checked, what value is set and what value is expected can be found in the log. With the -i or --ignore-missing it does not treat missing tuning (tuning unsupported by the platform) as error.

recommend

Recommend a profile suitable for your system. Currently only static detection is implemented - it decides according to data in /etc/system-release-cpe and virt-what output. The rules for autodetection are defined in the file /usr/lib/tuned/recommend.d/50-tuned.conf. The default rules recommend profiles targeted to the best performance, or the balanced profile if unsure. The default rules can be overridden by the user by putting a file named recommend.conf into /etc/tuned, or by creating a file in the /etc/tuned/recommend.d directory. The file /etc/tuned/recommend.conf is evaluated first. If no match is found, the files in the /etc/tuned/recommend.d directory are merged with the files in the /usr/lib/tuned/recommend.d directory (if there is a file with the same name in both directories, the one from /etc/tuned/recommend.d is used) and the files are evaluated in alphabetical order. The first matching entry is used.

auto_profile

Enable automatic profile selection mode, switch to the recommended profile.

profile_mode

Show current profile selection mode.

instance_acquire_devices devices instance

Move all provided devices under the given plugin instance. The plugin instance is identified using its name from the TuneD profile. The devices are specified using a comma-separated list. When moving a set of CPUs, it is possible to use the cpulist syntax by including the 'cpulist:' prefix. For instance, 'cpulist:0,2-4' will move the devices cpu0, cpu2, cpu3, and cpu4.

get_instances [plugin]

List active instances of a given plugin or all active instances if no plugin is specified.

instance_get_devices instance

List devices currently assigned to a given instance.

off

Unload tunings.

## FILES

```
/etc/tuned/*
/usr/lib/tuned/*
```

## SEE ALSO
tuned(8) tuned.conf(5) tuned-profiles(7) tuned-profiles-atomic(7) tuned-profiles-sap(7) tuned-profiles-sap-hana(7) tuned-profiles-mssql(7) tuned-profiles-oracle(7) tuned-profiles-realtime(7) tuned-profiles-nfv-host(7) tuned-profiles-nfv-guest(7) tuned-profiles-cpu-partitioning(7) tuned-profiles-compat(7) tuned-profiles-postgresql(7) tuned-profiles-openshift(7) tuned-profiles-spectrumscale-ece(7)

## AUTHOR

```
Jaroslav Škarvada <jskarvad@redhat.com>
Jan Kaluža <jkaluza@redhat.com>
Jan Včelák <jvcelak@redhat.com>
Marcela Mašláňová <mmaslano@redhat.com>
Phil Knirsch <pknirsch@redhat.com>
```


tuned-gui

title: tuned-gui(8)

text:
# tuned-gui(8)

## NAME
tuned-gui - graphical interface for configuration of TuneD

## SYNOPSIS
tuned-gui

## DESCRIPTION
tuned-gui is graphical interface for configuration of TuneD daemon. GUI allows user to easily create, remove or update TuneD profiles and load those profiles into TuneD. It is also possible to explore all available plugins and information about them, like their description or help for their configuration parameters.

## TABS
SUMMARY

Display current active profile and configuration of plugins used by it.

PROFILES

Display available profiles and their origin (System | User). Profiles can be managed by 'create new profile', 'Edit' and 'Remove' buttons.

PLUGINS

Display available plugins and all accessible information about them.

## SEE ALSO
tuned(8) tuned-adm(8)

## AUTHOR

```
Jaroslav Škarvada <jskarvad@redhat.com>
Marek Stana
Tomáš Korbař <tkorbar@redhat.com>
```

## REPORTING BUGS
Report bugs to https://bugzilla.redhat.com/.


systemd-hwdb

package: udev

title: systemd-hwdb(8)

summary: hardware database management tool

text:
# systemd-hwdb(8)

## NAME
systemd-hwdb - hardware database management tool

## SYNOPSIS
systemd-hwdb [options] update

systemd-hwdb [options] query modalias

## DESCRIPTION
systemd-hwdb expects a command and command specific arguments. It manages the binary hardware database.

## OPTIONS
--usr

Generate in /usr/lib/udev instead of /etc/udev. Added in version 219.

-r, --root=PATH

Alternate root path in the filesystem. Added in version 219.

-s, --strict

When updating, return non-zero exit value on any parsing error. Added in version 239.

-h, --help

Print a short help text and exit.

### systemd-hwdb [options] update
Update the binary database.

### systemd-hwdb [options] query MODALIAS
Query database and print result.

## SEE ALSO
systemd(1) hwdb(7)


systemd-udev-settle.service

title: systemd-udev-settle.service(8)

text:
# systemd-udev-settle.service(8)

## NAME
systemd-udev-settle.service - Wait for all pending udev events to be handled

## SYNOPSIS
systemd-udev-settle.service

## DESCRIPTION
This service calls udevadm settle to wait until all events that have been queued by udev(7) have been processed. It is a crude way to wait until "all" hardware has been discovered. Services may pull in this service and order themselves after it to wait for the udev queue to be empty.

Using this service is not recommended. There can be no guarantee that hardware is fully discovered at any specific time, because the kernel does hardware detection asynchronously, and certain buses and devices take a very long time to become ready, and also additional hardware may be plugged in at any time. Instead, services should subscribe to udev events and react to any new hardware as it is discovered. Services that, based on configuration, expect certain devices to appear, may warn or report failure after a timeout. This timeout should be tailored to the hardware type. Waiting for systemd-udev-settle.service usually slows boot significantly, because it means waiting for all unrelated events too.

## SEE ALSO
udev(7), udevadm(8)


systemd-udevd.service

title: systemd-udevd.service(8)

summary: Device event managing daemon

text:
# systemd-udevd.service(8)

## NAME
systemd-udevd.service, systemd-udevd-control.socket, systemd-udevd-kernel.socket, systemd-udevd-varlink.socket, systemd-udevd - Device event managing daemon

## SYNOPSIS
systemd-udevd.service

systemd-udevd-control.socket

systemd-udevd-kernel.socket

systemd-udevd-varlink.socket

/usr/lib/systemd/systemd-udevd [--daemon] [--debug] [--children-max=] [--exec-delay=] [--event-timeout=] [--resolve-names=early|late|never] [--version] [--help]

## DESCRIPTION
systemd-udevd listens to kernel uevents. For every event, systemd-udevd executes matching instructions specified in udev rules. See udev(7).

The behavior of the daemon can be configured using udev.conf(5), its command line options, environment variables, and on the kernel command line, or changed dynamically with udevadm control.

## OPTIONS
-d, --daemon

Detach and run in the background. Added in version 186.

-D, --debug

Print debug messages to standard error. Added in version 186.

-c, --children-max=

Limit the number of events executed in parallel. Added in version 186.

-e, --exec-delay=

Delay the execution of each RUN{program} parameter by the given number of seconds. This option might be useful when debugging system crashes during coldplug caused by loading non-working kernel modules. Added in version 186.

-t, --event-timeout=

Set the number of seconds to wait for events to finish. After this time, the event will be terminated. The default is 180 seconds. Added in version 216.

-s, --timeout-signal=

Set the signal which systemd-udevd will send to forked off processes after reaching event timeout. The setting can be overridden at boot time with the kernel command line option udev.timeout_signal=. Setting to SIGABRT may be helpful in order to debug worker timeouts. Defaults to SIGKILL. Note that setting the option on the command line overrides the setting from the configuration file. Added in version 246.

-N, --resolve-names=

Specify when systemd-udevd should resolve names of users and groups. When set to early (the default), names will be resolved when the rules are parsed. When set to late, names will be resolved for every event. When set to never, names will never be resolved and all devices will be owned by root. Added in version 186.

-h, --help

Print a short help text and exit.

--version

Print a short version string and exit.

## KERNEL COMMAND LINE
Parameters prefixed with "rd." will be read when systemd-udevd is used in an initrd, those without will be processed both in the initrd and on the host.

udev.log_level=, rd.udev.log_level=

Set the log level. Added in version 247.

udev.trace[=BOOL], rd.udev.trace[=BOOL]

Enable/disable trace logging. When enabled, udev.log_level= will be ignored, and "debug" level is assumed. Added in version 258.

udev.children_max=, rd.udev.children_max=

Limit the number of events executed in parallel. Added in version 186.

udev.exec_delay=, rd.udev.exec_delay=

Delay the execution of each RUN{program} parameter by the given number of seconds. This option might be useful when debugging system crashes during coldplug caused by loading non-working kernel modules. Added in version 186.

udev.event_timeout=, rd.udev.event_timeout=

Wait for events to finish up to the given number of seconds. This option might be useful if events are terminated due to kernel drivers taking too long to initialize. Added in version 216.

udev.timeout_signal=, rd.udev.timeout_signal=

Specifies a signal that systemd-udevd will send to workers on timeout. Note that kernel command line option overrides both the setting in the configuration file and the one on the program command line. Added in version 246.

udev.blockdev_read_only, rd.udev.blockdev_read_only

If specified, mark all physical block devices read-only as they appear. Synthetic block devices (such as loopback block devices or device mapper devices) are left as they are. This is useful to guarantee that the contents of physical block devices remains unmodified during runtime, for example to implement fully stateless systems, for testing or for recovery situations where corrupted file systems shall not be corrupted further through accidental modification. A block device may be marked writable again by issuing the blockdev --setrw command, see blockdev(8) for details.

Added in version 246.

net.ifnames=

Network interfaces are renamed to give them predictable names when possible. It is enabled by default; specifying 0 disables it. Added in version 199.

net.naming_scheme=

Network interfaces are renamed to give them predictable names when possible (unless net.ifnames=0 is specified, see above). With this kernel command line option it is possible to pick a specific version of this algorithm and override the default chosen at compilation time. Expects one of the naming scheme identifiers listed in systemd.net-naming-scheme(7), or "latest" to select the latest scheme known (to this particular version of systemd-udevd.service). Note that selecting a specific scheme is not sufficient to fully stabilize interface naming: the naming is generally derived from driver attributes exposed by the kernel. As the kernel is updated, previously missing attributes systemd-udevd.service is checking might appear, which affects older name derivation algorithms, too.

Added in version 240.

net.ifname_policy=policy1[,policy2,...][,MAC]

Specifies naming policies applied when renaming network interfaces. Takes a list of policies and an optional MAC address separated with comma. Each policy value must be one of the policies understood by the NamePolicy= setting in .link files, e.g. "onboard" or "path". See systemd.link(5) for more details. When the MAC address is specified, the policies are applied to the interface which has the address. When no MAC address is specified, the policies are applied to all interfaces. This kernel command line argument can be specified multiple times. This argument is not directly read by systemd-udevd, but is instead converted to a .link file by systemd-network-generator.service(8). For this argument to take effect, systemd-network-generator.service must be enabled.

Example:

```
net.ifname_policy=keep,kernel,path,slot,onboard,01:23:45:67:89:ab
net.ifname_policy=keep,kernel,path,slot,onboard,mac
```

This is mostly equivalent to creating the following .link files:

```
# 91-name-policy-with-mac.link
[Match]
MACAddress=01:23:45:67:89:ab
[Link]
NamePolicy=keep kernel path slot onboard
AlternativeNamePolicy=path slot onboard
```

and

```
# 92-name-policy-for-all.link
[Match]
OriginalName=*
[Link]
NamePolicy=keep kernel path slot onboard mac
AlternativeNamePolicy=path slot onboard mac
```

Added in version 250.

## SEE ALSO
udev.conf(5), udev(7), udevadm(8)


udevadm

title: udevadm(8)

summary: udev management tool

text:
# udevadm(8)

## NAME
udevadm - udev management tool

## SYNOPSIS
udevadm [--debug] [--version] [--help]

udevadm info [options...] [devpath|syspath|id|unit...]

udevadm trigger [options...] [devpath|syspath|id|unit...]

udevadm settle [options...]

udevadm control options...

udevadm monitor [options...]

udevadm test [options...] devpath|syspath|id|unit

udevadm test-builtin [options...] command devpath|syspath|id|unit

udevadm verify [options...] [files...]

udevadm cat [options...] [files...]

udevadm wait [options...] devpath|syspath...

udevadm lock [options...] command...

## DESCRIPTION
udevadm expects a command and command specific options. It controls the runtime behavior of systemd-udevd, requests kernel events, manages the event queue, and provides simple debugging mechanisms.

## OPTIONS
-d, --debug

Print debug messages to standard error. This option is implied in udevadm test and udevadm test-builtin commands.

-V, --version

Print a short version string and exit.

-h, --help

Print a short help text and exit.

### udevadm info [options...] [devpath|syspath|id|unit...]
Query the udev database for device information.

Positional arguments should be used to specify one or more devices. Each one may be a device name (in which case it must start with /dev/), a sys path (in which case it must start with /sys/), a device ID (such as "n1", "c5:1", or "b259:1", see sd_device_get_device_id(3)). or a systemd device unit name (in which case it must end with ".device", see systemd.device(5)).

-q, --query=TYPE

Query the database for the specified type of device data. Valid TYPEs are: name, symlink, path, property, all.

--property=NAME

When showing device properties using the --query=property option, limit display to properties specified in the argument. The argument should be a comma-separated list of property names. If not specified, all known properties are shown. Added in version 250.

--value

When showing device properties using the --query=property option, print only their values, and skip the property name and "=". Cannot be used together with -x/--export or -P/--export-prefix.

Added in version 250.

-p, --path=DEVPATH

The /sys/ path of the device to query, e.g. [/sys/]/class/block/sda. This option is an alternative to the positional argument with a /sys/ prefix. udevadm info --path=/class/block/sda is equivalent to udevadm info /sys/class/block/sda.

-n, --name=FILE

The name of the device node or a symlink to query, e.g. [/dev/]/sda. This option is an alternative to the positional argument with a /dev/ prefix. udevadm info --name=sda is equivalent to udevadm info /dev/sda.

-r, --root

Print absolute paths in name or symlink query.

-a, --attribute-walk

Print all sysfs properties of the specified device that can be used in udev rules to match the specified device. It prints all devices along the chain, up to the root of sysfs that can be used in udev rules. This switch supports JSON output mode (see --json= below). Note that because this switch generates multiple JSON objects, JSON-SEQ mode is automatically enabled (RFC7464). (Note: tools such as jq[1] natively support JSON-SEQ via the --seq switch.)

-t, --tree

Display a sysfs tree. This recursively iterates through the sysfs hierarchy and displays it in a tree structure. If a path is specified only the subtree below and its parent directories are shown. This will show both device and subsystem items. Added in version 251.

-x, --export

Print output as key/value pairs. Values are enclosed in single quotes. This takes effects only when --query=property or --device-id-of-file=FILE is specified.

-P, --export-prefix=NAME

Add a prefix to the key name of exported values. This implies --export.

-d, --device-id-of-file=FILE

Print major/minor numbers of the underlying device, where the file lives on. If this is specified, all positional arguments are ignored.

-e, --export-db

Export the content of the udev database.

-c, --cleanup-db

Cleanup the udev database.

-w[SECONDS], --wait-for-initialization[=SECONDS]

Wait for device to be initialized. If argument SECONDS is not specified, the default is to wait forever. Added in version 243.

--subsystem-match[=SUBSYSTEM], --subsystem-nomatch[=SUBSYSTEM]

When used with --export-db, only show devices of or not of the given subsystem respectively. Added in version 255.

--attr-match[=FILE[=VALUE]], --attr-nomatch[=FILE[=VALUE]]

When used with --export-db, only show devices matching or not matching the given attribute respectively. Added in version 255.

--property-match[=KEY=VALUE]

When used with --export-db, only show devices matching the given property and value. Added in version 255.

--tag-match[=TAG]

When used with --export-db, only show devices with the given tag. Added in version 255.

--sysname-match[=NAME]

When used with --export-db, only show devices with the given "/sys" path. Added in version 255.

--name-match[=NAME]

When used with --export-db, only show devices with the given name in "/dev". Added in version 255.

--parent-match[=NAME]

When used with --export-db, only show devices with the given parent device. Added in version 255.

--initialized-match, --initialized-nomatch

When used with --export-db, only show devices that are initialized or not initialized respectively. Added in version 255.

--json=MODE

Shows output formatted as JSON. Expects one of "short" (for the shortest possible output without any redundant whitespace or line breaks), "pretty" (for a pretty version of the same, with indentation and line breaks) or "off" (to turn off JSON output, the default).

--no-pager

Do not pipe output into a pager.

The generated output shows the current device database entry in a terse format. Each line shown is prefixed with one of the following characters:

Table 1. udevadm info output prefixes

Prefix

Meaning

"P:"

Device path in /sys/

"M:"

Device name in /sys/ (i.e. the last component of "P:")

"R:"

Device number in /sys/ (i.e. the numeric suffix of the last component of "P:")

"J:"

Device ID

"U:"

Kernel subsystem

"B:"

Driver subsystem

"T:"

Kernel device type within subsystem

"D:"

Kernel device node major/minor

"I:"

Network interface index

"N:"

Kernel device node name

"L:"

Device node symlink priority

"S:"

Device node symlink

"Q:"

Block device sequence number (DISKSEQ)

"V:"

Attached driver

"E:"

Device property

### udevadm trigger [options...] [devpath|syspath|id|unit...]
Request device events from the kernel. Primarily used to replay events at system coldplug time.

Takes device specifications as positional arguments. See the description of udevadm info above.

-v, --verbose

Print the list of devices which will be triggered.

-n, --dry-run

Do not actually trigger the event.

-q, --quiet

Suppress error logging in triggering events. Added in version 248.

-t, --type=TYPE

Trigger a specific type of devices. Valid types are "all", "devices", and "subsystems". The default value is "devices".

-c, --action=ACTION

Type of event to be triggered. Possible actions are "add", "remove", "change", "move", "online", "offline", "bind", and "unbind". Also, the special value "help" can be used to list the possible actions. The default value is "change".

--prioritized-subsystem=SUBSYSTEM[,SUBSYSTEM...]

Takes a comma separated list of subsystems. When triggering events for devices, the devices from the specified subsystems and their parents are triggered first. For example, if --prioritized-subsystem=block,net, then firstly all block devices and their parents are triggered, in the next all network devices and their parents are triggered, and lastly the other devices are triggered. This option can be specified multiple times, and in that case the lists of the subsystems will be merged. That is, --prioritized-subsystem=block --prioritized-subsystem=net is equivalent to --prioritized-subsystem=block,net. Added in version 251.

-s, --subsystem-match=SUBSYSTEM

Trigger events for devices which belong to a matching subsystem. This option supports shell style pattern matching. When this option is specified more than once, then each matching result is ORed, that is, all the devices in each subsystem are triggered.

-S, --subsystem-nomatch=SUBSYSTEM

Do not trigger events for devices which belong to a matching subsystem. This option supports shell style pattern matching. When this option is specified more than once, then each matching result is ANDed, that is, devices which do not match all specified subsystems are triggered.

-a, --attr-match=ATTRIBUTE=VALUE

Trigger events for devices with a matching sysfs attribute. If a value is specified along with the attribute name, the content of the attribute is matched against the given value using shell style pattern matching. If no value is specified, the existence of the sysfs attribute is checked. When this option is specified multiple times, then each matching result is ANDed, that is, only devices which have all specified attributes are triggered.

-A, --attr-nomatch=ATTRIBUTE=VALUE

Do not trigger events for devices with a matching sysfs attribute. If a value is specified along with the attribute name, the content of the attribute is matched against the given value using shell style pattern matching. If no value is specified, the existence of the sysfs attribute is checked. When this option is specified multiple times, then each matching result is ANDed, that is, only devices which have none of the specified attributes are triggered.

-p, --property-match=PROPERTY=VALUE

Trigger events for devices with a matching property value. This option supports shell style pattern matching. When this option is specified more than once, then each matching result is ORed, that is, devices which have one of the specified properties are triggered.

-g, --tag-match=TAG

Trigger events for devices with a matching tag. When this option is specified multiple times, then each matching result is ANDed, that is, devices which have all specified tags are triggered.

-y, --sysname-match=NAME

Trigger events for devices for which the last component (i.e. the filename) of the /sys/ path matches the specified PATH. This option supports shell style pattern matching. When this option is specified more than once, then each matching result is ORed, that is, all devices which have any of the specified NAME are triggered.

--name-match=NAME

Trigger events for devices with a matching device path. When this option is specified more than once, then each matching result is ORed, that is, all specified devices are triggered. Added in version 218.

-b, --parent-match=SYSPATH

Trigger events for all children of a given device. When this option is specified more than once, then each matching result is ORed, that is, all children of each specified device are triggered.

--initialized-match, --initialized-nomatch

When --initialized-match is specified, trigger events for devices that are already initialized by systemd-udevd, and skip devices that are not initialized yet. When --initialized-nomatch is specified, trigger events for devices that are not initialized by systemd-udevd yet, and skip devices that are already initialized.

Typically, it is essential that applications which intend to use such a match, make sure a suitable udev rule is installed that sets at least one property on devices that shall be matched. See also Initialized Devices section below for more details.

Warning

--initialized-nomatch can potentially save a significant amount of time compared to re-triggering all devices in the system and e.g. can be used to optimize boot time. However, this is not safe to be used in a boot sequence in general. Especially, when udev rules for a device depend on its parent devices (e.g. "ATTRS" or "IMPORT{parent}" keys, see udev(7) for more details), the final state of the device becomes easily unstable with this option.

Added in version 251.

--include-parents

Trigger parent devices of found devices even if the parents will not match the filter condition. This is useful if we are interested to limit the coldplug activities to some devices or subsystems. Added in version 258.

-w, --settle

Apart from triggering events, also waits for those events to finish. Note that this is different from calling udevadm settle. udevadm settle waits for all events to finish. This option only waits for events triggered by the same command to finish. Added in version 238.

--uuid

Trigger the synthetic device events, and associate a randomized UUID with each. These UUIDs are printed to standard output, one line for each event. These UUIDs are included in the uevent environment block (in the "SYNTH_UUID=" property) and may be used to track delivery of the generated events. Added in version 249.

--wait-daemon[=SECONDS]

Before triggering uevents, wait for systemd-udevd daemon to be initialized. Optionally takes timeout value. Default timeout is 5 seconds. This is equivalent to invoking udevadm control --ping before udevadm trigger. Added in version 241.

In addition, optional positional arguments can be used to specify device names or sys paths. They must start with /dev/ or /sys/ respectively.

### udevadm settle [options...]
Watches the udev event queue, and exits if all current events are handled.

-t, --timeout=SECONDS

Maximum number of seconds to wait for the event queue to become empty. The default value is 120 seconds. A value of 0 will check if the queue is empty and always return immediately. A non-zero value will return an exit code of 0 if queue became empty before timeout was reached, non-zero otherwise.

-E, --exit-if-exists=FILE

Stop waiting if file exists.

See systemd-udev-settle.service(8) for more information.

### udevadm control options...
Modify the internal state of the running udev daemon.

-e, --exit

Signal and wait for systemd-udevd to exit. No option except for --timeout can be specified after this option. Note that systemd-udevd.service contains Restart=always and so as a result, this option restarts systemd-udevd. If you want to stop systemd-udevd.service, please use the following:

```
systemctl stop systemd-udevd-control.socket systemd-udevd-kernel.socket systemd-udevd-varlink.socket systemd-udevd.service
```

-l, --log-level=value

Set the internal log level of systemd-udevd. Valid values are the numerical syslog priorities or their textual representations: emerg, alert, crit, err, warning, notice, info, and debug.

-s, --stop-exec-queue

Signal systemd-udevd to stop executing new events. Incoming events will be queued.

-S, --start-exec-queue

Signal systemd-udevd to enable the execution of events.

-R, --reload

Signal systemd-udevd to reload the rules files and other databases like the kernel module index. Reloading rules and databases does not apply any changes to already existing devices; the new configuration will only be applied to new events.

-p, --property=KEY=value

Set a global property for all events.

-m, --children-max=value

Set the maximum number of events, systemd-udevd will handle at the same time. When 0 is specified, then the maximum is determined based on the system resources.

--ping

Send a ping message to systemd-udevd and wait for the reply. This may be useful to check that systemd-udevd daemon is running. Added in version 241.

--trace=BOOL

Enable/disable trace logging in systemd-udevd. Added in version 258.

--revert

Revert settings previously set with udevadm control command. When specified, settings set with -l/--log-level=, --trace, -m/--children-max=, and -p/--property= will be cleared. Added in version 258.

-t, --timeout=seconds

The maximum number of seconds to wait for a reply from systemd-udevd.

--load-credentials

When specified, the following credentials are used when passed in: udev.conf.*

These credentials should contain valid udev.conf(5) configuration data. From each matching credential a separate file is created. Example: a passed credential udev.conf.50-foobar will be copied into a configuration file /run/udev/udev.conf.d/50-foobar.conf. Added in version 256.

udev.rules.*

These credentials should contain valid udev(7) rules. From each matching credential a separate file is created. Example: a passed credential udev.rules.50-foobar will be copied into a configuration file /run/udev/rules.d/50-foobar.rules. Added in version 256.

Note, this does not imply --reload option. So, if systemd-udevd is already running, please consider to also specify -reload to make the copied udev rules files used by systemd-udevd.

Added in version 256.

### udevadm monitor [options...]
Listens to the kernel uevents and events sent out by a udev rule and prints the devpath of the event to the console. It can be used to analyze the event timing, by comparing the timestamps of the kernel uevent and the udev event.

-k, --kernel

Print the kernel uevents.

-u, --udev

Print the udev event after the rule processing.

-p, --property

Also print the properties of the event.

-s, --subsystem-match=string[/string]

Filter kernel uevents and udev events by subsystem[/devtype]. Only events with a matching subsystem value will pass. When this option is specified more than once, then each matching result is ORed, that is, all devices in the specified subsystems are monitored.

-t, --tag-match=string

Filter udev events by tag. Only udev events with a given tag attached will pass. When this option is specified more than once, then each matching result is ORed, that is, devices which have one of the specified tags are monitored.

### udevadm test [options...] devpath|syspath|id|unit
Simulate a udev event run for the given device, and print debug output. The option --json= may be useful for parsing the final result. See also Example section.

-a, --action=ACTION

Type of event to be simulated. Possible actions are "add", "remove", "change", "move", "online", "offline", "bind", and "unbind". Also, the special value "help" can be used to list the possible actions. The default value is "add".

-N, --resolve-names=early|late|never

Specify when udevadm should resolve names of users and groups specified in udev rules. When set to early (the default), names will be resolved when the rules are parsed. When set to late, names will be resolved during the event being processed. When set to never, names will never be resolved and relevant udev rules will be ignored. Added in version 209.

-D DIR, --extra-rules-dir=DIR

Also load udev rules files from the specified directory. This option can be specified multiple times. It may be useful for debugging udev rules by copying some udev rules files to a temporary directory, editing them, and specifying the directory with this option. Files found in the specified directories have a higher priority than rules files in the default udev/rules.d directories used by systemd-udevd. See udev(7) for more details about the search paths. Added in version 258.

-v, --verbose

Shows verbose logs in processing udev rules. Added in version 258.

--json=MODE

Shows output formatted as JSON. Expects one of "short" (for the shortest possible output without any redundant whitespace or line breaks), "pretty" (for a pretty version of the same, with indentation and line breaks) or "off" (to turn off JSON output, the default).

### udevadm test-builtin [options...] command devpath|file|unit
Run a built-in command COMMAND for device DEVPATH, and print debug output.

-a, --action=ACTION

Type of event to be simulated. Possible actions are "add", "remove", "change", "move", "online", "offline", "bind", and "unbind". Also, the special value "help" can be used to list the possible actions. The default value is "add". Added in version 250.

### udevadm verify [options...] [files...]
Verify syntactic, semantic, and stylistic correctness of udev rules files.

Positional arguments can be used to specify one or more files to check. Each argument must be an absolute path to a udev rules file or a directory that contains rules files, or a file name of udev rules file (e.g. 99-systemd.rules). If a file name is specified, the file will be searched in the udev/rules.d directories that are processed by systemd-udevd, and searched in the current working directory if not found. If no files are specified, the udev rules are read from the files located in the same udev/rules.d directories that are processed by systemd-udevd. See udev(7) for more details about the search paths.

The exit status is 0 if all specified udev rules files are syntactically, semantically, and stylistically correct, and a non-zero error code otherwise.

-N, --resolve-names=early|late|never

Specify when udevadm should resolve names of users and groups specified in udev rules. When set to early (the default), names will be resolved when the rules are parsed. When set to late, names will not be verified, as systemd-udevd resolves names during each event being processed. When set to never, names will never be resolved and relevant rules will be ignored. Added in version 254.

--root=PATH

When looking for udev rules files located in the udev/rules.d directories, operate on files underneath the specified root path PATH. When a file name is specified, and it is not found in the udev/rules.d directories, the file will be searched in the specified root path PATH, rather than the current working directory. Added in version 254.

--no-summary

Do not show summary. Added in version 254.

--no-style

Ignore style issues. When specified, even if style issues are found in udev rules files, the exit status is 0 if no syntactic or semantic errors are found. Added in version 254.

### udevadm cat [options...] [file...]
Show udev rules files or udev.conf.

Positional arguments can be used to specify one or more files to show. Each argument must be an absolute path to a udev rules file or a directory that contains rules files, or a file name of udev rules file (e.g. 99-systemd.rules). If a file name is specified, the file will be searched in the udev/rules.d directories that are processed by systemd-udevd, and searched in the current working directory if not found. If no files are specified, the udev rules are read from the files located in the same udev/rules.d directories that are processed by systemd-udevd. See udev(7) for more details about the search paths.

--root=PATH

When looking for udev rules files located in the udev/rules.d directories, operate on files underneath the specified root path PATH. When a file name is specified, and it is not found in the udev/rules.d directories, the file will be searched in the specified root path PATH, rather than the current working directory. Added in version 258.

--tldr

Only print the "interesting" parts of the configuration files, skipping comments and empty lines and section headers followed only by comments and empty lines. Added in version 258.

--config

Shows udev.conf(5) files, rather than udev rules files. When specified, no udev rules file cannot be specified. Added in version 258.

### udevadm wait [options...] devpath|syspath...
Wait for devices or device symlinks being created and initialized by systemd-udevd. Each device path must start with "/dev/" or "/sys/", e.g. "/dev/sda", "/dev/disk/by-path/pci-0000:3c:00.0-nvme-1-part1", "/sys/devices/pci0000:00/0000:00:1f.6/net/eth0", or "/sys/class/net/eth0". This can take multiple devices. This may be useful for waiting for devices being processed by systemd-udevd after e.g. partitioning or formatting the devices.

-t, --timeout=SECONDS

Maximum number of seconds to wait for the specified devices or device symlinks being created, initialized, or removed. The default value is "infinity". Added in version 251.

--initialized=BOOL

Check if systemd-udevd initialized devices. Defaults to true. When false, the command only checks if the specified devices exist. Set false to this setting if there is no udev rules for the specified devices, as the devices will never be considered as initialized in that case. See Initialized Devices section below for more details. Added in version 251.

--removed

When specified, the command wait for devices being removed instead of created or initialized. If this is specified, --initialized= will be ignored. Added in version 251.

--settle

When specified, also watches the udev event queue, and wait for all queued events being processed by systemd-udevd. Added in version 251.

### udevadm lock [options...] command...
udevadm lock takes an (advisory) exclusive lock on a block device (or all specified devices), as per Locking Block Device Access[2] and invokes a program with the locks taken. When the invoked program exits the locks are automatically released and its return value is propagated as exit code of udevadm lock.

This tool is in particular useful to ensure that systemd-udevd.service(8) does not probe a block device while changes are made to it, for example partitions created or file systems formatted. Note that many tools that interface with block devices natively support taking relevant locks, see for example sfdisk(8)'s --lock switch.

The command expects at least one block device specified via --device= or --backing=, and a command line to execute as arguments.

--device=DEVICE, -d DEVICE

Takes a path to a device node of the device to lock. This switch may be used multiple times (and in combination with --backing=) in order to lock multiple devices. If a partition block device node is specified the containing "whole" block device is automatically determined and used for the lock, as per the specification. If multiple devices are specified, they are deduplicated, sorted by the major/minor of their device nodes and then locked in order. This switch must be used at least once, to specify at least one device to lock. (Alternatively, use --backing=, see below.)

Added in version 251.

--backing=PATH, -b PATH

If a path to a device node is specified, identical to --device=. However, this switch alternatively accepts a path to a regular file or directory, in which case the block device of the file system the file/directory resides on is automatically determined and used as if it was specified with --device=. Added in version 251.

--timeout=SECS, -t SECS

Specifies how long to wait at most until all locks can be taken. Takes a value in seconds, or in the usual supported time units, see systemd.time(7). If specified as zero the lock is attempted and if not successful the invocation will immediately fail. If passed as "infinity" (the default) the invocation will wait indefinitely until the lock can be acquired. If the lock cannot be taken in the specified time the specified command will not be executed and the invocation will fail. Added in version 251.

--print, -p

Instead of locking the specified devices and executing a command, just print the device paths that would be locked, and execute no command. This command is useful to determine the "whole" block device in case a partition block device is specified. The devices will be sorted by their device node major number as primary ordering key and the minor number as secondary ordering key (i.e. they are shown in the order they'd be locked). Note that the number of lines printed here can be less than the number of --device= and --backing= switches specified in case these resolve to the same "whole" devices. Added in version 251.

## INITIALIZED DEVICES
Initialized devices are those for which at least one udev rule already completed execution – for any action but "remove" — that set a property or other device setting (and thus has an entry in the udev device database). Devices are no longer considered initialized if a "remove" action is seen for them (which removes their entry in the udev device database). Note that devices that have no udev rules are never considered initialized, but might still be announced via the sd-device API (or similar).

## EXAMPLE
Example 1. Format a File System

Take a lock on the backing block device while creating a file system, to ensure that systemd-udevd does not probe or announce the new superblock before it is comprehensively written:

```
# udevadm lock --device=/dev/sda1 mkfs.ext4 /dev/sda1
```

Example 2. Format a RAID File System

Similar, but take locks on multiple devices at once:

```
# udevadm lock --device=/dev/sda1 --device=/dev/sdb1 mkfs.btrfs /dev/sda1 /dev/sdb1
```

Example 3. Copy in a File System

Take a lock on the backing block device while copying in a prepared file system image, to ensure that systemd-udevd does not probe or announce the new superblock before it is fully written:

```
# udevadm lock -d /dev/sda1 dd if=fs.raw of=/dev/sda1
```

Example 4. Predict Network Interface Renaming

To predict a network interface name, udevadm test can be used:

```
$ udevadm test /sys/class/net/wlan0 --json=pretty 2>/dev/null | jq .networkInterface.name
"wlp59s0"
```

Example 5. Predict Symbolic links of a Device Node

To predict symbolic links to a device node, udevadm test can be used:

```
$ udevadm test /dev/nvme0n1p1 --json=pretty 2>/dev/null | jq .node.symlinks
[

  "/dev/disk/by-diskseq/1-part1",

  "/dev/disk/by-id/nvme-WDC_PC_SN720_SDAQNTW-512G-1001_192290802247-part1",

  "/dev/disk/by-id/nvme-WDC_PC_SN720_SDAQNTW-512G-1001_192290802247_1-part1",

  "/dev/disk/by-id/nvme-eui.1922908022470001001b448b44ccb9d6-part1",

  "/dev/disk/by-path/pci-0000:3c:00.0-nvme-1-part/by-partnum/1",

  "/dev/disk/by-path/pci-0000:3c:00.0-nvme-1-part1"
]
$ udevadm test /dev/input/event3 --json=pretty 2>/dev/null | jq .node.symlinks
[

  "/dev/input/by-path/platform-i8042-serio-0-event-kbd"
]
```

## SEE ALSO
udev(7), systemd-udevd.service(8), udev.conf(5)

## NOTES
1.

jq

https://jqlang.github.io/jq/manual/

2.

Locking Block Device Access

https://systemd.io/BLOCK_DEVICE_LOCKING


mkudffs

package: udftools

title: mkudffs(8)

summary: create a UDF filesystem

text:
# mkudffs(8)

## NAME
mkudffs — create a UDF filesystem

## SYNOPSIS
mkudffs [ options ] device [ blocks-count ]

## DESCRIPTION
mkudffs is used to create a UDF filesystem on a device (usually a disk). device is the special file corresponding to the device (e.g. /dev/hdX) or file image. blocks-count is the number of blocks on the device. If omitted, mkudffs automagically figures the filesystem size. The order of options matters. Encoding option must be first and options to override default settings implied by the media type or UDF revision should be after the option they are overriding.

## OPTIONS
-h,--help

Display the usage and list of options.

-l,--label= label

Specify the UDF label. UDF label is synonym for specifying both --lvid and --vid options. If omitted, mkudffs label is LinuxUDF. (Option available since mkudffs 1.1)

-u,--uuid= uuid

Specify the UDF uuid. It must be exactly 16 hexadecimal lowercase digits and is used for first 16 characters of --fullvsid option. If omitted, mkudffs uuid is generated from local time and a random number. (Option available since mkudffs 1.1)

-b,--blocksize= block-size

Specify the size of blocks in bytes. Valid block size for a UDF filesystem is power of two in range from 512 to 32768 and must match a device logical (sector) size. If omitted, mkudffs block size is set to device logical block (sector) size. If logical block (sector) size is unknown (e.g. when creating disk image) then for --media-type=hd is used block size 512 and for other media types 2048. (Prior to mkudffs 1.1 default value was always 2048 independently of --media-type)

-m,--media-type= media-type

Specify the media type. Must be specified before --udfrev. Default value is autodetected. When autodetection does not work (e.g. when creating disk image) then hd value is assumed. Valid media types are:

hd

HD (Hard Disk)

worm

WORM (Write Once Read Many)

mo

MO (Magneto Optical)

cd

CD-ROM (CD Read-Only Memory)

cdr

CD-R (CD Recordable)

cdrw

CD-RW (CD Read-Write)

dvd

DVD-ROM (DVD Read-Only Memory)

dvdr

DVD-R (DVD Recordable)

dvdrw

DVD-RW (DVD Read-Write)

dvdram

DVD-RAM (DVD Random Access Memory)

bdr

BD-R (Blu-ray Disc Recordable)

(Short option variant -m and values cd, dvdr, bdr are available since mkudffs 2.0 and autodetection is supported since mkudffs 2.2)

-r,--udfrev= udf-revision

Specify the UDF revision to use, either in hexadecimal BCD (e.g. 0x0201) or decimal (e.g. 2.01) format. Valid revisions are 1.01, 1.02, 1.50, 2.00, 2.01, 2.50 and 2.60. If omitted, mkudffs UDF revision is 2.01, except for Blu-ray Discs which is 2.50. UDF revisions higher then 2.01 are experimental. Option must be specified after --media-type. (Values in decimal format and UDF revisions higher then 2.01 are supported since mkudffs 2.0, UDF revision 1.01 is supported since mkudffs 2.1)

-n,--no-write

Not really, do not write to device. Just simulate and display what would happen with device. Useful for determining the calculated location of different UDF blocks. (Option available since mkudffs 2.0)

--new-file

Create a new image file specified by device with blocks-count and fail if file already exists. If omitted, mkudffs creates a new image file only in case it does not exist yet. (Option available since mkudffs 2.0)

--lvid= logical-volume-identifier

Specify the Logical Volume Identifier. If omitted, mkudffs Logical Volume Identifier is LinuxUDF. Most UDF implementations use this identifier as a disk label.

--vid= volume-identifier

Specify the Volume Identifier. If omitted, mkudffs Volume Identifier is LinuxUDF.

--vsid= volume-set-identifier

Specify the 17.–127. character of Volume Set Identifier. If omitted, mkudffs Volume Set Identifier is LinuxUDF.

--fsid= file-set-identifier

Specify the File Set Identifier. If omitted, mkudffs File Set Identifier is LinuxUDF.

--fullvsid= full-volume-set-identifier

Specify the full Volume Set Identifier. Overwrite previous --uuid and --vsid options. (Option available since mkudffs 1.1)

--owner= owner-name

Specify the Owner name, person creating the medium or filesystem. It is stored in UDF Logical Volume Info1, part of UDF Implementation Use Volume Descriptor. (Option available since mkudffs 2.3)

--organization= organization-name

Specify the Organization name responsible for creating the medium or filesystem. It is stored in UDF Logical Volume Info2, part of UDF Implementation Use Volume Descriptor. (Option available since mkudffs 2.3)

--contact= contact-information

Specify the Contact information for the medium or filesystem. It is stored in UDF Logical Volume Info3, part of UDF Implementation Use Volume Descriptor. (Option available since mkudffs 2.3)

--uid= uid

Specify the uid of the root (/) directory. If omitted, mkudffs uid is 0. Special value -1 means invalid or not specified uid. (Option available since mkudffs 1.1)

--gid= gid

Specify the gid of the root (/) directory. If omitted, mkudffs gid is 0. Special value -1 means invalid or not specified gid. (Option available since mkudffs 1.1)

--mode= mode

Specify permissions in octal mode bits of the root (/) directory. If omitted, mkudffs mode is 0755. (Option available since mkudffs 2.0)

--read-only

This option specify that the whole UDF disk should be treated as read-only. It sets SoftWriteProtect domain flag in Logical Volume Descriptor and in File Set Descriptor. Plus for overwritable media types (hd, dvdram, dvdrw) set UDF Access Type to read-only. (Option available since mkudffs 2.2)

--bootarea= fill

Specify how to fill UDF boot area which is the first 32kB of the disk and is not used by UDF itself. Option mbr make sense only when running mkudffs on whole disk, not on just one partition. Valid options are:

preserve

preserve existing UDF boot area, do not touch it (default for media type different from hd)

erase

erase existing UDF boot area, fill it by zeros (default for hd media type on partitions and on removable disks)

mbr

put MBR table with one partition which starts at sector 0 (includes MBR itself) and spans whole disk device, needed only for non-removable hard disks used on Microsoft Windows systems (default for hd media type on non-removable hard disk without partitions), see section WHOLE DISK VS PARTITION

mbr:sec-size

same as mbr but explicitly set MBR sector size to sec-size value, default sec-size is device logical block (sector) size with fallback to size 512 bytes

(Option available since mkudffs 2.0)

--strategy= strategy

Specify the allocation strategy to use. Valid strategies are 4 and 4096. If omitted, mkudffs strategy is based on the --media-type.

--spartable, --spartable= spartable-number

Enable usage Sparing Table. Optionally specify also the number of sparing tables. Valid numbers are 1–4. When the spartable number is omitted then two tables are written to the disc. If the option is omitted then usage of Sparing Table depends on the media type. (Option prior to mkudffs 2.0 was available only for cdrw media type)

--sparspace= num-of-entires

Specify the number of entries in Sparing Table. If omitted, the default number of entries is 1024, but depends on the media type. (Option available since mkudffs 2.0)

--packetlen= length

Packet length in a number of blocks used for alignment. All continuous UDF structures would be aligned to packets. It specifies also the size of the Sparing Space and packet length in Sparing Table. It should match the device ECC/packet length. If omitted, default value for DVD discs is 16 blocks, for CD/BD discs it is 32 blocks and otherwise 1 block. (Option prior to mkudffs 2.1 was available only for cdrw and dvdrw media types)

--vat

Enable usage of Virtual Allocation Table (VAT). If omitted, usage depends on the media type. (Option available since mkudffs 2.0)

--startblock= start-block

Specify the block location where the UDF filesystem starts. Normally start block is 0, but when creating second or higher session for Multisession UDF optical disc it is the block location where that new session starts.

When updating existing Multisession UDF image file, mkudffs overwrites only data blocks for a new session at start block position in the image file.

When creating a new UDF image file, mkudffs stores only data blocks for a new session at beginning of the image file. Therefore data for start block would be written to the zero block instead of the start block. Such image without leading blocks (where are located previous sessions) is suitable for burning a new session to the optical disc. But it cannot be read or detected by any UDF tool until leading zero blocks (or previous sessions) are prepended to the image file.

For calculating position where a new session of particular optical disc should start is required to use software which would be used for burning newly created image. So for example, if for burning is used wodim(1) then second value on output from wodim -msinfo call is start block. Accordingly for cdrecord(1) call cdrecord -msinfo or for cdrdao(1) call cdrdao msinfo or for xorriso(1) call xorriso -as cdrecord dev=/dev/cdrw -msinfo.

(Option available since mkudffs 2.3)

--minblocks= min-num-of-blocks

Specify minimal number of blocks to write on disc with Virtual Allocation Table. This option affects block position where is written Virtual Allocation Table. And in case option --closed is used then also it affects block position of the second Anchor Volume Descriptor Pointer.

Default value for cdr media type is 300. This is safe default to allow burning CD-R disc image in Track-at-Once mode. This mode requires to burn image with minimal size of 300 sectors. Burning CD-R discs in other modes (e.g. Disc-at-Once or Packet-Writing) may allow to allow to use also smaller disc images.

For all other media types there is no default minimal limit.

(Option available since mkudffs 2.3)

--closed

Close disc with Virtual Allocation Table. AVDP is written also to the end of the disc. By default, the disc with Virtual Allocation Table is not closed.

--space= space

Specify the Space Set. Unallocated Space Set is used for media which blocks may be allocated immediately. Freed Space Set is used for media which blocks needs to be specially prepared/erased before allocation. In Space Table is stored list of unallocated extents. In Space Bitmap is stored bitmap of unallocated blocks. Not used for VAT.

freedbitmap

Freed Bitmap

freedtable

Freed Table

unallocbitmap

Unallocated Bitmap (default)

unalloctable

Unallocated Table

--ad= ad

Specify the Allocation Descriptors of the root (/) directory.

inicb

Allocation Descriptors in ICB (default)

short

Short Allocation Descriptors

long

Long Allocation Descriptors

--noefe

Don't Use Extended File Entries for the root (/) directory. Affects only UDF 2.00 or higher. Must be specified after --udfrev.

--locale

Treat identifier string options as strings encoded according to the current locale settings (default). Must be specified as the first argument. (Option available since mkudffs 2.0)

--u8

Treat identifier string options as strings encoded in 8-bit OSTA Compressed Unicode format without leading Compression ID byte, which is equivalent to Latin1 (ISO-8859-1). Must be specified as first argument.

--u16

Treat identifier string options as strings encoded in 16-bit OSTA Compressed Unicode format without leading Compression ID byte, which is equivalent to UTF-16BE. Note that it is not possible to include zero byte in command line options, therefore any character which has at least one zero byte cannot be supplied (this applies to all Latin1 characters). Must be specified as the first argument.

--utf8

Treat identifier string options as strings encoded in UTF-8. Must be specified as the first argument. (Prior to mkudffs 2.0 this was default option)

## COMPATIBILITY

### OPERATING SYSTEMS SUPPORT
UDF filesystem is natively supported by large amount of operating systems. See following compatibility table:

Operating system

Maximum UDF revision for

Name

Version

read

write

Linux

2.3.17 – 2.4.5

2.00

2.00

2.4.6 – 2.6.25

2.01

2.01

2.6.26 (and new)

2.50

2.01

Windows

98/Me

1.02

none

2000

1.50

none

XP

2.01

none

Vista (and new)

2.60

2.50

Mac OS

8.1 – 8.5

1.02

none

8.6 – 9.2

1.50

1.50

Mac OS X

10.0 – 10.3

1.50

1.50

10.4

2.01

2.01

10.5 (and new)

2.60

2.50

FreeBSD

5 (and new)

1.50

none

NetBSD

4.0

2.60

none

5.0 (and new)

2.60

2.60

OpenBSD

3.8 – 3.9

1.02

none

4.0 – 4.6

1.50

4.7 (and new)

2.60

Solaris

7 (and new)

1.50

1.50

AIX

5.2 (and new)

2.01

2.01

Note that Windows 98 and Windows Me can read UDF filesystem only from CD and DVD optical discs, not from hard disks.

### BLOCK SIZE
In most cases, operating systems are unable to mount UDF filesystem if UDF block size differs from logical sector size of the device. Typically hard disks have sector size 512 bytes and optical media 2048 bytes. Therefore UDF block size must match the logical sector size of the device.

Linux kernel prior to version 2.6.30 used hardcoded UDF block size of 2048 bytes independently of logical sector size, therefore it was not able to automatically mount UDF filesystem if block size differed from 2048. Since 2.6.30 and prior to 4.11 Linux kernel used a logical sector size of the device as UDF block size, plus it tried fallback to 2048. Since 4.11 it uses logical sector size and fallbacks to any valid block size between logical sector size and 4096. Therefore since version 2.6.30 Linux kernel can automatically mount UDF filesystems correctly if UDF block size matches device logical sector size and since version 4.11 can automatically also mount devices which sector size does not match UDF block size. In any case and also for Linux kernel prior to version 2.6.30, different UDF block size (which is not autodetected) can be manually specified via bs=blocksize mount parameter.

### WHOLE DISK VS PARTITION
UDF filesystem is supposed to be formatted on the whole media and not to the partitioned hard disk. Mac OS X systems enforce this rule and reject to automatically mount UDF filesystem unless it is formatted on the whole unpartitioned hard disk. Possible partition table (e.g. MBR or GPT) on disk with valid UDF filesystem is ignored. On the other hand, Microsoft Windows systems are unable to detect non-removable hard disks without MBR or GPT partition table. Removable disks do not have this restriction. A consequence is that non-removable hard disks formatted to UDF by Windows Vista+ are not recognized by Mac OS X systems and vice-versa. Note that manual mount of UDF partition on partitioned hard disk on Mac OS X system is possible and working (e.g. by running commands: mkdir /Volumes/DriveName && mount_udf /dev/disk1s1 /Volumes/DriveName). But there is no known way to mount an unpartitioned non-removable disk on Windows system.

Thanks to reserved and unused UDF boot area (first 32kB of UDF filesystem) it is possible to deal with this problem, by putting MBR on such non-removable hard disk just for compatibility reasons with Windows. Such MBR table would contain one partition which starts at sector 0 (includes MBR itself) and spans whole disk device. So the whole disk device and also the first partition on disk points to same sectors. Therefore UDF filesystem can be mounted either from whole disk device (needed for Mac OS X systems) or from first partition (needed for Microsoft Windows systems).

Linux kernel ignores MBR table if contains partition which starts at sector 0. Normally Linux kernel can detect and mount UDF filesystem either on a partition or on whole disk device. It does not have any restrictions.

mkudffs option --bootarea=mbr put such MBR table for compatibility with Microsoft Windows systems into disk when formatting.

### LINUX LABEL BUGS
In most cases Logical Volume Identifier is used as UDF label. But Linux libblkid prior to version 2.26 used Volume Identifier. Therefore mkudffs --label for compatibility reasons set both Logical Volume Identifier and Volume Identifier.

Linux libblkid prior to version 2.30 incorrectly processed non-ASCII identifier strings encoded in 8-bit OSTA Compressed Unicode format. Therefore mkudffs since version 2.0 for compatibility reasons tries to encode a non-ASCII identifier strings in 16-bit OSTA Compressed Unicode format and then fallbacks to 8-bit format.

For more information about UDF Label and UUID see udflabel(8) section UDF LABEL AND UUID.

## EXIT STATUS
mkudffs returns 0 if successful, non-zero if there are problems.

## LIMITATIONS
mkudffs cannot create UDF 2.50 Metadata partition, therefore it does not support UDF revisions higher than 2.01 for non Write Once media yet. So there is no support for Blu-ray discs which needs UDF 2.50 (except for Blu-ray Disc Recordable which does not require Metadata partition).

mkudffs prior to version 2.2 was unable to process Unicode strings with code points above U+FFFF. When option --utf8 was specified then input strings were limited to 3-byte UTF-8 sequences and when option --u16 was specified then input strings were limited just to UCS-2BE strings (subset of UTF-16BE).

## BUGS
mkudffs prior to version 1.1 was unable to process non-ASCII characters from identifier strings in --utf8 mode, --vsid option was completely broken and --blocksize must have been manually specified for hard disks as default value was hardcoded for optical disks. mkudffs prior to version 2.0 generated broken and unreadable cdr disc images.

## AUTHOR

```
Ben Fennema
Pali Rohár <pali.rohar@gmail.com>
```

## AVAILABILITY
mkudffs is part of the udftools package and is available from https://github.com/pali/udftools/.

## SEE ALSO
pktsetup(8), udflabel(8), cdrwtool(1), udfinfo(1), wrudf(1)


pktsetup

title: pktsetup(8)

text:
# pktsetup(8)

## NAME
pktsetup - set up and tear down packet device associations

## SYNOPSIS
pktsetup packet_device block_device

pktsetup -d packet_device

pktsetup -s

## DESCRIPTION
Pktsetup is used to associate packet devices with CD or DVD block devices, so that the packet device can then be mounted and potentially used as a read/write filesystem. This requires kernel support for the packet device, and the UDF filesystem.

See: HOWTO.udf (in the udftools documents directory)

## EXIT STATUS
Pktsetup returns 0 on success, nonzero on failure.

## OPTIONS
-d packet-device

Delete the association between the specified packet-device and its block device.

-s

Show the current device mapping, one device per line, in the format

name : pktdevid -> blkdevid

(e.g. "0 : 253:0 -> 22:0")

## EXAMPLE
The following commands provide an example of using the packet device.

```
cdrwtool -d /dev/sr0 -q
pktsetup 0 /dev/sr0
mount -t udf /dev/pktcdvd0 /mnt

 ...
umount /dev/pktcdvd0
pktsetup -d 0
```

## FILES

```
/dev/pktcdvd0,/dev/pktcdvd1,...  CD/DVD packet devices
```

## AUTHOR

```
Jens Axboe <axboe@suse.de>
Some additions by Richard Atterer <atterer@debian.org>
```

## AVAILABILITY
pktsetup is part of the udftools package and is available from https://github.com/pali/udftools/.

## SEE ALSO
cdrwtool(1)