Difference between revisions of "Installation on Slackware 14"

From Linux-VServer

Jump to: navigation, search
(Make the guest)
(Contact)
 
(6 intermediate revisions by one user not shown)
Line 1: Line 1:
The purpose of this note is to setup a guest based on Slackware. What follows was tested on Slackware <b>14.1</b>, 14.0, 13.37 and 13.1 (both 32b and 64b). I will assume that you have a Linux-Vserver box working.
+
The purpose of this note is to setup a guest based on Slackware. What follows was tested on Slackware 14.2 to 13.1 (both 32b and 64b). I will assume that you have a Linux-Vserver box working.
  
 
== Download ==
 
== Download ==
 
<pre>
 
<pre>
wget http://notes.sagredo.eu/sites/notes.sagredo.eu/files/linux-vserver/slack_vserver.tar.gz
+
wget https://notes.sagredo.eu/sites/notes.sagredo.eu/files/linux-vserver/slack_vserver.tar.gz
 
tar xzf slack_vserver.tar.gz
 
tar xzf slack_vserver.tar.gz
 
cd slack_vserver
 
cd slack_vserver
Line 108: Line 108:
 
#
 
#
 
# Comments are welcome :-)
 
# Comments are welcome :-)
# More info here: http://notes.sagredo.eu/node/7
+
# More info here: https://notes.sagredo.eu/other-contents-186/slackware-guest-on-linux-vserver-7.html
  
 
# adjust this to where your things live
 
# adjust this to where your things live
Line 261: Line 261:
 
<pre>
 
<pre>
 
cd /vservers/vserver_name/etc/rc.d
 
cd /vservers/vserver_name/etc/rc.d
patch -p1 < /path/to/slack_vserver/slackware-14.1.patch
+
patch -p1 < /path/to/slack_vserver/slackware-14.2.patch
 
</pre>
 
</pre>
  
Inside the tarball you can find the old patch for Slackware 14.0, 13.37 and 13.1, if you like.
+
Inside the tarball you can find the old patch for Slackware 14.1, 14.0, 13.37 and 13.1, if you like.
  
 
== Post installation tasks ==
 
== Post installation tasks ==
Line 281: Line 281:
 
== Patch applayed ==
 
== Patch applayed ==
 
<pre>
 
<pre>
Patch for Slackware 14.1 guest on a Linux-Vserver host
+
diff -ruN rc.d-original/rc.6 rc.d/rc.6
========================================================
+
--- rc.d-original/rc.6 2016-03-26 17:48:37.000000000 +0100
by Roberto Puzzanghera - http://notes.sagredo.eu
+
+++ rc.d/rc.6 2016-07-09 14:08:48.470713168 +0200
version: 2013.12.29
+
@@ -37,36 +37,6 @@
========================================================
+
 
+
diff -ruN rc.d-original/rc.0 rc.d/rc.0
+
--- rc.d-original/rc.0 2013-09-23 01:43:20.000000000 +0200
+
+++ rc.d/rc.0 2013-12-29 12:13:33.000000000 +0100
+
@@ -37,22 +37,6 @@
+
 
  ;;
 
  ;;
 
  esac
 
  esac
 
   
 
   
 
-# Save the system time to the hardware clock using hwclock --systohc.
 
-# Save the system time to the hardware clock using hwclock --systohc.
 +
-# This will also create or update the timestamps in /etc/adjtime.
 
-if [ -x /sbin/hwclock ]; then
 
-if [ -x /sbin/hwclock ]; then
 
-  # Check for a broken motherboard RTC clock (where ioports for rtc are
 
-  # Check for a broken motherboard RTC clock (where ioports for rtc are
 
-  # unknown) to prevent hwclock causing a hang:
 
-  # unknown) to prevent hwclock causing a hang:
-  if ! grep -q -w rtc /proc/ioports ; then
+
-  if ! grep -q " : rtc" /proc/ioports ; then
 
-    CLOCK_OPT="--directisa"
 
-    CLOCK_OPT="--directisa"
 
-  fi
 
-  fi
-  if grep -q "^UTC" /etc/hardwareclock 2> /dev/null ; then
+
if [ /etc/adjtime -nt /etc/hardwareclock ]; then
 +
-    if grep -q "^LOCAL" /etc/adjtime ; then
 +
-      echo "Saving system time to the hardware clock (localtime)."
 +
-    else
 +
-      echo "Saving system time to the hardware clock (UTC)."
 +
-    fi
 +
-    /sbin/hwclock $CLOCK_OPT --systohc
 +
-  elif grep -q "^UTC" /etc/hardwareclock 2> /dev/null ; then
 
-    echo "Saving system time to the hardware clock (UTC)."
 
-    echo "Saving system time to the hardware clock (UTC)."
 +
-    if [ ! -r /etc/adjtime ]; then
 +
-      echo "Creating system time correction file /etc/adjtime."
 +
-    fi
 
-    /sbin/hwclock $CLOCK_OPT --utc --systohc
 
-    /sbin/hwclock $CLOCK_OPT --utc --systohc
 
-  else
 
-  else
 
-    echo "Saving system time to the hardware clock (localtime)."
 
-    echo "Saving system time to the hardware clock (localtime)."
-    /sbin/hwclock $CLOCK_OPT --localtime --systohc
+
-    if [ ! -r /etc/adjtime ]; then
 +
-      echo "Creating system time correction file /etc/adjtime."
 +
-    fi
 +
-    /sbin/hwclock $CLOCK_OPT --localtime --systohc
 
-  fi
 
-  fi
 
-fi
 
-fi
Line 313: Line 321:
 
  if [ -x /etc/rc.d/rc.local_shutdown ]; then
 
  if [ -x /etc/rc.d/rc.local_shutdown ]; then
 
   /etc/rc.d/rc.local_shutdown stop
 
   /etc/rc.d/rc.local_shutdown stop
@@ -98,24 +82,6 @@
+
@@ -126,10 +96,6 @@
   sh /etc/rc.d/rc.messagebus stop
+
   sleep $FUSER_DELAY
 
  fi
 
  fi
 
   
 
   
-# Kill any processes (typically gam) that would otherwise prevent
 
-# unmounting NFS volumes:
 
-unset FUSER_DELAY
 
-for dir in $(/bin/mount | grep 'type nfs' | cut -d ' ' -f 3 ) ; do
 
-  echo "Killing processes holding NFS mount $dir open..."
 
-  # Background this to prevent fuser from also blocking shutdown:
 
-  /usr/bin/fuser -k -m $dir &
 
-  FUSER_DELAY=5
 
-done
 
-# If fuser was run, let it have some delay:
 
