mirror of
				https://git.proxmox.com/git/mirror_zfs
				synced 2025-10-31 19:05:26 +00:00 
			
		
		
		
	 9c4b6dbb31
			
		
	
	
		9c4b6dbb31
		
	
	
	
	
		
			
			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
		
			
				
	
	
		
			104 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
			
		
		
	
	
			104 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 should be a number with a value between 1 and 2^32-1.
 | |
| If it is 0, zgenhostid will generate a random hostid.
 | |
| 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.
 |