FreeSource: Comment269

This is a comment on Alt Linux / Releases / 24 / Master Info, posted by Michael Shigorin at 2005-05-29 18:30:25
упс... не клеится файлик.

diff -uNr rc.d.orig/init.d/halt rc.d/init.d/halt

rc.d.orig/init.d/halt 2004–03–05 02:28:34 +1200

+++ rc.d/init.d/halt 2005–05–29 14:33:46 +1300

@@ -102,6 +102,14 @@

“Unmounting filesystem” \

«Unmounting filesystem (retry)"

+# LVM Shutdown

+VGCHANGE=/sbin/vgchange

+if [ -x "$VGCHANGE" -a -s /etc/lvmtab ]; then

+ if [ -e /proc/lvm ]; then

+ action “Setting up LVM:" "$VGCHANGE” -a n

+ fi

+fi

+

# Turn off raid.

RAIDSTOP=/sbin/raidstop

if [ -x "$RAIDSTOP" -a -f /etc/raidtab ]; then

diff -uNr rc.d.orig/rc.sysinit rc.d/rc.sysinit

rc.d.orig/rc.sysinit 2004–03–06 01:25:28 +1200

+++ rc.d/rc.sysinit 2005–05–29 14:29:13 +1300

@@ -81,6 +81,75 @@

# Set the system clock (when /etc/adjtime is missing).

[ -s /etc/adjtime ] || /etc/init.d/clock start +# Activate EVMS +EVMS_ACTIVE= +STARTEVMS=/sbin/startevms +if [ -x "$STARTEVMS" ] && ! fgrep -iwqs noevms /proc/cmdline; then + action "Starting up EVMS:" "$STARTEVMS" init + EVMS_ACTIVE=1 +fi + +# Add raid devices +if [ -z "$EVMS_ACTIVE" ] && [ -f /proc/mdstat -a -s /etc/raidtab ] && ! fgrep -iwqs noraidtab /proc/cmdline; then + echo -n "Starting up RAID devices: " + + rc=0 + + for i in `grep -s "^raiddev" /etc/raidtab | awk '{print $2}'`; do + RAIDDEV="${i##*/}" + RAIDSTAT=`grep -s "^$RAIDDEV : active" /proc/mdstat` + if [ -z "$RAIDSTAT" ]; then + # Try raidstart first...if that fails then + # fall back to raidadd, raidrun. If that + # also fails, then we drop to a shell + RESULT=1 + ExecIfExecutable /sbin/raidstart "$i" + RESULT=$? + if [ $RESULT -gt 0 ]; then + ExecIfExecutable /sbin/raid0run "$i" + RESULT=$? + fi + if [ $RESULT -gt 0 ]; then + ExecIfExecutable /sbin/raidadd "$i" + ExecIfExecutable /sbin/raidrun "$i" + RESULT=$? + fi + if [ $RESULT -gt 0 ]; then + rc=1 + fi + fi + echo -n "$RAIDDEV " + done + echo + + # A non-zero return means there were problems. + if [ $rc -gt 0 ]; then + echo + echo + echo "*** An error occurred during the RAID startup" + echo "*** Dropping you to a shell; the system will reboot" + echo "*** when you leave the shell." + + PS1="(RAID Repair) \# # "; export PS1 + sulogin + + echo "Unmounting file systems" + umount -arnf + mount -n -o remount,ro / + echo "Automatic reboot in progress." + reboot -f + fi +fi + +# LVM Setting +VGCHANGE=/sbin/vgchange +if [ -x "$VGCHANGE" -a -s /etc/lvmtab ]; then + modprobe lvm-mod >/dev/null 2>&1 + if [ -e /proc/lvm ]; then + action "Setting up LVM:" "$VGCHANGE" -a y + fi +fi + # Activate swapping. action "Activating swap partitions:" swapon -a -e @@ -114,15 +183,6 @@ fsckoptions="-V $fsckoptions" fi -# LVM Setting -VGCHANGE=/sbin/vgchange -if [ -x "$VGCHANGE" -a -s /etc/lvmtab ]; then – modprobe lvm-mod >/dev/null 2>&1 – if [ -e /proc/lvm ]; then – action "Setting up LVM:" "$VGCHANGE" -a y – fi -fi – _RUN_QUOTACHECK=0 ROOTFSTYPE=`fgrep ' / ' /proc/mounts |tail -1 |cut -d' ' -f3` if [ -z "$fastboot" -a "$ROOTFSTYPE" != nfs ]; then @@ -263,66 +323,6 @@ setsysfont >/dev/null 2>&1 && SETSYSFONT_DONE=1 || SETSYSFONT_DONE=

fi

-# Activate EVMS

-EVMS_ACTIVE=

-STARTEVMS=/sbin/startevms

-if [ -x "$STARTEVMS" ] && ! fgrep -iwqs noevms /proc/cmdline; then

– action “Starting up EVMS:" "$STARTEVMS” init

– EVMS_ACTIVE=1

-fi

-

-# Add raid devices

-if [ -z "$EVMS_ACTIVE" ] && [ -f /proc/mdstat -a -s /etc/raidtab ] && ! fgrep -iwqs noraidtab /proc/cmdline; then

– echo -n “Starting up RAID devices: "

-

– rc=0

– for i in `grep -s "^raiddev" /etc/raidtab | awk '{print $2}'`; do

– RAIDDEV="${i##*/}"

– RAIDSTAT=`grep -s "^$RAIDDEV : active" /proc/mdstat`

– if [ -z "$RAIDSTAT" ]; then

– # Try raidstart first...if that fails then

– # fall back to raidadd, raidrun. If that

– # also fails, then we drop to a shell

– RESULT=1

Exec If Executable /sbin/raidstart "$i"

– RESULT=$?

– if [ $RESULT -gt 0 ]; then

Exec If Executable /sbin/raid0run "$i"

– RESULT=$?

– fi

– if [ $RESULT -gt 0 ]; then

Exec If Executable /sbin/raidadd "$i"

Exec If Executable /sbin/raidrun "$i"

– RESULT=$?

– fi

– if [ $RESULT -gt 0 ]; then

– rc=1

– fi

– fi

– echo -n "$RAIDDEV "

– done

– echo

-

– # A non-zero return means there were problems.

– if [ $rc -gt 0 ]; then

– echo

– echo

– echo "*** An error occurred during the RAID startup"

– echo "*** Dropping you to a shell; the system will reboot"

– echo "*** when you leave the shell."

-

– PS1="(RAID Repair) \# # “; export PS1

– sulogin

-

– echo “Unmounting file systems”

– umount -arnf

– mount -n -o remount,ro /

– echo “Automatic reboot in progress.”

– reboot -f

– fi

-fi

-

_RUN_QUOTACHECK=0

# Check filesystems

# (pixel) do not check loopback files, will be done later (aren't available yet)