=head1 NAME guestfsd - guestfs daemon =head1 SYNOPSIS guestfsd [-r] [-v|--verbose] =head1 DESCRIPTION C is the libguestfs daemon. Normal users never need to run this program explicitly. This man page discusses what C does in both the libguestfs appliance and when using libguestfs live. =head2 LIBGUESTFS APPLIANCE For the architecture of the libguestfs appliance, see L. After the appliance boots, the F script in the appliance starts C with no arguments. C opens the virtio-serial port on a known path (see L). It initiates the protocol (see L) and processes requests one at a time from the library until the appliance is destroyed. Filesystems are mounted under F and all filesystem operations happen relative to this directory. =head2 LIBGUESTFS LIVE In the libguestfs live case, C is started from the rc-scripts, systemd, etc. The C<-r> option causes the daemon to operate on the root filesystem instead of F. Currently (because of limitations in virtio-serial) only one client can connect at a time, and C must be restarted after each client disconnects. If libguestfs live were changed to use a different transport such as TCP/IP then this limitation could be removed. =head1 OPTIONS =over 4 =item B<-?> =item B<--help> Display brief help. =item B<-c> CHANNEL =item B<--channel> CHANNEL =item B<--channel> fd:N Pass the name of the virtio-serial channel, serial port, etc. over which guestfsd will communicate with the library. If this parameter is not given, then an internal default port is used. The C form causes guestfsd to use the file descriptor C directly. =item B<-l> =item B<--listen> Instead of opening the C and thus expecting that it already exists, create the channel as a Unix domain socket, listen on it, and accept a single connection. This is mainly used for testing the daemon. =item B<-n> =item B<--network> Enable network features in the daemon. =item B<-r> Set the root filesystem to be F (instead of the default which is F). Also do not unmount filesystems when the daemon exits. This option is used to enable libguestfs live. =item B<-v> =item B<--verbose> Enable verbose messages for debugging. The verbose flag is also set if the Linux command line contains the substring C. =back =head1 EXIT STATUS This program returns 0 if successful, or non-zero if there was an error. =head1 FILES =over 4 =item F The virtio serial port which C connects to. =item F The Linux command line is parsed to discover C flags. The following flags are understood: =over 4 =item B Enable verbose messages. This flag is passed by the libguestfs library to the appliance to make the daemon more verbose (it acts like the I<-v> flag on the command line). Unrelated to the daemon, it also causes the appliance init script to print out a lot more debugging information. =item B Set the path to the virtio-serial channel to something other than the default (which is F). This is used by the User-Mode Linux backend to use a regular emulated serial port instead of virtio-serial. =item B This is set if the appliance network is enabled (see C). =back =back =head1 SEE ALSO L, L. =head1 AUTHOR Richard W.M. Jones L =head1 COPYRIGHT Copyright (C) 2009-2025 Red Hat Inc.