-if [ ! -z "$FUSER_DELAY" ]; then
 
-  sleep $FUSER_DELAY
 
-fi
 
-
 
 
-# Unmount any NFS, SMB, or CIFS filesystems:
 
-# Unmount any NFS, SMB, or CIFS filesystems:
-echo "Unmounting remote filesystems."
+
-echo "Unmounting remote filesystems:"
-/bin/umount -v -a -l -f -r -t nfs,smbfs,cifs
+
-/bin/umount -v -a -l -f -r -t nfs,smbfs,cifs | tr -d ' ' | grep successfully | sed "s/:successfullyunmounted/ has been successfully unmounted./g"
 
-
 
-
 
  # Try to shut down pppd:
 
  # Try to shut down pppd:
 
  PS="$(ps ax)"
 
  PS="$(ps ax)"
 
  if echo "$PS" | /bin/grep -q -w pppd ; then
 
  if echo "$PS" | /bin/grep -q -w pppd ; then
@@ -131,45 +97,11 @@
+
@@ -215,22 +181,11 @@
  fi
+
fi
+
+
-# Bring down the networking system, but first make sure that this
+
-# isn't a diskless client with the / partition mounted via NFS:
+
-if ! /bin/mount | /bin/grep -q 'on / type nfs' ; then
+
-  if [ -x /etc/rc.d/rc.inet1 ]; then
+
-    . /etc/rc.d/rc.inet1 stop
+
-  fi
+
-fi
+
-
+
-# In case dhcpcd might have been manually started on the command line,
+
-# look for the .pid file, and shut dhcpcd down if it's found:
+
-if /bin/ls /etc/dhcpc/*.pid 1> /dev/null 2> /dev/null ; then
+
-  /sbin/dhcpcd -k 1> /dev/null 2> /dev/null
+
-  # A little time for /etc/resolv.conf and/or other files to
+
-  # restore themselves.
+
-  sleep 2
+
-fi
+
-
+
-# Shut down PCMCIA devices:
+
-if [ -x /etc/rc.d/rc.pcmcia ]; then
+
-  . /etc/rc.d/rc.pcmcia stop
+
-  # The cards might need a little extra time here to deactivate:
+
-  /bin/sleep 5
+
-fi
+
-
+
# Turn off process accounting:
+
if [ -x /sbin/accton -a -r /var/log/pacct ]; then
+
  /sbin/accton off
+
fi
+
+
-# Terminate acpid before syslog:
+
-if [ -x /etc/rc.d/rc.acpid -a -r /var/run/acpid.pid ]; then # quit
+
-  . /etc/rc.d/rc.acpid stop
+
-fi
+
-
+
-# Stop udev:
+
-if [ -x /etc/rc.d/rc.udev ]; then
+
-  sh /etc/rc.d/rc.udev force-stop
+
-fi
+
-
+
# Kill all remaining processes.
+
if [ ! "$1" = "fast" ]; then
+
  echo "Sending all processes the SIGTERM signal."
+
@@ -187,16 +119,6 @@
+
  fi
+
fi
+
+
-# Carry a random seed between reboots.
+
-echo "Saving random seed from /dev/urandom in /etc/random-seed."
+
-# Use the pool size from /proc, or 4096 bits:
+
-if [ -r /proc/sys/kernel/random/poolsize ]; then
+
-  /bin/dd if=/dev/urandom of=/etc/random-seed count=1 bs=$(expr $(cat /proc/sys/kernel/random/poolsize) / 8) 2> /dev/null
+
-else
+
-  /bin/dd if=/dev/urandom of=/etc/random-seed count=1 bs=512 2> /dev/null
+
-fi
+
-/bin/chmod 600 /etc/random-seed
+
-
+
 
  # Before unmounting file systems write a reboot or halt record to wtmp.
 
  # Before unmounting file systems write a reboot or halt record to wtmp.
  $command -w
+
  $shutdown_command -w
+
@@ -205,80 +127,5 @@
+
  rm -f /var/lock/subsys/*
+
fi
+
 
   
 
   
 
-# Turn off swap:
 
-# Turn off swap:
Line 410: Line 341:
 
-/bin/sync
 
-/bin/sync
 
-
 
-
-echo "Unmounting local file systems."
+
# Stop cgmanager and cgproxy:
-/bin/umount -v -a -t no,proc,sysfs
+
if [ -x /etc/rc.d/rc.cgmanager ]; then
 +
  sh /etc/rc.d/rc.cgmanager stop
 +
fi
 +
 +
-echo "Unmounting local file systems:"
 +
-/bin/umount -v -a -t no,proc,sysfs | tr -d ' ' | grep successfully | sed "s/:successfullyunmounted/ has been successfully unmounted./g" 2> /dev/null
 
-
 
-
-echo "Remounting root filesystem read-only."
+
-echo "Remounting root filesystem read-only:"
 
-/bin/mount -v -n -o remount,ro /
 
-/bin/mount -v -n -o remount,ro /
 
-
 
-
 
  # This never hurts:
 
  # This never hurts:
 
  /bin/sync
 
  /bin/sync
-
+
   
-# Close any volumes opened by cryptsetup:
+
@@ -288,12 +243,3 @@
-if [ -f /etc/crypttab -a -x /sbin/cryptsetup ]; then
+
     fi
- cat /etc/crypttab | grep -v "^#" | grep -v "^$" | while read line; do
+
   fi
-   # NOTE: we only support LUKS formatted volumes (except for swap)!
+
  fi
-    LUKS=$(echo $line | tr '\t' ' ' | tr -s ' ' | cut -f1 -d' ')
+
-    DEV=$(echo $line | tr '\t' ' ' | tr -s ' ' | cut -f2 -d' ')
+
-    OPTS=$(echo $line | tr '\t' ' ' | tr -s ' ' | cut -f4 -d' ')
+
-    if /sbin/cryptsetup isLuks $DEV 2>/dev/null ; then
+
-      echo "Locking LUKS crypt volume '${LUKS}':"
+
-      /sbin/cryptsetup luksClose ${LUKS}
+
-    elif echo $OPTS | grep -wq swap ; then
+
-      # If any of the volumes was used as encrypted swap,
+
-     # then run mkswap on the underlying device -
+
-      # in case other Linux installations on this computer should use it:
+
-      echo "Erasing encrypted swap '${LUKS}' and restoring normal swap on ${DEV}:"
+
-      /sbin/cryptsetup remove ${LUKS}
+
-      mkswap $DEV
+
-    fi
+
-  done
+
-fi
+
-
+
-# Deactivate LVM volume groups:
+
-if [ -r /etc/lvmtab -o -d /etc/lvm/backup ]; then
+
-  echo "Deactivating LVM volume groups:"
+
-  /sbin/vgchange -an --ignorelockingfailure
+
-fi
+
-
+
-# This never hurts again (especially since root-on-LVM always fails
+
-# to deactivate the / logical volume...  but at least it was
+
-# remounted as read-only first)
+
-/bin/sync
+
-
+
-# sleep 3 fixes problems with some hard drives that don't
+
-# otherwise finish syncing before reboot or poweroff
+
-/bin/sleep 3
+
-
+
-# This is to ensure all processes have completed on SMP machines:
+
-wait
+
-
+
-if [ -x /sbin/genpowerd ]; then
+
-  # See if this is a powerfail situation:
+
-  if /bin/egrep -q "FAIL|SCRAM" /etc/upsstatus 2> /dev/null ; then
+
-    # Signal UPS to shut off the inverter:
+
-    /sbin/genpowerd -k
+
-    if [ ! $? = 0 ]; then
+
-      echo
+
-      echo "There was an error signaling the UPS."
+
-      echo "Perhaps you need to edit /etc/genpowerd.conf to configure"
+
-      echo "the serial line and UPS type."
+
-      # Wasting 15 seconds of precious power:
+
-      /bin/sleep 15
+
-   fi
+
- fi
+
-fi
+
 
-
 
-
 
-# Now halt (poweroff with APM or ACPI enabled kernels) or reboot.
 
-# Now halt (poweroff with APM or ACPI enabled kernels) or reboot.
-if [ "$command" = "reboot" ]; then
+
-if [ "$shutdown_command" = "reboot" ]; then
 
-  echo "Rebooting."
 
-  echo "Rebooting."
 
-  /sbin/reboot
 
-  /sbin/reboot
Line 482: Line 368:
 
-fi
 
-fi
 
-
 
-
diff -ruN rc.d-original/rc.6 rc.d/rc.6
+
diff -ruN rc.d-original/rc.M rc.d/rc.M
--- rc.d-original/rc.6 2013-09-23 01:43:20.000000000 +0200
+
--- rc.d-original/rc.M 2016-05-05 06:27:00.000000000 +0200
+++ rc.d/rc.6 2013-12-29 12:13:33.000000000 +0100
+
+++ rc.d/rc.M 2016-07-09 14:14:20.090096570 +0200
@@ -37,22 +37,6 @@
+
@@ -20,10 +20,6 @@
;;
+
   /sbin/ldconfig &
esac
+
+
-# Save the system time to the hardware clock using hwclock --systohc.
+
-if [ -x /sbin/hwclock ]; then
+
-  # Check for a broken motherboard RTC clock (where ioports for rtc are
+
-  # unknown) to prevent hwclock causing a hang:
+
-  if ! grep -q -w rtc /proc/ioports ; then
+
-    CLOCK_OPT="--directisa"
+
-  fi
+
-  if grep -q "^UTC" /etc/hardwareclock 2> /dev/null ; then
+
-    echo "Saving system time to the hardware clock (UTC)."
+
-   /sbin/hwclock $CLOCK_OPT --utc --systohc
+
-  else
+
-    echo "Saving system time to the hardware clock (localtime)."
+
-    /sbin/hwclock  $CLOCK_OPT --localtime --systohc
+
-  fi
+
-fi
+
-
+
# Run any local shutdown scripts:
+
if [ -x /etc/rc.d/rc.local_shutdown ]; then
+
  /etc/rc.d/rc.local_shutdown stop
+
@@ -98,24 +82,6 @@
+
  sh /etc/rc.d/rc.messagebus stop
+
 
  fi
 
  fi
 
   
 
   
-# Kill any processes (typically gam) that would otherwise prevent
+
-# Screen blanks after 15 minutes idle time, and powers down in one hour
-# unmounting NFS volumes:
+
-# if the kernel supports APM or ACPI power management:
-unset FUSER_DELAY
+
-/bin/setterm -blank 15 -powersave powerdown -powerdown 60
-for dir in $(/bin/mount | grep 'type nfs' | cut -d ' ' -f 3 ) ; do
+
- echo "Killing processes holding NFS mount $dir open..."
+
# Background this to prevent fuser from also blocking shutdown:
+
- /usr/bin/fuser -k -m $dir &
+
-  FUSER_DELAY=5
+
-done
+
-# If fuser was run, let it have some delay:
+
-if [ ! -z "$FUSER_DELAY" ]; then
+
-  sleep $FUSER_DELAY
+
-fi
+
 
-
 
-
-# Unmount any NFS, SMB, or CIFS filesystems:
+
# Set the hostname.
-echo "Unmounting remote filesystems."
+
if [ -r /etc/HOSTNAME ]; then
-/bin/umount -v -a -l -f -r -t nfs,smbfs,cifs
+
  /bin/hostname $(cat /etc/HOSTNAME | cut -f1 -d .)
-
+
@@ -109,13 +105,6 @@
# Try to shut down pppd:
+
   sh /etc/rc.d/rc.bluetooth start
PS="$(ps ax)"
+
if echo "$PS" | /bin/grep -q -w pppd ; then
+
@@ -131,45 +97,11 @@
+
   fi
+
 
  fi
 
  fi
 
   
 
   
-# Bring down the networking system, but first make sure that this
+
-# Start wicd or networkmanager:
-# isn't a diskless client with the / partition mounted via NFS:
+
-if [ -x /etc/rc.d/rc.wicd -a -x /usr/sbin/wicd ]; then
-if ! /bin/mount | /bin/grep -q 'on / type nfs' ; then
+
sh /etc/rc.d/rc.wicd start
if [ -x /etc/rc.d/rc.inet1 ]; then
+
-elif [ -x /etc/rc.d/rc.networkmanager ]; then
-   . /etc/rc.d/rc.inet1 stop
+
- sh /etc/rc.d/rc.networkmanager start
-  fi
+
 
-fi
 
-fi
 
-
 
-
-# In case dhcpcd might have been manually started on the command line,
+
# Start networking daemons:
-# look for the .pid file, and shut dhcpcd down if it's found:
+
  if [ -x /etc/rc.d/rc.inet2 ]; then
-if /bin/ls /etc/dhcpc/*.pid 1> /dev/null 2> /dev/null ; then
+
  . /etc/rc.d/rc.inet2
- /sbin/dhcpcd -k 1> /dev/null 2> /dev/null
+
@@ -126,14 +115,6 @@
-  # A little time for /etc/resolv.conf and/or other files to
+
  . /etc/rc.d/rc.scanluns
-  # restore themselves.
+
-  sleep 2
+
-fi
+
-
+
-# Shut down PCMCIA devices:
+
-if [ -x /etc/rc.d/rc.pcmcia ]; then
+
. /etc/rc.d/rc.pcmcia stop
+
- # The cards might need a little extra time here to deactivate:
+
/bin/sleep 5
+
-fi
+
-
+
# Turn off process accounting:
+
if [ -x /sbin/accton -a -r /var/log/pacct ]; then
+
  /sbin/accton off
+
 
  fi
 
  fi
 
   
 
   
-# Terminate acpid before syslog:
+
-# Mount any additional filesystem types that haven't already been mounted:
-if [ -x /etc/rc.d/rc.acpid -a -r /var/run/acpid.pid ]; then # quit
+
-mount -a -v 2> /dev/null | grep -v -e "already mounted" -e "ignored" | cut -f 1 -d : | tr -d ' ' | while read dev ; do mount | grep "${dev} " ; done
- . /etc/rc.d/rc.acpid stop
+
-fi
+
 
-
 
-
-# Stop udev:
+
-# Start the Control Script for automounter:
-if [ -x /etc/rc.d/rc.udev ]; then
+
-if [ -x /etc/rc.d/rc.autofs ]; then
-  sh /etc/rc.d/rc.udev force-stop
+
-  sh /etc/rc.d/rc.autofs start
 
-fi
 
-fi
 
-
 
-
  # Kill all remaining processes.
+
  # Start the Network Time Protocol daemon:
  if [ ! "$1" = "fast" ]; then
+
  if [ -x /etc/rc.d/rc.ntpd ]; then
   echo "Sending all processes the SIGTERM signal."
+
   sh /etc/rc.d/rc.ntpd start
@@ -187,16 +119,6 @@
+
@@ -153,16 +134,6 @@
  fi
+
chmod 755 / 2> /dev/null
  fi
+
  chmod 1777 /tmp /var/tmp
 
   
 
   
-# Carry a random seed between reboots.
+
-# Start ACPI daemon.
-echo "Saving random seed from /dev/urandom in /etc/random-seed."
+
-if [ -x /etc/rc.d/rc.acpid ]; then
-# Use the pool size from /proc, or 4096 bits:
+
. /etc/rc.d/rc.acpid start
-if [ -r /proc/sys/kernel/random/poolsize ]; then
+
/bin/dd if=/dev/urandom of=/etc/random-seed count=1 bs=$(expr $(cat /proc/sys/kernel/random/poolsize) / 8) 2> /dev/null
+
-else
+
-  /bin/dd if=/dev/urandom of=/etc/random-seed count=1 bs=512 2> /dev/null
+
 
-fi
 
-fi
-/bin/chmod 600 /etc/random-seed
 
 
-
 
-
# Before unmounting file systems write a reboot or halt record to wtmp.
+
-# Enable CPU frequency scaling:
$command -w
+
-if [ -x /etc/rc.d/rc.cpufreq ]; then
+
-  . /etc/rc.d/rc.cpufreq start
@@ -205,80 +127,5 @@
+
  rm -f /var/lock/subsys/*
+
fi
+
+
-# Turn off swap:
+
-echo "Turning off swap."
+
-/sbin/swapoff -a
+
-/bin/sync
+
-
+
-echo "Unmounting local file systems."
+
-/bin/umount -v -a -t no,proc,sysfs
+
-
+
-echo "Remounting root filesystem read-only."
+
-/bin/mount -v -n -o remount,ro /
+
-
+
# This never hurts:
+
/bin/sync
+
-
+
-# Close any volumes opened by cryptsetup:
+
-if [ -f /etc/crypttab -a -x /sbin/cryptsetup ]; then
+
-  cat /etc/crypttab | grep -v "^#" | grep -v "^$" | while read line; do
+
-    # NOTE: we only support LUKS formatted volumes (except for swap)!
+
-    LUKS=$(echo $line | tr '\t' ' ' | tr -s ' ' | cut -f1 -d' ')
+
-    DEV=$(echo $line | tr '\t' ' ' | tr -s ' ' | cut -f2 -d' ')
+
-    OPTS=$(echo $line | tr '\t' ' ' | tr -s ' ' | cut -f4 -d' ')
+
-    if /sbin/cryptsetup isLuks $DEV 2>/dev/null ; then
+
-      echo "Locking LUKS crypt volume '${LUKS}':"
+
-      /sbin/cryptsetup luksClose ${LUKS}
+
-    elif echo $OPTS | grep -wq swap ; then
+
-      # If any of the volumes was used as encrypted swap,
+
-      # then run mkswap on the underlying device -
+
-      # in case other Linux installations on this computer should use it:
+
-      echo "Erasing encrypted swap '${LUKS}' and restoring normal swap on ${DEV}:"
+
-      /sbin/cryptsetup remove ${LUKS}
+
-      mkswap $DEV
+
-    fi
+
-  done
+
-fi
+
-
+
-# Deactivate LVM volume groups:
+
-if [ -r /etc/lvmtab -o -d /etc/lvm/backup ]; then
+
-  echo "Deactivating LVM volume groups:"
+
-  /sbin/vgchange -an --ignorelockingfailure
+
-fi
+
-
+
-# This never hurts again (especially since root-on-LVM always fails
+
-# to deactivate the / logical volume...  but at least it was
+
-# remounted as read-only first)
+
-/bin/sync
+
-
+
-# sleep 3 fixes problems with some hard drives that don't
+
-# otherwise finish syncing before reboot or poweroff
+
-/bin/sleep 3
+
-
+
-# This is to ensure all processes have completed on SMP machines:
+
-wait
+
-
+
-if [ -x /sbin/genpowerd ]; then
+
# See if this is a powerfail situation:
+
-  if /bin/egrep -q "FAIL|SCRAM" /etc/upsstatus 2> /dev/null ; then
+
-    # Signal UPS to shut off the inverter:
+
-    /sbin/genpowerd -k
+
-    if [ ! $? = 0 ]; then
+
-      echo
+
-      echo "There was an error signaling the UPS."
+
-      echo "Perhaps you need to edit /etc/genpowerd.conf to configure"
+
-      echo "the serial line and UPS type."
+
-      # Wasting 15 seconds of precious power:
+
-      /bin/sleep 15
+
-    fi
+
-  fi
+
-fi
+
-
+
-# Now halt (poweroff with APM or ACPI enabled kernels) or reboot.
+
-if [ "$command" = "reboot" ]; then
+
-  echo "Rebooting."
+
-  /sbin/reboot
+
-else
+
-  /sbin/poweroff
+
 
-fi
 
-fi
 
-
 
-
 +
# Update any existing icon cache files:
 +
if find /usr/share/icons -maxdepth 2 2> /dev/null | grep -q icon-theme.cache ; then
 +
  for theme_dir in /usr/share/icons/* ; do
 
diff -ruN rc.d-original/rc.inet2 rc.d/rc.inet2
 
diff -ruN rc.d-original/rc.inet2 rc.d/rc.inet2
 
--- rc.d-original/rc.inet2 2012-08-15 00:53:35.000000000 +0200
 
--- rc.d-original/rc.inet2 2012-08-15 00:53:35.000000000 +0200
+++ rc.d/rc.inet2 2013-12-29 12:13:33.000000000 +0100
+
+++ rc.d/rc.inet2 2016-07-09 14:10:49.388841574 +0200
@@ -16,26 +16,6 @@
+
@@ -16,51 +16,6 @@
 
  # At this point, we are ready to talk to The World...
 
  # At this point, we are ready to talk to The World...
 
   
 
   
Line 704: Line 455:
 
-fi
 
-fi
 
-
 
-
# If /etc/rc.d/rc.rpc is executable, run it to load rpc.portmap, rpc.lockd,
+
-# If /etc/rc.d/rc.rpc is executable, run it to load rpc.portmap, rpc.lockd,
# and rpc.statd.  This might be needed to mount NFS partitions that are not
+
-# and rpc.statd.  This might be needed to mount NFS partitions that are not
# listed in /etc/fstab.  Starting this twice won't hurt as the script will
+
-# listed in /etc/fstab.  Starting this twice won't hurt as the script will
@@ -44,23 +24,6 @@
+
-# check if things are already running before trying to start them.
  sh /etc/rc.d/rc.rpc start
+
-if [ -x /etc/rc.d/rc.rpc ]; then
fi
+
sh /etc/rc.d/rc.rpc start
+
-fi
 +
-
 
-# Mount remote CIFS filesystems.  Note that where possible, using CIFS is
 
-# Mount remote CIFS filesystems.  Note that where possible, using CIFS is
 
-# preferred over SMBFS.  SMBFS is no longer actively maintained.
 
-# preferred over SMBFS.  SMBFS is no longer actively maintained.
Line 727: Line 479:
 
-  /sbin/mount -v -t smbfs
 
-  /sbin/mount -v -t smbfs
 
-fi
 
-fi
-
 
# Start the system logger if it is not already running (maybe because /usr
 
# is on a network partition).
 
if [ -x /etc/rc.d/rc.syslog -a -d /var/log -a ! -r /var/run/syslogd.pid ]; then
 
diff -ruN rc.d-original/rc.M rc.d/rc.M
 
--- rc.d-original/rc.M 2013-10-28 06:07:17.000000000 +0100
 
+++ rc.d/rc.M 2013-12-29 12:14:08.000000000 +0100
 
@@ -20,10 +20,6 @@
 
  /sbin/ldconfig &
 
fi
 
 
-# Screen blanks after 15 minutes idle time, and powers down in one hour
 
-# if the kernel supports APM or ACPI power management:
 
-/bin/setterm -blank 15 -powersave powerdown -powerdown 60
 
-
 
# Set the hostname.
 
if [ -r /etc/HOSTNAME ]; then
 
  /bin/hostname $(cat /etc/HOSTNAME | cut -f1 -d .)
 
diff -ruN rc.d-original/rc.S rc.d/rc.S
 
--- rc.d-original/rc.S 2013-10-28 06:06:39.000000000 +0100
 
+++ rc.d/rc.S 2013-12-29 12:13:33.000000000 +0100
 
@@ -48,31 +48,6 @@
 
  fi
 
fi
 
 
-# Mount Control Groups filesystem interface:
 
-if grep -wq cgroup /proc/filesystems ; then
 
-  if [ -d /sys/fs/cgroup ]; then
 
-    # See linux-*/Documentation/cgroups/cgroups.txt (section 1.6)
 
