Bug 9531
| Summary: | Слишком быстрый ребут при ошибках файловой системы | ||||||
|---|---|---|---|---|---|---|---|
| Product: | Sisyphus | Reporter: | Michael A. Kangin <mak> | ||||
| Component: | startup | Assignee: | Alexey Gladkov <legion> | ||||
| Status: | NEW --- | QA Contact: | qa-sisyphus | ||||
| Severity: | normal | ||||||
| Priority: | P2 | CC: | evg, glebfm, ldv, legion | ||||
| Version: | unstable | ||||||
| Hardware: | all | ||||||
| OS: | Linux | ||||||
| Attachments: |
|
||||||
Created attachment 1476 [details]
Пауза перед перезагрузкой после исправления ошибок в файловой системе
Пауза прерывается нажатием на любую клавишу (генерящую символ, пролистывать
консоль можно спокойно). При нажатии клавиши L происходит sulogin.
Как с точки зрения удаленного администрирования? Если автоматика работает корректно, это больше преимущество. Вы пишете: "нет времени прочитать и осознать". С другой стороны, если нечто само быстро починилось, может быть и не стоит этого читать и осознавать. -- Бонус! (In reply to comment #2) > Если автоматика работает корректно, это больше преимущество. Вы пишете: "нет > времени прочитать и осознать". С другой стороны, если нечто само быстро > починилось, может быть и не стоит этого читать и осознавать. -- Бонус! "-- А мне компьютер какую-то табличку выдал и ничего не работает... --а что в табличке-то написано? --не знаю, я не читала" нет уж, предпочитаю осознавать. Применительно к данному случаю, были повреждены файлы одного пакета. А если бы были повреждены внепакетные данные? которые бы потом по бакапам расползлись? Надо сделать эту задержку конфигурируемой. В startup 0.9.9.17 automatic_reboot() в rc.sysinit по-прежнему делает reboot -f сразу, паузы нет (ldv@ в комментарии 4 просил сделать её настраиваемой). Патч ниже: FSCK_REBOOT_DELAY в /etc/sysconfig/init (файл читается через /etc/init.d/functions), по умолчанию 0 — поведение не меняется; при N>0 ждём N секунд, любая клавиша — перезагрузка сразу, L — sulogin. Актуально только для загрузки через sysvinit (при systemd fsck делает systemd-fsck, rc.sysinit не участвует). bash -n проверен, на живой системе не гонял — патч примерный.
--- a/rc.d/rc.sysinit
+++ b/rc.d/rc.sysinit
@@ -42,6 +42,19 @@
localfs_mounted=
automatic_reboot()
{
+ # Give the admin a chance to read what fsck has done (and to get a
+ # shell) before the console is gone: FSCK_REBOOT_DELAY seconds from
+ # /etc/sysconfig/init, 0 (default) means reboot at once.
+ if [ "${FSCK_REBOOT_DELAY:-0}" -gt 0 ] 2>/dev/null; then
+ local key=
+ echo "Automatic reboot in $FSCK_REBOOT_DELAY seconds, press any key to reboot now or L to log in."
+ read -r -s -n 1 -t "$FSCK_REBOOT_DELAY" key ||:
+ if [ "$key" = l ] || [ "$key" = L ]; then
+ hide_plymouth
+ export PS1="(FS Repair) \# # "
+ sulogin
+ fi
+ fi
if [ -n "$localfs_mounted" ]; then
echo 'Unmounting file systems.'
umount -arnf
--- a/sysconfig/init
+++ b/sysconfig/init
@@ -20,3 +20,8 @@
# udev service for rc.sysinit
UDEV_SERVICE=/etc/init.d/udevd
+
+# Seconds to wait before the automatic reboot after fsck has repaired
+# a file system, so that its messages can be read (L gives a shell).
+# 0 = reboot immediately.
+FSCK_REBOOT_DELAY=0
|

Description
Michael A. Kangin 2006-05-07 18:52:40 MSD