if ! grep -Fq selinuxfs /proc/filesystems; then
# no support in kernel, no chance
SELINUX=no
- fi
-
- if ! is_fsmounted selinuxfs /selinux; then
+ elif ! is_fsmounted selinuxfs /selinux; then
mount -n -o gid=17 -t selinuxfs selinuxfs /selinux
fi
fi
}
-# mdadm - manage MD devices aka Linux Software RAID
+# Init software RAID arrays
init_mdadm() {
- if [ ! -x /sbin/mdadm -o ! -f /etc/mdadm.conf ]; then
+ local output
+
+ if [ ! -x /sbin/mdadm ]; then
return
fi
modprobe -s md
- local rc=0 golvm=0 have_md=0
if [ ! -f /proc/mdstat ]; then
return
fi
- # assume we have md if at least one ARRAY line is present
- if grep -qE "^([[:blank:]]|)ARRAY[[:blank:]]" /etc/mdadm.conf; then
- have_md=1
- fi
- # configured to do auto scanning
- if [ $have_md = 0 ] && grep -qE "^([[:blank:]]|)DEVICE[[:blank:]]partitions" /etc/mdadm.conf; then
- have_md=1
- fi
-
- # none found
- if [ $have_md = 0 ]; then
- return
- fi
-
show "Starting up RAID devices"; busy
- /sbin/mdadm --assemble --scan --auto=yes
- rc=$?
- if [ "$rc" -eq 0 -o "$rc" -eq 2 ]; then
- # rc is used later too, so set sane value
- rc=0
- deltext; ok
- golvm=1
- else
- deltext; fail
- fi
-
- # A non-zero return means there were problems
- if [ $rc -gt 0 ]; then
- [ -e /proc/splash ] && echo "verbose" > /proc/splash
- show "Starting up RAID devices"; fail
-
- PS1="$(nls '(RAID Repair)# ')"; export PS1
- repair_shell "$(nls '*** An error occurred during the RAID startup.')"
- fi
+ output=$(/sbin/mdadm --assemble --scan 2>&1)
+ ok
- # LVM on RAID (keep in sync with LVM init)
- if [ "$golvm" -eq "1" ]; then
- if [ -x /sbin/vgscan -a -x /sbin/vgchange ]; then
- run_cmd "Scanning for LVM volume groups (on RAID)" /sbin/vgscan $lvmignorelocking
- run_cmd "Activating LVM volume groups (on RAID)" /sbin/vgchange -a y $lvmsysinit
- [ "$lvmversion" = "2" ] && /sbin/vgmknodes
- fi
+ if [ -n "$output" ]; then
+ echo "$output"
fi
- show "Starting up RAID devices"; ok
- return $rc
}
# Init LVM
run_cmd "Scanning for LVM volume groups" /sbin/vgscan $lvmignorelocking
run_cmd "Activating LVM volume groups" /sbin/vgchange -a y $lvmsysinit
+
if [ "$lvmversion" = "2" ]; then
- /sbin/vgmknodes $lvmignorelocking
+ # silently refresh LV /dev nodes (just in case)
+ /sbin/vgmknodes $lvmignorelocking 1>/dev/null 2>&1
# display VG statistics
/sbin/vgdisplay -s $lvmignorelocking
fi
init_selinux
- # PLD Linux LiveCD support
+ # TLD Linux LiveCD support
if [ -x /etc/rc.d/rc.live ]; then
/etc/rc.d/rc.live
fi
# Print welcome message
-nls "\t\t\t%sPowered by %sPLD Linux Distribution%s" "$(termput setaf $CPOWEREDBY)" "$(termput setaf $CPLD)" "$(termput op)"
+nls "\t\t\t%sPowered by %sTLD Linux%s" "$(termput setaf $CPOWEREDBY)" "$(termput setaf $CTLD)" "$(termput op)"
if ! is_no "$RC_PROMPT"; then
nls -n "\t\t Press %sI%s to enter interactive startup" "$(termput setaf $CI)" "$(termput op)"
echo
_ROOTFS_DEVICE=$(awk '($1 !~ /^#/ && $2 == "/" && NF >= 6) { print $1}' /etc/fstab)
_ROOTFS_TYPE=$(awk '$2 == "/" && $3 != "rootfs" { print $3 }' /proc/mounts 2>/dev/null)
- if [ -z "$fastboot" -a "$_ROOTFS_TYPE" != "aufs" -a "$_ROOTFS_TYPE" != "nfs" -a "$_ROOTFS_TYPE" != "romfs" -a "$_ROOTFS_TYPE" != "squashfs" -a "$_ROOTFS_PASSNO" != 0 -a -e $_ROOTFS_DEVICE ] && [[ "$container" != lxc* ]]; then
+ if [ -z "$fastboot" -a "$_ROOTFS_TYPE" != "aufs" -a "$_ROOTFS_TYPE" != "nfs" -a "$_ROOTFS_TYPE" != "romfs" -a "$_ROOTFS_TYPE" != "tmpfs" -a "$_ROOTFS_TYPE" != "squashfs" -a "$_ROOTFS_PASSNO" != 0 -a -e $_ROOTFS_DEVICE ] && [[ "$container" != lxc* ]]; then
check_root_fs
fi
fi
fi
- # Init LVM
+ if ! is_no "$MDADM"; then
+ init_mdadm
+ fi
+
if ! is_no "$LVM2"; then
init_lvm
fi
[ $delay_cryptsetup = 0 ] && ok || fail
fi
- if ! is_no "$MDADM"; then
- init_mdadm
- fi
-
_RUN_QUOTACHECK=0
# Check filesystems
if [ -z "$fastboot" ] && [ -z "$nofsck" ]; then
. /etc/rc.d/rc.serial
fi
- if [ -n "$PANIC_REBOOT_TIME" -a "$PANIC_REBOOT_TIME" -gt "0" -a -f /proc/sys/kernel/panic ]; then
+ if [ -n "$PANIC_REBOOT_TIME" ] && [ "$PANIC_REBOOT_TIME" -gt "0" ] && [ -f /proc/sys/kernel/panic ]; then
show 'Setting %s seconds for kernel reboot after panic' "$PANIC_REBOOT_TIME"; busy
# DEPRECATED: use /etc/sysctl.conf or kernel commandline instead
if sysctl -q -w kernel.panic=$PANIC_REBOOT_TIME; then ok; else fail; fi