-    # Check if we have some tools to autodetect the available cgroup controllers
 
-    if [ -x /usr/bin/lssubsys -a -x /usr/bin/tr -a -x /usr/bin/sed ]; then
 
-      # Mount a tmpfs as the cgroup filesystem root
 
-      mount -t tmpfs -o mode=0755 cgroup_root /sys/fs/cgroup
 
-      # Autodetect available controllers and mount them in subfolders
 
-      controllers="$(lssubsys -a 2>/dev/null | tr '\n' ' ' | sed s/.$//)"
 
-      for i in $controllers; do
 
-        mkdir /sys/fs/cgroup/$i
 
-        mount -t cgroup -o $i $i /sys/fs/cgroup/$i
 
-      done
 
-      unset i controllers
 
-    else
 
-      # We can't use autodetection so fall back mounting them all together
 
-      mount -t cgroup cgroup /sys/fs/cgroup
 
-    fi
 
-  else
 
-    mkdir -p /dev/cgroup
 
-    mount -t cgroup cgroup /dev/cgroup
 
-  fi
 
-fi
 
-
 
# Initialize the Logical Volume Manager.
 
# This won't start unless we find /etc/lvmtab (LVM1) or
 
# /etc/lvm/backup/ (LVM2).  This is created by /sbin/vgscan, so to
 
