mirror_zfs/man/man8/zgenhostid.8
Georgy Yakovlev 9cc177baa0
cmd/zgenhostid: replace with simple c implementation
It was discovered that dracut scripts and zgenhostid
always generate little-endian /etc/hostid.

This commit provides simple endianess-aware binary
and updates the scripts to use it.

New features include:
 -f flag to force overwrite.
 -o flag to write to different file (for dracut)
 accepting both 0x01234567 and 01234567 values as input

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Olaf Faaland <faaland1@llnl.gov>
Signed-off-by: Georgy Yakovlev <gyakovlev@gentoo.org>
Closes #10887 
Closes #10925
2020-09-16 12:25:12 -07:00

103 lines
2.5 KiB
Groff

.\"
.\" CDDL HEADER START
.\"
.\" The contents of this file are subject to the terms of the
.\" Common Development and Distribution License (the "License").
.\" You may not use this file except in compliance with the License.
.\"
.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
.\" or http://www.opensolaris.org/os/licensing.
.\" See the License for the specific language governing permissions
.\" and limitations under the License.
.\"
.\" When distributing Covered Code, include this CDDL HEADER in each
.\" file and include the License file at usr/src/OPENSOLARIS.LICENSE.
.\" If applicable, add the following below this CDDL HEADER, with the
.\" fields enclosed by brackets "[]" replaced with your own identifying
.\" information: Portions Copyright [yyyy] [name of copyright owner]
.\"
.\" CDDL HEADER END
.\"
.\"
.\" Copyright (c) 2017 by Lawrence Livermore National Security, LLC.
.\"
.Dd September 13, 2020
.Dt ZGENHOSTID 8 SMM
.Os
.Sh NAME
.Nm zgenhostid
.Nd generate and store a hostid in
.Em /etc/hostid
.Sh SYNOPSIS
.Nm
.Op Fl f
.Op Fl o Ar filename
.Op Ar hostid
.Sh DESCRIPTION
Creates
.Pa /etc/hostid
file and stores hostid in it.
If the user provides
.Op Ar hostid
on the command line, validates and stores that value.
Otherwise, randomly generates a value to store.
.Bl -tag -width "hostid"
.It Fl h
Display a summary of the command-line options.
.It Fl f
Force file overwrite.
.It Fl o Ar filename
Write to
.Pa filename
instead of default
.Pa /etc/hostd
.It Ar hostid
Specifies the value to be placed in
.Pa /etc/hostid .
It must be a number with a value between 1 and 2^32-1.
This value
.Sy must
be unique among your systems.
It
.Sy must
be expressed in hexadecimal and be exactly
.Em 8
digits long, optionally prefixed by
.Em 0x .
.El
.Sh FILES
.Pa /etc/hostid
.Sh EXAMPLES
.Bl -tag -width Bd
.It Generate a random hostid and store it
.Bd -literal
# zgenhostid
.Ed
.It Record the libc-generated hostid in Pa /etc/hostid
.Bd -literal
# zgenhostid "$(hostid)"
.Ed
.It Record a custom hostid (0xdeadbeef) in Pa /etc/hostid
.Bd -literal
# zgenhostid deadbeef
.Ed
.It Record a custom hostid (0x01234567) in Pa /tmp/hostid
and ovewrite the file if it exists
.Bd -literal
# zgenhostid -f -o /tmp/hostid 0x01234567
.Ed
.El
.Sh SEE ALSO
.Xr genhostid 1 ,
.Xr hostid 1 ,
.Xr sethostid 3 ,
.Xr spl-module-parameters 5
.Sh HISTORY
.Nm
emulates the
.Xr genhostid 1
utility and is provided for use on systems which
do not include the utility or do not provide
.Xr sethostid 3
call.