summaryrefslogtreecommitdiffstats
path: root/deploy/adapters/cobbler/snippets/post_s390_reboot
blob: fa33f06caa17e98ae07459f59825e673e4cf40b4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
## RHEL zVM installs do not properly reboot into the installed system.  This
## issue has been resolved in RHEL-5 Update3.  To get a consistent reboot
## behavior for s390* installs on all distros, this snippet can be used.  The
## snippet will attempt to discover the IPL volume zipl is being installed
## to and will attempt a reipl.  Be sure to set this snippet as the *last*
## snippet your kickstart template.

#if $arch.startswith("s390"):
%post --nochroot

# Does the kickstart file request a reboot?
grep -q "^reboot" /tmp/ks.cfg /ks.cfg 2>/dev/null
if [ \$? -ne 0 ]; then
    exit 0
fi

# find out the location of /boot and use it to re-ipl
boot_dev=""
for mountpt in /mnt/sysimage/boot /mnt/sysimage;
do
  set -- \$(grep " \$mountpt " /proc/mounts)
  if [ -b "\$1" ]; then
    boot_dev=\$1
    break
  fi
done

# lookup dasd disk
if [[ \$boot_dev == *dasd* ]]; then
   # remove the '/dev/' (aka basename)
   boot_dev=\${boot_dev\#\#/[^/]*/}
   # strip partition number from dasd device
   boot_dev=\${boot_dev%%[0-9]}
   type="ccw"
   id=`basename \$(readlink /sys/block/\$boot_dev/device)`

   # HACK - In RHEL4 and RHEL3 ... we do it the hard way
   grep -q "^[34]\$" /.buildstamp 2>/dev/null
   if [ \$? -eq 0 ]; then
      cat <<EOF> /mnt/sysimage/tmp/zeboot.sh
\#!/bin/bash
/sbin/modprobe -r vmcp
rm -f "/dev/vmcp"
sleep 2
[ -b "/dev/vmcp" ] || /bin/mknod /dev/vmcp c 10 61
/sbin/modprobe -a vmcp
sync
# Force a boot (e.g. IPL 0100)
/sbin/vmcp ipl \${id\#\#*.}
EOF
      /bin/chmod +x /mnt/sysimage/tmp/zeboot.sh
      /bin/chroot /mnt/sysimage /tmp/zeboot.sh
   # In RHEL5 ... lets cleanly shutdown (Update 3 and newer)
   else
      echo \$type > /sys/firmware/reipl/reipl_type
      echo \$id > /sys/firmware/reipl/\$type/device

      # Force a reboot
      pid=\$(cat /var/run/init.pid)
      [ -z "\$pid" ] && pid=\$(pidof init)
      kill -12 \$pid
      pid=\$(cat /var/run/loader.run)
      [ -z "\$pid" ] && pid=\$(pidof loader)
      kill \$pid
   fi
fi
#end if
="o">="bower_components/ng-dialog/css/ngDialog.css" /> <link rel="stylesheet" href="bower_components/ng-dialog/css/ngDialog-theme-default.css" /> <link rel="stylesheet" href="bower_components/components-font-awesome/css/font-awesome.css" /> <link rel="stylesheet" href="bower_components/v-accordion/dist/v-accordion.css" /> <link rel="stylesheet" href="bower_components/angular-loading/angular-loading.css" /> <!-- endbower --> <!-- endbuild --> <!-- build:css(.tmp) styles/main.css --> <link rel="stylesheet" href="styles/main.css"> <!-- endbuild --> </head> <script> // read file </script> <body ng-app="yardStickGui2App"> <!--[if lte IE 8]> <p class="browsehappy">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</p> <![endif]--> <div ui-view></div> <!-- Google Analytics: change UA-XXXXX-X to be your site's ID --> <!--<script> ! function(A, n, g, u, l, a, r) { A.GoogleAnalyticsObject = l, A[l] = A[l] || function() { (A[l].q = A[l].q || []).push(arguments) }, A[l].l = +new Date, a = n.createElement(g), r = n.getElementsByTagName(g)[0], a.src = u, r.parentNode.insertBefore(a, r) }(window, document, 'script', 'https://www.google-analytics.com/analytics.js', 'ga'); ga('create', 'UA-XXXXX-X'); ga('send', 'pageview'); </script>--> <!-- build:js(.) scripts/vendor.js --> <!-- bower:js --> <script src="bower_components/jquery/dist/jquery.js"></script> <script src="bower_components/angular/angular.js"></script> <script src="bower_components/bootstrap/dist/js/bootstrap.js"></script> <script src="bower_components/angular-strap/dist/angular-strap.js"></script> <script src="bower_components/angular-strap/dist/angular-strap.tpl.js"></script> <script src="bower_components/angular-ui-router/release/angular-ui-router.js"></script> <script src="bower_components/angular-animate/angular-animate.js"></script> <script src="bower_components/angular-breadcrumb/release/angular-breadcrumb.js"></script> <script src="bower_components/angular-wizard/dist/angular-wizard.min.js"></script> <script src="bower_components/angular-resource/angular-resource.js"></script> <script src="bower_components/ng-file-upload/ng-file-upload.js"></script> <script src="bower_components/AngularJS-Toaster/toaster.js"></script> <script src="bower_components/ng-dialog/js/ngDialog.js"></script> <script src="bower_components/angularUtils-pagination/dirPagination.js"></script> <script src="bower_components/ngstorage/ngStorage.js"></script> <script src="bower_components/v-accordion/dist/v-accordion.js"></script> <script src="bower_components/spin.js/spin.js"></script> <script src="bower_components/angular-loading/angular-loading.js"></script> <script src="bower_components/spin.js/spin.js"></script> <script src="bower_components/angular-bootstrap/ui-bootstrap-tpls.js"></script> <script src="bower_components/angular-sanitize/angular-sanitize.js"></script> <!-- endbower --> <!-- endbuild --> <!-- build:js({.tmp,app}) scripts/scripts.js --> <script src="scripts/app.js"></script> <script src="scripts/router.config.js"></script> <script src="scripts/controllers/main.js"></script> <script src="scripts/factory/main.factory.js"></script> <script src="scripts/controllers/content.controller.js"></script> <script src="scripts/controllers/detail.controller.js"></script> <script src="scripts/controllers/image.controller.js"></script> <script src="scripts/controllers/pod.controller.js"></script> <script src="scripts/controllers/container.controller.js"></script> <script src="scripts/controllers/testcase.controller.js"></script> <script src="scripts/controllers/testcasedetail.controller.js"></script> <script src="scripts/controllers/testsuit.controller.js"></script> <script src="scripts/controllers/suitedetail.controller.js"></script> <script src="scripts/controllers/suitecreate.controller.js"></script> <script src="scripts/controllers/task.controller.js"></script> <script src="scripts/controllers/taskLog.controller.js"></script> <script src="scripts/controllers/report.controller.js"></script> <script src="scripts/controllers/project.controller.js"></script> <script src="scripts/controllers/projectDetail.controller.js"></script> <script src="scripts/controllers/taskModify.controller.js"></script> <!-- endbuild --> </body> </html>