diff -ruN rc.d-original/rc.syslog rc.d/rc.syslog
 
--- rc.d-original/rc.syslog 2013-06-22 22:49:03.000000000 +0200
 
+++ rc.d/rc.syslog 2013-12-29 12:13:33.000000000 +0100
 
@@ -5,7 +5,7 @@
 
 
syslogd_start() {
 
  if [ -x /usr/sbin/syslogd -a -x /usr/sbin/klogd ]; then
 
-    echo -n "Starting sysklogd daemons:  "
 
+#    echo -n "Starting sysklogd daemons:  "
 
    echo -n "/usr/sbin/syslogd "
 
    /usr/sbin/syslogd
 
    # prevent syslogd/klogd race condition on SMP kernels
 
@@ -16,10 +16,10 @@
 
    else
 
      sleep 1
 
    fi
 
-    echo "/usr/sbin/klogd -c 3 -x"
 
+#    echo "/usr/sbin/klogd -c 3 -x"
 
    # '-c 3' = display level 'error' or higher messages on console
 
    # '-x' = turn off broken EIP translation
 
-    /usr/sbin/klogd -c 3 -x
 
+#    /usr/sbin/klogd -c 3 -x
 
  fi
 
}
 
 
</pre>
 
</pre>
  
 
== Contact ==
 
