fixes, t11, install in ad-hoc network
[automated-distro-installer] / fai / config / files / root / fai-check / VOL_BULLSEYE_BOOTSTRAP
index 6717987e003a25502fc752c9eed6daadd2780d44..1d7b5c7d296115f565f6fe379d54a56b427ce468 100755 (executable)
@@ -7,7 +7,7 @@ trap 'echo "$0:$LINENO:error: \"$BASH_COMMAND\" returned $?" >&2' ERR
 
 usage() {
   cat <<EOF
-Usage: ${0##*/} [OPTION]
+Usage: ${0##*/} [OPTION] [HOST]
 If grub var set, act like pxe rom and pxe-kexec to faiserver
 
 -f|--force  do kexec if we can reach faiserver
@@ -30,38 +30,51 @@ m() { printf "%s\n" "$*";  "$@"; }
 
 try-kexec() {
   deadline=$(( `date +%s` + NETWORK_TIMOUT_SECS ))
-  while ! timeout -s 9 3 nc -zu faiserver 69; do
+  while ! timeout -s 9 3 nc -zu $faiserver 69; do
     if (( `date +%s` > deadline )); then
       echo "fai-check: hit $NETWORK_TIMOUT_SECS s tftp server timeout"
       return 0
     fi
     sleep 1
   done
-  m pxe-kexec -n --ignore-whitelist -l fai-generated faiserver ||:
+  m pxe-kexec -n --ignore-whitelist -l fai-generated $faiserver ||:
 }
 
+force=false
 case $1 in
+  -h|--help)
+    usage
+    ;;
   -f|--force)
-    try-kexec
-    exit
+    force=true
+    shift
     ;;
 esac
 
+faiserver=${1:-faiserver}
+
+
+if $force; then
+  try-kexec
+  exit
+fi
 
 first=true
 for dev in $(btrfs fi show / | sed -rn 's#^\s*devid\s.*\s([^0-9 ]+)\S+$#\1#p' \
                |sort); do
 
+  found=false
   # Decide which is my grub_ext partition. see partition.DEFAULT file
-  # for details
-  if [[ $(blockdev --getsize64 ${dev}4) == 8388608 ]]; then
-    # Old partition scheme
-    grub_extn=${dev}4
-  elif [[ $(blockdev --getsize64 ${dev}5) == 8388608 ]]; then
-    # Old partition scheme
-    grub_extn=${dev}5
-  else
-    grub_extn=${dev}7
+  # for details. currently it is 4
+  for (( i=4; i<=7; i++ )); do
+    if [[ $(blockdev --getsize64 ${dev}$i) == 8388608 ]]; then
+      grub_extn=${dev}$i
+      break
+    fi
+  done
+  if ! $found; then
+    echo "$0: error: failed to find grub_ext partition."
+    exit 1
   fi
   mount $grub_extn /mnt
   if $first; then