2017-07-19 04:11:08 +03:00
|
|
|
.\"
|
|
|
|
.\" 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
|
2022-07-12 00:16:13 +03:00
|
|
|
.\" or https://opensource.org/licenses/CDDL-1.0.
|
2017-07-19 04:11:08 +03:00
|
|
|
.\" 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.
|
|
|
|
.\"
|
2021-05-26 15:04:48 +03:00
|
|
|
.Dd May 26, 2021
|
2021-06-04 23:43:21 +03:00
|
|
|
.Dt ZGENHOSTID 8
|
2020-08-21 21:55:47 +03:00
|
|
|
.Os
|
2021-06-04 23:43:21 +03:00
|
|
|
.
|
2017-07-19 04:11:08 +03:00
|
|
|
.Sh NAME
|
|
|
|
.Nm zgenhostid
|
2021-06-04 23:43:21 +03:00
|
|
|
.Nd generate host ID into /etc/hostid
|
2017-07-19 04:11:08 +03:00
|
|
|
.Sh SYNOPSIS
|
|
|
|
.Nm
|
2020-09-16 22:25:12 +03:00
|
|
|
.Op Fl f
|
|
|
|
.Op Fl o Ar filename
|
2017-07-19 04:11:08 +03:00
|
|
|
.Op Ar hostid
|
2021-06-04 23:43:21 +03:00
|
|
|
.
|
2017-07-19 04:11:08 +03:00
|
|
|
.Sh DESCRIPTION
|
2020-09-16 22:25:12 +03:00
|
|
|
Creates
|
|
|
|
.Pa /etc/hostid
|
2021-06-04 23:43:21 +03:00
|
|
|
file and stores the host ID in it.
|
|
|
|
If
|
|
|
|
.Ar hostid
|
|
|
|
was provided, validate and store that value.
|
|
|
|
Otherwise, randomly generate an ID.
|
|
|
|
.
|
|
|
|
.Sh OPTIONS
|
|
|
|
.Bl -tag -width "-o filename"
|
2020-09-16 22:25:12 +03:00
|
|
|
.It Fl h
|
|
|
|
Display a summary of the command-line options.
|
|
|
|
.It Fl f
|
2021-06-04 23:43:21 +03:00
|
|
|
Allow output overwrite.
|
2020-09-16 22:25:12 +03:00
|
|
|
.It Fl o Ar filename
|
|
|
|
Write to
|
|
|
|
.Pa filename
|
2021-06-04 23:43:21 +03:00
|
|
|
instead of the default
|
|
|
|
.Pa /etc/hostid .
|
2020-09-16 22:25:12 +03:00
|
|
|
.It Ar hostid
|
2017-07-19 04:11:08 +03:00
|
|
|
Specifies the value to be placed in
|
2020-09-16 22:25:12 +03:00
|
|
|
.Pa /etc/hostid .
|
zgenhostid: accept hostid arguments equal to zero.
A common usage pattern for zgenhostid, including in the ZFS dracut
module, is running it as:
zgenhostid $(hostid)
However, zgenhostid only accepted hostid arguments greater than 0, which
meant that, when the output of hostid(1) was "00000000", zgenhostid
would error out, even though 0 is a possible return value for the
gethostid(3) function used by hostid(1):
- On current musl libc, gethostid(3) is a stub that always returns 0.
- On glibc, gethostid(3) will return 0 if /etc/hostid exists but is
smaller than 4 bytes.
In these cases, it makes more sense for zgenhostid to treat a value of 0
as other parts of the zfs codebase do, meaning that a hostid value
couldn't be determined; therefore, it should attempt to generate a
random value to write into /etc/hostid.
The manpage and usage output have been updated to reflect this.
Whitespace has also been fixed in the usage output.
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Georgy Yakovlev <gyakovlev@gentoo.org>
Reviewed-by: Andrew J. Hesford <ajh@sideband.org>
Signed-off-by: Érico Rolim <erico.erc@gmail.com>
Closes #11174
Closes #11189
2020-11-10 17:22:27 +03:00
|
|
|
It should be a number with a value between 1 and 2^32-1.
|
2021-06-04 23:43:21 +03:00
|
|
|
If
|
|
|
|
.Sy 0 ,
|
|
|
|
generate a random ID.
|
2020-09-16 22:25:12 +03:00
|
|
|
This value
|
2021-06-04 23:43:21 +03:00
|
|
|
.Em must
|
2020-09-16 22:25:12 +03:00
|
|
|
be unique among your systems.
|
|
|
|
It
|
2021-06-04 23:43:21 +03:00
|
|
|
.Em must
|
|
|
|
be an 8-digit-long hexadecimal number, optionally prefixed by
|
|
|
|
.Qq 0x .
|
2020-09-16 22:25:12 +03:00
|
|
|
.El
|
2021-06-04 23:43:21 +03:00
|
|
|
.
|
2020-09-16 22:25:12 +03:00
|
|
|
.Sh FILES
|
|
|
|
.Pa /etc/hostid
|
2021-06-04 23:43:21 +03:00
|
|
|
.
|
2017-07-19 04:11:08 +03:00
|
|
|
.Sh EXAMPLES
|
2020-09-16 22:25:12 +03:00
|
|
|
.Bl -tag -width Bd
|
2017-07-19 04:11:08 +03:00
|
|
|
.It Generate a random hostid and store it
|
2021-06-04 23:43:21 +03:00
|
|
|
.Dl # Nm
|
2020-09-16 22:25:12 +03:00
|
|
|
.It Record the libc-generated hostid in Pa /etc/hostid
|
2021-06-04 23:43:21 +03:00
|
|
|
.Dl # Nm Qq $ Ns Pq Nm hostid
|
|
|
|
.It Record a custom hostid Po Ar 0xdeadbeef Pc in Pa /etc/hostid
|
|
|
|
.Dl # Nm Ar deadbeef
|
2022-01-06 22:00:01 +03:00
|
|
|
.It Record a custom hostid Po Ar 0x01234567 Pc in Pa /tmp/hostid No and overwrite the file if it exists
|
2021-06-04 23:43:21 +03:00
|
|
|
.Dl # Nm Fl f o Ar /tmp/hostid 0x01234567
|
2017-07-19 04:11:08 +03:00
|
|
|
.El
|
2021-06-04 23:43:21 +03:00
|
|
|
.
|
2017-07-19 04:11:08 +03:00
|
|
|
.Sh SEE ALSO
|
|
|
|
.Xr genhostid 1 ,
|
2017-09-16 20:51:24 +03:00
|
|
|
.Xr hostid 1 ,
|
2020-09-16 22:25:12 +03:00
|
|
|
.Xr sethostid 3 ,
|
2021-06-04 23:29:26 +03:00
|
|
|
.Xr spl 4
|
2021-06-04 23:43:21 +03:00
|
|
|
.
|
2020-09-16 22:25:12 +03:00
|
|
|
.Sh HISTORY
|
|
|
|
.Nm
|
|
|
|
emulates the
|
|
|
|
.Xr genhostid 1
|
|
|
|
utility and is provided for use on systems which
|
2021-05-26 15:04:48 +03:00
|
|
|
do not include the utility or do not provide the
|
2020-09-16 22:25:12 +03:00
|
|
|
.Xr sethostid 3
|
2021-06-04 23:43:21 +03:00
|
|
|
function.
|