diff options
author | jim-p <jimp@pfsense.org> | 2016-11-11 15:22:29 -0500 |
---|---|---|
committer | jim-p <jimp@pfsense.org> | 2016-11-11 15:22:29 -0500 |
commit | 92a78939583e2be7f7cc52d045bc48a2e2264d1d (patch) | |
tree | 48b15bf40c5da9a1deedbd6939e803178764662e /src/etc/rc.initial.reboot | |
parent | 464a540a3b7f7c5351526dbc515ade4554b1976e (diff) | |
download | pfsense-92a78939583e2be7f7cc52d045bc48a2e2264d1d.zip pfsense-92a78939583e2be7f7cc52d045bc48a2e2264d1d.tar.gz |
Add options to console menu reboot selection to reboot into single user mode and to reboot and force a filesystem check. Implements #6639
Diffstat (limited to 'src/etc/rc.initial.reboot')
-rwxr-xr-x | src/etc/rc.initial.reboot | 28 |
1 files changed, 23 insertions, 5 deletions
diff --git a/src/etc/rc.initial.reboot b/src/etc/rc.initial.reboot index 30c1b72..0380f7c 100755 --- a/src/etc/rc.initial.reboot +++ b/src/etc/rc.initial.reboot @@ -33,13 +33,31 @@ require_once("captiveportal.inc"); $fp = fopen('php://stdin', 'r'); echo "\n" . sprintf(gettext("%s will reboot. This may take a few minutes, depending on your hardware."), $g['product_name']) . "\n"; -echo gettext("Do you want to proceed [y|n]?") . " "; +echo gettext("Do you want to proceed?") . "\n\n"; +echo " " . gettext("Y/y: Reboot normally") . "\n"; +echo " " . gettext("S: Reboot into Single User Mode (requires console access!)") . "\n"; +echo " " . gettext("F: Reboot and run a filesystem check") . "\n\n"; -if (strcasecmp(chop(fgets($fp)), "y") == 0) { - echo "\n" . sprintf(gettext("%s is rebooting now."), $g['product_name']) . "\n"; - system_reboot_sync(); +echo gettext("Enter an option:") . " "; + +switch (chop(fgets($fp))) { + case "S": + mwexec('/sbin/nextboot -o "-s" -k kernel'); + echo "\n" . sprintf(gettext("%s is rebooting into single user mode now."), $g['product_name']) . "\n"; + system_reboot_sync(); + break; + case "F": + mwexec('/sbin/nextboot -e "pfsense.fsck.force=5"'); + echo "\n" . sprintf(gettext("%s is rebooting for a filesystem check now."), $g['product_name']) . "\n"; + system_reboot_sync(); + break; + case "Y": + case "y": + echo "\n" . sprintf(gettext("%s is rebooting now."), $g['product_name']) . "\n"; + system_reboot_sync(); + break; } fclose($fp); - +echo "\n"; ?> |