diff options
-rwxr-xr-x | functions/defaults.sh | 13 | ||||
-rwxr-xr-x | helpers/lh_binary_grub | 6 | ||||
-rwxr-xr-x | helpers/lh_binary_net | 10 | ||||
-rwxr-xr-x | helpers/lh_binary_syslinux | 27 | ||||
-rwxr-xr-x | helpers/lh_binary_yaboot | 6 | ||||
-rwxr-xr-x | helpers/lh_chroot_hacks | 4 | ||||
-rwxr-xr-x | helpers/lh_config | 88 | ||||
-rw-r--r-- | manpages/lh_config.en.1 | 27 |
8 files changed, 138 insertions, 43 deletions
diff --git a/functions/defaults.sh b/functions/defaults.sh index 30e40621c..c389a6c52 100755 --- a/functions/defaults.sh +++ b/functions/defaults.sh @@ -540,24 +540,27 @@ Set_defaults () LH_MEMTEST="${LH_MEMTEST:-memtest86+}" # Setting netboot filesystem - LH_NET_FILESYSTEM="${LH_NET_FILESYSTEM:-nfs}" + LH_NET_ROOT_FILESYSTEM="${LH_NET_ROOT_FILESYSTEM:-nfs}" # Setting netboot server path - if [ -z "${LH_NET_PATH}" ] + if [ -z "${LH_NET_ROOT_PATH}" ] then case "${LH_MODE}" in debian) - LH_NET_PATH="/srv/debian-live" + LH_NET_ROOT_PATH="/srv/debian-live" ;; debian-edu) - LH_NET_PATH="/srv/debian-edu-live" + LH_NET_ROOT_PATH="/srv/debian-edu-live" ;; esac fi # Setting netboot server address - LH_NET_SERVER="${LH_NET_SERVER:-192.168.1.1}" + LH_NET_ROOT_SERVER="${LH_NET_ROOT_SERVER:-192.168.1.1}" + + # Setting net cow filesystem + LH_NET_COW_FILESYSTEM="${LH_NET_COW_FILESYSTEM:-nfs}" # Setting syslinux configuration file # LH_SYSLINUX_CFG diff --git a/helpers/lh_binary_grub b/helpers/lh_binary_grub index 1c05962e4..5269d0a2e 100755 --- a/helpers/lh_binary_grub +++ b/helpers/lh_binary_grub @@ -178,6 +178,12 @@ then LH_BOOTAPPEND_LIVE="${LH_BOOTAPPEND_LIVE} union=${LH_UNION_FILESYSTEM}" fi +if [ -n "${LH_NET_COW_PATH}" ] +then + Echo_error "Net cow not yet supported on grub" + exit 1 +fi + if [ "${LH_EXPOSED_ROOT}" != "disabled" ] then LH_BOOTAPPEND_LIVE="${LH_BOOTAPPEND_LIVE} exposedroot" diff --git a/helpers/lh_binary_net b/helpers/lh_binary_net index ac7464e32..8c61bcec0 100755 --- a/helpers/lh_binary_net +++ b/helpers/lh_binary_net @@ -59,21 +59,21 @@ then fi # Creating image file -if [ "$(basename ${LH_NET_PATH})" = "chroot" ] +if [ "$(basename ${LH_NET_ROOT_PATH})" = "chroot" ] then mv chroot chroot.tmp fi -mv binary "$(basename ${LH_NET_PATH})" +mv binary "$(basename ${LH_NET_ROOT_PATH})" cd .. -tar cfz binary-net.tar.gz "$(basename ${OLDPWD})/$(basename ${LH_NET_PATH})" "$(basename ${OLDPWD})/tftpboot" +tar cfz binary-net.tar.gz "$(basename ${OLDPWD})/$(basename ${LH_NET_ROOT_PATH})" "$(basename ${OLDPWD})/tftpboot" mv binary-net.tar.gz "${OLDPWD}" cd "${OLDPWD}" -mv "$(basename ${LH_NET_PATH})" binary +mv "$(basename ${LH_NET_ROOT_PATH})" binary -if [ "$(basename ${LH_NET_PATH})" = "chroot" ] +if [ "$(basename ${LH_NET_ROOT_PATH})" = "chroot" ] then mv chroot.tmp chroot fi diff --git a/helpers/lh_binary_syslinux b/helpers/lh_binary_syslinux index 9e85f4612..34ea104ba 100755 --- a/helpers/lh_binary_syslinux +++ b/helpers/lh_binary_syslinux @@ -411,13 +411,13 @@ fi if [ "${LH_BINARY_IMAGES}" = "net" ] then - case "${LH_NET_FILESYSTEM}" in + case "${LH_NET_ROOT_FILESYSTEM}" in nfs) - LH_BOOTAPPEND_LIVE="${LH_BOOTAPPEND_LIVE} netboot=nfs nfsroot=${LH_NET_SERVER}:${LH_NET_PATH}" + LH_BOOTAPPEND_LIVE="${LH_BOOTAPPEND_LIVE} netboot=nfs nfsroot=${LH_NET_ROOT_SERVER}:${LH_NET_ROOT_PATH}" ;; cifs) - LH_BOOTAPPEND_LIVE="${LH_BOOTAPPEND_LIVE} netboot=cifs nfsroot=//${LH_NET_SERVER}${LH_NET_PATH}" + LH_BOOTAPPEND_LIVE="${LH_BOOTAPPEND_LIVE} netboot=cifs nfsroot=//${LH_NET_ROOT_SERVER}${LH_NET_ROOT_PATH}" ;; *) @@ -426,12 +426,29 @@ then ;; esac - if [ -n "${LH_NET_MOUNTOPTIONS}" ] + if [ -n "${LH_NET_ROOT_MOUNTOPTIONS}" ] then - LH_BOOTAPPEND_LIVE="${LH_BOOTAPPEND_LIVE} nfsopts=${LH_NET_MOUNTOPTIONS}" + LH_BOOTAPPEND_LIVE="${LH_BOOTAPPEND_LIVE} nfsopts=${LH_NET_ROOT_MOUNTOPTIONS}" fi fi +if [ -n "${LH_NET_COW_PATH}" ] +then + case "${LH_NET_COW_FILESYSTEM}" in + nfs) + if [ -n "${LH_NET_COW_MOUNTOPTIONS}" ] + then + LH_NET_COW_MOUNTOPTIONS=",${LH_NET_COW_MOUNTOPTIONS}" + fi + LH_BOOTAPPEND_LIVE="${LH_BOOTAPPEND_LIVE} nfscow=${LH_NET_COW_SERVER}:${LH_NET_COW_PATH}${LH_NET_COW_MOUNTOPTIONS}" + ;; + *) + Echo_error "Unsupported net filesystem" + exit 1 + ;; + esac +fi + LH_BOOTAPPEND_LIVE="$(echo ${LH_BOOTAPPEND_LIVE} | sed -e 's/ //')" # Parameters are listed at: linux/Documentation/kernel-parameters.txt diff --git a/helpers/lh_binary_yaboot b/helpers/lh_binary_yaboot index 93fc0bbbb..4f767b795 100755 --- a/helpers/lh_binary_yaboot +++ b/helpers/lh_binary_yaboot @@ -186,6 +186,12 @@ then LH_BOOTAPPEND_LIVE="${LH_BOOTAPPEND_LIVE} union=${LH_UNION_FILESYSTEM}" fi +if [ -n "${LH_NET_COW_PATH}" ] +then + Echo_error "Net cow not yet supported on yaboot" + exit 1 +fi + if [ "${LH_EXPOSED_ROOT}" != "disabled" ] then LH_BOOTAPPEND_LIVE="${LH_BOOTAPPEND_LIVE} exposedroot" diff --git a/helpers/lh_chroot_hacks b/helpers/lh_chroot_hacks index 6eaef4f04..8c08d5504 100755 --- a/helpers/lh_chroot_hacks +++ b/helpers/lh_chroot_hacks @@ -50,6 +50,10 @@ Create_lockfile .lock # Removing udev mac caching rule Chroot "rm -f /etc/udev/rules.d/z25_persistent-net.rules" +# Blanking out fstab, so the live-initramfs will know to populate it +Chroot "rm -f /etc/fstab" +Chroot "touch /etc/fstab" + case "${LH_BINARY_IMAGES}" in net) if [ ! -f chroot/usr/bin/smbmount ] diff --git a/helpers/lh_config b/helpers/lh_config index c3f018a95..741b44292 100755 --- a/helpers/lh_config +++ b/helpers/lh_config @@ -76,10 +76,14 @@ USAGE="${PROGRAM} [--apt apt|aptitude]\n\ \t [--mirror-bootstrap-security URL]\n\ \t [--mirror-bootstrap URL]\n\ \t [--mode debian|debian-edu]\n\ -\t [--net-filesystem nfs|cfs]\n\ -\t [--net-mountoptions OPTIONS]\n\ -\t [--net-path PATH]\n\ -\t [--net-server IP|HOSTNAME]\n\ +\t [--net-root-filesystem nfs|cfs]\n\ +\t [--net-root-mountoptions OPTIONS]\n\ +\t [--net-root-path PATH]\n\ +\t [--net-root-server IP|HOSTNAME]\n\ +\t [--net-cow-filesystem nfs|cfs]\n\ +\t [--net-cow-mountoptions OPTIONS]\n\ +\t [--net-cow-path PATH]\n\ +\t [--net-cow-server IP|HOSTNAME]\n\ \t [-p|--packages-lists FILE]\n\ \t [--packages PACKAGE|\"PACKAGES\"]\n\ \t [--quiet]\n\ @@ -102,7 +106,7 @@ USAGE="${PROGRAM} [--apt apt|aptitude]\n\ Local_arguments () { - ARGUMENTS="$(getopt --longoptions apt:,apt-ftp-proxy:,apt-http-proxy:,apt-pdiffs:,apt-pipeline:,apt-recommends:,apt-secure:,bootstrap:,cache:,cache-indices:,cache-packages:,cache-stages:,debconf-frontend:,debconf-nowarnings:,debconf-priority:,genisoimage:,initramfs:,losetup:,mode:,root-command:,tasksel:,includes:,templates:,architecture:,bootstrap-config:,bootstrap-flavour:,bootstrap-keyring:,distribution:,mirror-bootstrap:,mirror-bootstrap-security:,mirror-binary:,mirror-binary-security:,sections:,chroot-filesystem:,union-filesystem:,exposed-root:,hooks:,interactive:,keyring-packages:,language:,linux-flavours:,linux-packages:,packages:,packages-lists:,tasks:,security:,symlinks:,sysvinit:,binary-images:,binary-indices:,bootappend-install:,bootappend-live:,bootloader:,chroot-build:,debian-installer:,debian-installer-daily:,encryption:,grub-splash:,hostname:,iso-application:,iso-preparer:,iso-publisher:,iso-volume:,memtest:,net-filesystem:,net-mountoptions:,net-path:,net-server:,syslinux-splash:,syslinux-timeout:,username:,source:,source-images:,breakpoints,conffile:,debug,force,help,quiet,usage,verbose,version --name=${PROGRAM} --options a:f:d:m:l:k:p:b:e:s:c:huv --shell sh -- "${@}")" + ARGUMENTS="$(getopt --longoptions apt:,apt-ftp-proxy:,apt-http-proxy:,apt-pdiffs:,apt-pipeline:,apt-recommends:,apt-secure:,bootstrap:,cache:,cache-indices:,cache-packages:,cache-stages:,debconf-frontend:,debconf-nowarnings:,debconf-priority:,genisoimage:,initramfs:,losetup:,mode:,root-command:,tasksel:,includes:,templates:,architecture:,bootstrap-config:,bootstrap-flavour:,bootstrap-keyring:,distribution:,mirror-bootstrap:,mirror-bootstrap-security:,mirror-binary:,mirror-binary-security:,sections:,chroot-filesystem:,union-filesystem:,exposed-root:,hooks:,interactive:,keyring-packages:,language:,linux-flavours:,linux-packages:,packages:,packages-lists:,tasks:,security:,symlinks:,sysvinit:,binary-images:,binary-indices:,bootappend-install:,bootappend-live:,bootloader:,chroot-build:,debian-installer:,debian-installer-daily:,encryption:,grub-splash:,hostname:,iso-application:,iso-preparer:,iso-publisher:,iso-volume:,memtest:,net-root-filesystem:,net-root-mountoptions:,net-root-path:,net-root-server:,net-cow-filesystem:,net-cow-mountoptions:,net-cow-path:,net-cow-server:,syslinux-splash:,syslinux-timeout:,username:,source:,source-images:,breakpoints,conffile:,debug,force,help,quiet,usage,verbose,version --name=${PROGRAM} --options a:f:d:m:l:k:p:b:e:s:c:huv --shell sh -- "${@}")" if [ "${?}" != "0" ] then @@ -464,23 +468,43 @@ Local_arguments () shift 2 ;; - --net-filesystem) - LH_NET_FILESYSTEM="${2}" + --net-root-filesystem) + LH_NET_ROOT_FILESYSTEM="${2}" shift 2 ;; - --net-mountoptions) - LH_NET_MOUNTOPTIONS="${2}" + --net-root-mountoptions) + LH_NET_ROOT_MOUNTOPTIONS="${2}" shift 2 ;; - --net-path) - LH_NET_PATH="${2}" + --net-root-path) + LH_NET_ROOT_PATH="${2}" shift 2 ;; - --net-server) - LH_NET_SERVER="${2}" + --net-root-server) + LH_NET_ROOT_SERVER="${2}" + shift 2 + ;; + + --net-cow-filesystem) + LH_NET_COW_FILESYSTEM="${2}" + shift 2 + ;; + + --net-cow-mountoptions) + LH_NET_COW_MOUNTOPTIONS="${2}" + shift 2 + ;; + + --net-cow-path) + LH_NET_COW_PATH="${2}" + shift 2 + ;; + + --net-cow-server) + LH_NET_COW_SERVER="${2}" shift 2 ;; @@ -911,21 +935,37 @@ LH_ISO_VOLUME="${LH_ISO_VOLUME}" # (Default: ${LH_MEMTEST}) LH_MEMTEST="${LH_MEMTEST}" -# \$LH_NET_FILESYSTEM: set netboot filesystem -# (Default: ${LH_NET_FILESYSTEM}) -LH_NET_FILESYSTEM="${LH_NET_FILESYSTEM}" +# \$LH_NET_ROOT_FILESYSTEM: set netboot filesystem +# (Default: ${LH_NET_ROOT_FILESYSTEM}) +LH_NET_ROOT_FILESYSTEM="${LH_NET_ROOT_FILESYSTEM}" + +# \$LH_NET_ROOT_MOUNTOPTIONS: set nfsopts +# (Default: empty) +LH_NET_ROOT_MOUNTOPTIONS="${LH_NET_ROOT_MOUNTOPTIONS}" + +# \$LH_NET_ROOT_PATH: set netboot server directory +# (Default: ${LH_NET_ROOT_PATH}) +LH_NET_ROOT_PATH="${LH_NET_ROOT_PATH}" + +# \$LH_NET_ROOT_SERVER: set netboot server address +# (Default: ${LH_NET_ROOT_SERVER}) +LH_NET_ROOT_SERVER="${LH_NET_ROOT_SERVER}" + +# \$LH_NET_COW_FILESYSTEM: set net client cow filesystem +# (Default: ${LH_NET_COW_FILESYSTEM}) +LH_NET_COW_FILESYSTEM="${LH_NET_COW_FILESYSTEM}" -# \$LH_NET_MOUNTOPTIONS: set nfsopts +# \$LH_NET_COW_MOUNTOPTIONS: set cow mount options # (Default: empty) -LH_NET_MOUNTOPTIONS="${LH_NET_MOUNTOPTIONS}" +LH_NET_COW_MOUNTOPTIONS="${LH_NET_COW_MOUNTOPTIONS}" -# \$LH_NET_PATH: set netboot server directory -# (Default: ${LH_NET_PATH}) -LH_NET_PATH="${LH_NET_PATH}" +# \$LH_NET_COW_PATH: set cow directory +# (Default: ${LH_NET_COW_PATH}) +LH_NET_COW_PATH="${LH_NET_COW_PATH}" -# \$LH_NET_SERVER: set netboot server address -# (Default: ${LH_NET_SERVER}) -LH_NET_SERVER="${LH_NET_SERVER}" +# \$LH_NET_COW_SERVER: set cow server +# (Default: ${LH_NET_COW_SERVER}) +LH_NET_COW_SERVER="${LH_NET_COW_SERVER}" # \$LH_SYSLINUX_SPLASH: set custom syslinux splash # (Default: empty) diff --git a/manpages/lh_config.en.1 b/manpages/lh_config.en.1 index ccde712fb..170a9785c 100644 --- a/manpages/lh_config.en.1 +++ b/manpages/lh_config.en.1 @@ -113,13 +113,32 @@ Here is the complete list of available options for lh_config. .IP "\fB\-\-mode\fR debian|debian\-edu" 4 -.IP "\fB\-\-net\-filesystem\fR nfs|cfs" 4 +.IP "\fB\-\-net\-root\-filesystem\fR nfs|cfs" 4 -.IP "\fB\-\-net\-mountoptions\fR \fIOPTION\fR|""\fIOPTIONS\fR""" 4 +.IP "\fB\-\-net\-root\-mountoptions\fR \fIOPTION\fR|""\fIOPTIONS\fR""" 4 -.IP "\fB\-\-net\-path\fR \fIPATH\fR" 4 +.IP "\fB\-\-net\-root\-path\fR \fIPATH\fR" 4 -.IP "\fB\-\-net\\-server\fR \fIIP\fR|\fIHOSTNAME\fR" 4 +.IP "\fB\-\-net\-root\\-server\fR \fIIP\fR|\fIHOSTNAME\fR" 4 + +.IP "\fB\-\-net\-cow\-filesystem\fR nfs" 4 + +.IP "\fB\-\-net\-cow\-mountoptions\fR \fIOPTION\fR|""\fIOPTIONS\fR""" 4 + +.IP "\fB\-\-net\-cow\-path\fR \fIPATH\fR" 4 +Specify path to client writable filesystem. Anywhere that +.BI "client_mac_address" +is specified in the path live-initramfs +will substitute the MAC address of the client delimited with hyphens. +.RS +.TP +EXAMPLE: +/export/hosts/client_mac_address +.br +/export/hosts/52-54-00-12-34-56 +.RE + +.IP "\fB\-\-net\-cow\\-server\fR \fIIP\fR|\fIHOSTNAME\fR" 4 .IP "\fB\-p|\-\-packages\-lists\fR \fIFILE\fR" 4 |