29 lines
1.1 KiB
Bash
29 lines
1.1 KiB
Bash
#!/bin/sh
|
|
set -e
|
|
|
|
# The hostname and hostid of the last system to access a ZFS pool are stored in
|
|
# the ZFS pool itself. A pool is foreign if, during `zpool import`, the
|
|
# current hostname and hostid are different than the stored values thereof.
|
|
#
|
|
# The only way of having a stable hostid is to define it in /etc/hostid.
|
|
# This postinst helper will check if we already have the hostid stabilized by
|
|
# checking the existence of the file /etc/hostid to be 4 bytes at least.
|
|
# If this file don't already exists on our system or has less than 4 bytes, then
|
|
# a new (random) value is generated with zgenhostid (8) and stored in
|
|
# /etc/hostid
|
|
|
|
if [ ! -f /etc/hostid ] || [ "$(stat -c %s /etc/hostid)" -lt 4 ] ; then
|
|
zgenhostid
|
|
fi
|
|
|
|
# When processed to here but zfs kernel module is not loaded, the subsequent
|
|
# services would fail to start. In this case the installation process just
|
|
# fails at the postinst stage. The user could do
|
|
# $ sudo modprobe zfs; sudo dpkg --configure -a
|
|
# to complete the installation.
|
|
#
|
|
modprobe -v zfs || true # modprobe zfs does nothing if zfs.ko was already loaded.
|
|
|
|
#DEBHELPER#
|
|
|