== Contact ==
Comments and criticism can be addressed to roberto dot puzzanghera at sagredo dot eu (http://notes.sagredo.eu/node/7)
+
Comments and criticism can be addressed to roberto dot puzzanghera at sagredo dot eu (https://notes.sagredo.eu/other-contents-186/slackware-guest-on-linux-vserver-7.html)

Latest revision as of 13:59, 21 July 2019

The purpose of this note is to setup a guest based on Slackware. What follows was tested on Slackware 14.2 to 13.1 (both 32b and 64b). I will assume that you have a Linux-Vserver box working.

Contents

[edit] Download

wget https://notes.sagredo.eu/sites/notes.sagredo.eu/files/linux-vserver/slack_vserver.tar.gz
tar xzf slack_vserver.tar.gz
cd slack_vserver
ls

You have downloaded the following files:

  • PKG_LIST is the package list to be installed in the guest
  • download_slack_pkg.sh is a script that you can use to download all the PKG_LIST. If you use this scriptlet all the package will be stored in the slackware[64]-version_pkg sub-folder.
  • make_slack_vserver.sh is the shell script that you have to adjust. It installs the guest.
  • rc is the startup script for the virtual server. It will be automatically copied in /etc/rc.d* /init.d/rc
  • linux-vserver_slackware-14.2.patch is the patch which modify rc.0, rc.6 rc.M, rc.S, rc.inet2 and rc.syslog. It must be applyed after the creation of the vserver process. In the patch I switched off all the mounts and executable that are related to the hardware.

[edit] Download the packages

First of all select a minimal set of packages to be installed on the virtual server. This list of 123 packages is based on the Minimal System reported at http://slackwiki.org/Minimal_System without all hardware, kernel and multimedia related packages. The install leads to a guest of about 460M of size. This set fits with the installation of a complete virtual web server including apache, apache-tomcat, php, mysql, postgresql, qmail and related, ftp, named.

I assume that the packages to be installed are stored in the slackware{$ARCH}-{$VERSION}_pkg folder. If not, adjust its location editing the make_slack_vserver.sh script.

You can download my minimal set of packages running the shell script download_slack_pkg.sh. It can create a folder like slackware{$ARCH}-{$VERSION}_pkg for you, where $ARCH has to be "64" if you want to download 64b packages or empty otherwise, while $VERSION is the Slackware version, so it's something like "14.2".

#!/bin/bash
#
# v. 2016.06.08
# Now the script parses comments in the package list (thanks to Mark Colclough)

VERSION="14.2" # Slackware version
ARCH="64" # you can put 64 for 64b cpu just to separate 64/32 download folders

# Put here your favourite Slackware repository
SRC="ftp://ftp.slackware.no/slackware/slackware${ARCH}-${VERSION}/"

# put here your pkg list
LIST="${PWD}/PKG_LIST"

# the directory where you unpacked slack_vserver.tar.gz
# $PWD should work, otherwise put /path/to/slack_vserver
SETUP=$PWD

# the directory where you want to download the slackware packages
PACKAGES="${SETUP}/slackware${ARCH}-${VERSION}_pkg"

# create the folder where the pkg will be downloaded
if [ ! -d "$PACKAGES" ]; then
        mkdir -p $PACKAGES
fi

# create the "patches" sub-folder
if [ ! -d "${PACKAGES}/patches" ]; then
        mkdir -p "${PACKAGES}/patches"
fi

# download
cd $PACKAGES

if [ -f $LIST ]; then
        while read LINE
            do
            [ "$LINE" ] || continue
            [ "${LINE#\#}" = "$LINE" ] || continue
            wget "${SRC}slackware${ARCH}/${LINE}*.t?z"
        done < $LIST
else
        echo "Can't find $LIST file."
        exit 1
fi

# download packages from the patches folder
cd ${PACKAGES}/patches

if [ -f ${LIST} ]; then
        while read LINE
        do
                IFS='/' read -ra PKG <<< "$LINE"
                [ "${PKG#\#}" = "${PKG}" ] || continue
                PKG_LEN=${#PKG[@]}
                if [ $PKG_LEN == 2 ]; then
                        wget "${SRC}patches/packages/${PKG[1]}*.t?z"
                fi
        done < $LIST
else
        echo "Can't find $LIST file."
        exit 1
fi

NB: this script tries also to overwrite the packages downloaded from the /slackware folder with the updates belonging to the /patches dir.

[edit] Make the guest

Now let's create the guest and install the packages. As you know you must choose at least a "name", a "context" and an ip. In addition you have to modify most of the rc.* startup scripts removing all the hardware related daemons, and finally replace the /dev dir.

This is done adjusting and running the script make_slack_vserver.sh:

#!/bin/bash
#
# v. 2016.07.05
# Author: Roberto Puzzanghera
# Thanks to Mark Colclough for corrections
#
# This script installs a Slackware guest into a linux-vserver host (http://linux-vserver.org)
#
# Comments are welcome :-)
# More info here: https://notes.sagredo.eu/other-contents-186/slackware-guest-on-linux-vserver-7.html

# adjust this to where your things live
NAME=test
HOSTNAME=$NAME.YOURDOMAIN.XY
IP=10.0.0.182
INTERFACE=eth0:$IP/24
CONTEXT=5182
VERSION=14.2 # Slackware version
ARCH="64" # you can put 64 for 64b cpu just to separate 64/32 download folders

# where is the vservers dir? default is /vservers
VDIR="/usr/local/vservers"

# the directory where you unpacked slack_vserver.tar.gz
# $PWD should work, otherwise put /path/to/slack_vserver
SETUP=$PWD

# the directory where you downloaded the slackware packages
PACKAGES="${SETUP}/slackware${ARCH}-${VERSION}_pkg"

# the path to rc script file (leave as is)
RC="${SETUP}/rc"

################### end configuration

# sanity check

if [ ! -d "$VDIR" ]; then
        echo
        echo "Can't find VDIR dir: $VDIR"
        echo "Exiting"
        echo
        exit 1
fi
if [ ! -d "$SETUP" ]; then
        echo 
        echo "Can't find SETUP dir: $SETUP"
        echo "Exiting"
        echo
        exit 1
fi
if [ ! -d "$PACKAGES" ]; then
        echo
        echo "Can't find PACKAGES dir: $PACKAGES"
        echo "Exiting"
        echo
        exit 1
fi
if [ ! -f "$RC" ]; then
        echo
        echo "Can't find RC path: $RC"
        echo "Exiting"
        echo
        exit 1
fi

# if everything is ok start the install

echo
read -p "press any key to make skeleton..."
vserver ${NAME} build -m skeleton \
        --hostname ${HOSTNAME} \
        --interface ${INTERFACE} \
        --context $CONTEXT \
        --flags lock,virt_mem,virt_uptime,virt_cpu,virt_load,sched_hard,hide_netif \
        --initstyle sysv
echo "...done"
echo

read -p "press any key to move the /dev folder to a temp dir the /dev folder..."
mv $VDIR/$NAME/dev $VDIR/$NAME/dev2

echo
read -p "press any key to install packages..."
cd $PACKAGES
installpkg --root $VDIR/$NAME *.t?z;
ROOT=$VDIR/$NAME upgradepkg patches/*.t?z;
echo "...done"
echo

echo
read -p "press any key to copy the rc script to /etc/rc.d/init.d..."
echo
echo "copying rc to /etc/rc.d/init.d/rc"
cp -p $RC $VDIR/$NAME/etc/rc.d/init.d/
echo "...done"

echo
echo "removing x flag to rc.sshd and rc.inetd, removing not needed rc scripts"
chmod -x $VDIR/$NAME/etc/rc.d/rc.sshd $VDIR/$NAME/etc/rc.d/rc.inetd
rm $VDIR/$NAME/etc/rc.d/rc.cpufreq $VDIR/$NAME/etc/rc.d/rc.modules* $VDIR/$NAME/etc/rc.d/rc.inet1* $VDIR/$NAME/etc/rc.d/rc.loop
echo "...done"
echo

echo "trying to adjust HOSTNAME, hosts, resolv.conf, profile. Check them later..."
cp /etc/resolv.conf $VDIR/$NAME/etc/
cp /etc/localtime $VDIR/$NAME/etc/
rm $VDIR/$NAME/etc/profile
cp /etc/profile $VDIR/$NAME/etc/
echo $HOSTNAME >  $VDIR/$NAME/etc/HOSTNAME
echo "127.0.0.1 localhost" > $VDIR/$NAME/etc/hosts
echo "$IP $HOSTNAME $NAME" >> $VDIR/$NAME/etc/hosts
touch $VDIR/$NAME/etc/mtab
touch $VDIR/$NAME/etc/fstab
echo "...done"
echo

read -p "press any key to restore /dev2 to /dev"
rm -r $VDIR/$NAME/dev
mv $VDIR/$NAME/dev2 $VDIR/$NAME/dev

echo
echo -n "Do you want that I apply the patch for you y/n? [y] "
read VAR_PATCH

if [ "$VAR_PATCH" = 'y' ] || [ "$VAR_PATCH" = '' ]; then

        if [ ! -f "${SETUP}/linux-vserver_slackware-${VERSION}.patch" ]; then
                echo
                echo "Can't find any PATCH here: ${SETUP}/linux-vserver_slackware-${VERSION}.patch"
                echo "Exiting"
                echo
                exit 1
        fi

        cd ${VDIR}/${NAME}/etc/rc.d
        patch -p1 < ${SETUP}/linux-vserver_slackware-${VERSION}.patch
        echo "patch applyed."
        echo
        echo "You can start and enter the virtual server typing: "
        echo
        echo "vserver $NAME start"
        echo "vserver $NAME enter"

        else
                echo
                echo "DON'T FORGET to patch /etc/rc.d as follows: "
                echo
                echo "cd $VDIR/$NAME/etc/rc.d"
                echo "patch -p1 < $SETUP/linux-vserver_slackware-$VERSION.patch"
fi

echo
echo "More info on http://notes.sagredo.eu/node/7"
echo

[edit] Apply the patch

The script itsself can install the patch for you. Anyway this is how to apply the patch by yourself:

cd /vservers/vserver_name/etc/rc.d
patch -p1 < /path/to/slack_vserver/slackware-14.2.patch

Inside the tarball you can find the old patch for Slackware 14.1, 14.0, 13.37 and 13.1, if you like.

[edit] Post installation tasks

Put this inside your rc.local:

/usr/local/etc/rc.d/init.d/vprocunhide  start

[edit] Start the new server

vserver <vserver_name> start
vserver <vserver_name> enter

[edit] Patch applayed

diff -ruN rc.d-original/rc.6 rc.d/rc.6
--- rc.d-original/rc.6	2016-03-26 17:48:37.000000000 +0100
+++ rc.d/rc.6	2016-07-09 14:08:48.470713168 +0200
@@ -37,36 +37,6 @@
 		;;
 esac
 
-# Save the system time to the hardware clock using hwclock --systohc.
-# This will also create or update the timestamps in /etc/adjtime.
-if [ -x /sbin/hwclock ]; then
-  # Check for a broken motherboard RTC clock (where ioports for rtc are
-  # unknown) to prevent hwclock causing a hang:
-  if ! grep -q " : rtc" /proc/ioports ; then
-    CLOCK_OPT="--directisa"
-  fi
-  if [ /etc/adjtime -nt /etc/hardwareclock ]; then
-    if grep -q "^LOCAL" /etc/adjtime ; then
-      echo "Saving system time to the hardware clock (localtime)."
-    else
-      echo "Saving system time to the hardware clock (UTC)."
-    fi
-    /sbin/hwclock $CLOCK_OPT --systohc
-  elif grep -q "^UTC" /etc/hardwareclock 2> /dev/null ; then
-    echo "Saving system time to the hardware clock (UTC)."
-    if [ ! -r /etc/adjtime ]; then
-      echo "Creating system time correction file /etc/adjtime."
-    fi
-    /sbin/hwclock $CLOCK_OPT --utc --systohc
-  else
-    echo "Saving system time to the hardware clock (localtime)."
-    if [ ! -r /etc/adjtime ]; then
-      echo "Creating system time correction file /etc/adjtime."
-    fi
-    /sbin/hwclock $CLOCK_OPT --localtime --systohc
-  fi
-fi
-
 # Run any local shutdown scripts:
 if [ -x /etc/rc.d/rc.local_shutdown ]; then
   /etc/rc.d/rc.local_shutdown stop
@@ -126,10 +96,6 @@
   sleep $FUSER_DELAY
 fi
 
-# Unmount any NFS, SMB, or CIFS filesystems:
-echo "Unmounting remote filesystems:"
-/bin/umount -v -a -l -f -r -t nfs,smbfs,cifs | tr -d ' ' | grep successfully | sed "s/:successfullyunmounted/ has been successfully unmounted./g"
-
 # Try to shut down pppd:
 PS="$(ps ax)"
 if echo "$PS" | /bin/grep -q -w pppd ; then
@@ -215,22 +181,11 @@
 # Before unmounting file systems write a reboot or halt record to wtmp.
 $shutdown_command -w
 
-# Turn off swap:
-echo "Turning off swap."
-/sbin/swapoff -a
-/bin/sync
-
 # Stop cgmanager and cgproxy:
 if [ -x /etc/rc.d/rc.cgmanager ]; then
   sh /etc/rc.d/rc.cgmanager stop
 fi
 
-echo "Unmounting local file systems:"
-/bin/umount -v -a -t no,proc,sysfs | tr -d ' ' | grep successfully | sed "s/:successfullyunmounted/ has been successfully unmounted./g" 2> /dev/null
-
-echo "Remounting root filesystem read-only:"
-/bin/mount -v -n -o remount,ro /
-
 # This never hurts:
 /bin/sync
 
@@ -288,12 +243,3 @@
     fi
   fi
 fi
-
-# Now halt (poweroff with APM or ACPI enabled kernels) or reboot.
-if [ "$shutdown_command" = "reboot" ]; then
-  echo "Rebooting."
-  /sbin/reboot
-else
-  /sbin/poweroff
-fi
-
diff -ruN rc.d-original/rc.M rc.d/rc.M
--- rc.d-original/rc.M	2016-05-05 06:27:00.000000000 +0200
+++ rc.d/rc.M	2016-07-09 14:14:20.090096570 +0200
@@ -20,10 +20,6 @@
   /sbin/ldconfig &
 fi
 
-# Screen blanks after 15 minutes idle time, and powers down in one hour
-# if the kernel supports APM or ACPI power management:
-/bin/setterm -blank 15 -powersave powerdown -powerdown 60
-
 # Set the hostname.
 if [ -r /etc/HOSTNAME ]; then
   /bin/hostname $(cat /etc/HOSTNAME | cut -f1 -d .)
@@ -109,13 +105,6 @@
   sh /etc/rc.d/rc.bluetooth start
 fi
 
-# Start wicd or networkmanager:
-if [ -x /etc/rc.d/rc.wicd -a -x /usr/sbin/wicd ]; then
-  sh /etc/rc.d/rc.wicd start
-elif [ -x /etc/rc.d/rc.networkmanager ]; then
-  sh /etc/rc.d/rc.networkmanager start
-fi
-
 # Start networking daemons:
 if [ -x /etc/rc.d/rc.inet2 ]; then
   . /etc/rc.d/rc.inet2
@@ -126,14 +115,6 @@
   . /etc/rc.d/rc.scanluns
 fi
 
-# Mount any additional filesystem types that haven't already been mounted:
-mount -a -v 2> /dev/null | grep -v -e "already mounted" -e "ignored" | cut -f 1 -d : | tr -d ' ' | while read dev ; do mount | grep "${dev} " ; done
-
-# Start the Control Script for automounter:
-if [ -x /etc/rc.d/rc.autofs ]; then
-  sh /etc/rc.d/rc.autofs start
-fi
-
 # Start the Network Time Protocol daemon:
 if [ -x /etc/rc.d/rc.ntpd ]; then
   sh /etc/rc.d/rc.ntpd start
@@ -153,16 +134,6 @@
 chmod 755 / 2> /dev/null
 chmod 1777 /tmp /var/tmp
 
-# Start ACPI daemon.
-if [ -x /etc/rc.d/rc.acpid ]; then
-  . /etc/rc.d/rc.acpid start
-fi
-
-# Enable CPU frequency scaling:
-if [ -x /etc/rc.d/rc.cpufreq ]; then
-  . /etc/rc.d/rc.cpufreq start
-fi
-
 # Update any existing icon cache files:
 if find /usr/share/icons -maxdepth 2 2> /dev/null | grep -q icon-theme.cache ; then
   for theme_dir in /usr/share/icons/* ; do
diff -ruN rc.d-original/rc.inet2 rc.d/rc.inet2
--- rc.d-original/rc.inet2	2012-08-15 00:53:35.000000000 +0200
+++ rc.d/rc.inet2	2016-07-09 14:10:49.388841574 +0200
@@ -16,51 +16,6 @@
 # At this point, we are ready to talk to The World...
 
 
-# Mount remote (NFS) filesystems:
-if cat /etc/fstab | grep -v '^#' | grep -w nfs 1> /dev/null 2> /dev/null ; then
-  # Start rpc.portmap, /sbin/rpc.lockd, and /sbin/rpc.statd if we find NFS
-  # volumes defined in /etc/fstab since these will need to be running in order
-  # to mount them.  If they are not running, attempting to mount an NFS
-  # partition will cause mount to hang, or at least result in unreliable
-  # operation.  Keep this in mind if you plan to mount unlisted NFS
-  # partitions... 
-  # If you have uncommented NFS partitions in your /etc/fstab, rc.rpc is run
-  # whether it is set as executable or not.  If you don't want to run it,
-  # comment the NFS partitions out in /etc/fstab or erase/rename rc.rpc.
-  if [ -r /etc/rc.d/rc.rpc ]; then
-    sh /etc/rc.d/rc.rpc start
-  fi
-  echo "Mounting remote (NFS) file systems:  /sbin/mount -a -t nfs"
-  /sbin/mount -a -t nfs          # This may be our /usr runtime!
-  # Show the mounted volumes:
-  /sbin/mount -v -t nfs
-fi
-
-# If /etc/rc.d/rc.rpc is executable, run it to load rpc.portmap, rpc.lockd,
-# and rpc.statd.  This might be needed to mount NFS partitions that are not
-# listed in /etc/fstab.  Starting this twice won't hurt as the script will
-# check if things are already running before trying to start them.
-if [ -x /etc/rc.d/rc.rpc ]; then
-  sh /etc/rc.d/rc.rpc start
-fi
-
-# Mount remote CIFS filesystems.  Note that where possible, using CIFS is
-# preferred over SMBFS.  SMBFS is no longer actively maintained.
-if cat /etc/fstab | grep -v '^#' | grep -w cifs 1> /dev/null 2> /dev/null ; then
-  echo "Mounting remote CIFS file systems:  /sbin/mount -a -t cifs"
-  /sbin/mount -a -t cifs
-  # Show the mounted volumes:
-  /sbin/mount -v -t cifs
-fi
-
-# Mount remote SMB filesystems:
-if cat /etc/fstab | grep -v '^#' | grep -w smbfs 1> /dev/null 2> /dev/null ; then
-  echo "Mounting remote SMBFS file systems:  /sbin/mount -a -t smbfs"
-  /sbin/mount -a -t smbfs
-  # Show the mounted volumes:
-  /sbin/mount -v -t smbfs
-fi

[edit] Contact

Comments and criticism can be addressed to roberto dot puzzanghera at sagredo dot eu (https://notes.sagredo.eu/other-contents-186/slackware-guest-on-linux-vserver-7.html)

Personal tools