From d366bd9f33d2c79e0dab376bede95636cfcc2695 Mon Sep 17 00:00:00 2001 From: Arne Fitzenreiter Date: Thu, 21 Apr 2011 11:03:43 +0200 Subject: [PATCH 1/6] mdadm: update to 3.2.1. changed initskript to scan also for raid devices if no config is present. --- config/rootfiles/packages/mdadm | 4 +++- lfs/mdadm | 11 +++++++---- src/initscripts/init.d/mdadm | 25 ++++++------------------- 3 files changed, 16 insertions(+), 24 deletions(-) diff --git a/config/rootfiles/packages/mdadm b/config/rootfiles/packages/mdadm index da4238bde..b98ec3cd5 100644 --- a/config/rootfiles/packages/mdadm +++ b/config/rootfiles/packages/mdadm @@ -1,4 +1,6 @@ -lib/udev/rules.d +etc/rc.d/rc0.d/S85mdadm +etc/rc.d/rc6.d/S75mdadm +etc/rc.d/rcsysinit.d/S15mdadm lib/udev/rules.d/64-md-raid.rules sbin/mdadm sbin/mdmon diff --git a/lfs/mdadm b/lfs/mdadm index 7d898bbc2..5c4024700 100644 --- a/lfs/mdadm +++ b/lfs/mdadm @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2007-2011 IPFire Team # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,7 +24,7 @@ include Config -VER = 3.1.1 +VER = 3.2.1 THISAPP = mdadm-$(VER) DL_FILE = $(THISAPP).tar.bz2 @@ -32,7 +32,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = mdadm -PAK_VER = 1 +PAK_VER = 2 DEPS = "" @@ -44,7 +44,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = 4fd8e375a2ee314becd3196c1a250d98 +$(DL_FILE)_MD5 = d1e2549202bd79d9e99f1498d1109530 install : $(TARGET) @@ -79,5 +79,8 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install + ln -sf ../init.d/mdadm /etc/rc.d/rcsysinit.d/S11mdadm + ln -sf ../init.d/mdadm /etc/rc.d/rc0.d/S85mdadm + ln -sf ../init.d/mdadm /etc/rc.d/rc6.d/S75mdadm @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/src/initscripts/init.d/mdadm b/src/initscripts/init.d/mdadm index 4b79ca849..03f6fe458 100644 --- a/src/initscripts/init.d/mdadm +++ b/src/initscripts/init.d/mdadm @@ -1,6 +1,6 @@ #!/bin/sh ######################################################################## -# Begin $rc_base/init.d/mdadmraid +# Begin $rc_base/init.d/mdadm # # Description : This script controls software Raid # @@ -17,28 +17,15 @@ case "${1}" in start) - - if [ -f /etc/mdadm.conf ] - then - boot_mesg "Starting Raid devices..." - - modprobe md - modprobe raid0 - modprobe raid1 - modprobe raid5 - - sleep 1 - - mdadm --assemble --scan - else - boot_mesg "Skipping raid devices, no config found..." - exit 1 - fi + boot_mesg "Scan/assemble mdadm raid devices..." + mdadm --assemble --scan + echo_ok ;; stop) boot_mesg "Stopping Raid devices..." mdadm --stop --scan + echo_ok ;; restart) @@ -57,4 +44,4 @@ case "${1}" in ;; esac -# End $rc_base/init.d/mdadmraid \ No newline at end of file +# End $rc_base/init.d/mdadm From 2a6b769a018fb5f301352b856ce070b63111fbd2 Mon Sep 17 00:00:00 2001 From: Arne Fitzenreiter Date: Thu, 21 Apr 2011 11:06:30 +0200 Subject: [PATCH 2/6] waitdrives: remove mdadm assemble scan. this is not needed after fix the mdadm initskript. --- src/initscripts/init.d/waitdrives | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/initscripts/init.d/waitdrives b/src/initscripts/init.d/waitdrives index 93ae1ed70..d7df93b94 100644 --- a/src/initscripts/init.d/waitdrives +++ b/src/initscripts/init.d/waitdrives @@ -26,11 +26,6 @@ check_drives () { case "${1}" in start) - if [ -e /sbin/mdadm ]; then - boot_mesg "Assemble mdadm managed raid-drives ..." - mdadm --assemble --scan - fi - drives=`grep "^UUID=" /etc/fstab | cut -f1 | cut -d" " -f1 | cut -d"=" -f2`; check_drives; From fac5261ee3d0b1826e128d07aa482d4a863ee446 Mon Sep 17 00:00:00 2001 From: Arne Fitzenreiter Date: Thu, 21 Apr 2011 11:08:14 +0200 Subject: [PATCH 3/6] extrahd: fix uuid emtpy string check. --- html/cgi-bin/extrahd.cgi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/html/cgi-bin/extrahd.cgi b/html/cgi-bin/extrahd.cgi index fa12dbed4..3bb6afd8d 100644 --- a/html/cgi-bin/extrahd.cgi +++ b/html/cgi-bin/extrahd.cgi @@ -202,7 +202,7 @@ END foreach $partitionentry (sort @partitions) { @partitionline = split( /\;/, $partitionentry ); - if (( "$partitionline[0]" =~ /^$scanline[0]/ ) && !( "$partitionline[2]" == "" )) { + if (( "$partitionline[0]" =~ /^$scanline[0]/ ) && !( "$partitionline[2]" eq "" )) { $size = int($partitionline[1] / 1024); print < From 607d4baeaf89e8531a0f310d351d878855cd6b2c Mon Sep 17 00:00:00 2001 From: Arne Fitzenreiter Date: Thu, 21 Apr 2011 14:08:04 +0200 Subject: [PATCH 4/6] rootfile update: mdadm. --- config/rootfiles/packages/mdadm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/rootfiles/packages/mdadm b/config/rootfiles/packages/mdadm index b98ec3cd5..aa7358981 100644 --- a/config/rootfiles/packages/mdadm +++ b/config/rootfiles/packages/mdadm @@ -1,6 +1,6 @@ etc/rc.d/rc0.d/S85mdadm etc/rc.d/rc6.d/S75mdadm -etc/rc.d/rcsysinit.d/S15mdadm +etc/rc.d/rcsysinit.d/S11mdadm lib/udev/rules.d/64-md-raid.rules sbin/mdadm sbin/mdmon From e3f28dd56f0df59ec70aeb50df87f8bb552e1aa4 Mon Sep 17 00:00:00 2001 From: Arne Fitzenreiter Date: Fri, 22 Apr 2011 14:26:51 +0200 Subject: [PATCH 5/6] extrahd: fix detection of md-raid without reboot. --- src/scripts/scanhd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/scripts/scanhd b/src/scripts/scanhd index 7de68fbf4..ee946b792 100644 --- a/src/scripts/scanhd +++ b/src/scripts/scanhd @@ -3,7 +3,7 @@ case "$1" in ide) /sbin/kudzu -qps -c HD | egrep "desc|device:" | awk -F': ' '{print $2}' | sed -e '/"$/a\\' -e "s/$/\;/g" | tr "\n" "XX" | sed -e "s/XX/\n/g" -e "s/\;X/\;/g" | grep '^"' -v > /var/ipfire/extrahd/scan - if [ -e /dev/md ]; then + if [ -e /dev/.mdadm ]; then echo 'md;"MDADM software-raid";' >> /var/ipfire/extrahd/scan fi if [ -e /dev/mmcblk0 ]; then From 339dbffc70042b8415d4407f35dc008fc9e51ecb Mon Sep 17 00:00:00 2001 From: Arne Fitzenreiter Date: Fri, 22 Apr 2011 17:03:23 +0200 Subject: [PATCH 6/6] mdadm: add cgi to display the md-state. --- config/menu/20-status.menu | 5 +++ config/rootfiles/common/apache2 | 1 + config/rootfiles/core/49/filelists/files | 1 + config/rootfiles/packages/mdadm | 1 + html/cgi-bin/mdstat.cgi | 51 ++++++++++++++++++++++++ src/scripts/scanhd | 2 +- 6 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 html/cgi-bin/mdstat.cgi diff --git a/config/menu/20-status.menu b/config/menu/20-status.menu index d71354043..c0b780a06 100644 --- a/config/menu/20-status.menu +++ b/config/menu/20-status.menu @@ -69,3 +69,8 @@ 'title' => 'Atm-status', 'enabled' => `find /sys/class/atm/*/device 2>/dev/null`, }; + $substatus->{'76.mdstat'} = {'caption' => 'Mdstat', + 'uri' => '/cgi-bin/mdstat.cgi', + 'title' => 'Mdstat', + 'enabled' => 1, + }; diff --git a/config/rootfiles/common/apache2 b/config/rootfiles/common/apache2 index c7262a5ae..be4648b0a 100644 --- a/config/rootfiles/common/apache2 +++ b/config/rootfiles/common/apache2 @@ -1333,6 +1333,7 @@ srv/web/ipfire/cgi-bin/ipinfo.cgi srv/web/ipfire/cgi-bin/iptables.cgi srv/web/ipfire/cgi-bin/logs.cgi srv/web/ipfire/cgi-bin/mac.cgi +#srv/web/ipfire/cgi-bin/mdstat.cgi srv/web/ipfire/cgi-bin/media.cgi srv/web/ipfire/cgi-bin/memory.cgi srv/web/ipfire/cgi-bin/modem.cgi diff --git a/config/rootfiles/core/49/filelists/files b/config/rootfiles/core/49/filelists/files index 9d0af8036..8e21e3fd2 100644 --- a/config/rootfiles/core/49/filelists/files +++ b/config/rootfiles/core/49/filelists/files @@ -13,4 +13,5 @@ var/ipfire/langs/de.pl var/ipfire/langs/en.pl var/ipfire/langs/es.pl var/ipfire/langs/fr.pl +var/ipfire/menu.d/20-status.menu usr/local/bin/scanhd diff --git a/config/rootfiles/packages/mdadm b/config/rootfiles/packages/mdadm index aa7358981..d593cac25 100644 --- a/config/rootfiles/packages/mdadm +++ b/config/rootfiles/packages/mdadm @@ -9,3 +9,4 @@ sbin/mdmon #usr/share/man/man8/mdadm.8 #usr/share/man/man8/mdmon.8 etc/rc.d/init.d/mdadm +srv/web/ipfire/cgi-bin/mdstat.cgi diff --git a/html/cgi-bin/mdstat.cgi b/html/cgi-bin/mdstat.cgi new file mode 100644 index 000000000..35c7debf8 --- /dev/null +++ b/html/cgi-bin/mdstat.cgi @@ -0,0 +1,51 @@ +#!/usr/bin/perl +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2011 IPFire Team # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see . # +# # +############################################################################### + +use strict; + +# enable only the following on debugging purpose +#use warnings; +#use CGI::Carp 'fatalsToBrowser'; + +require '/var/ipfire/general-functions.pl'; +require "${General::swroot}/lang.pl"; +require "${General::swroot}/header.pl"; + +my %color = (); +my %mainsettings = (); + +&General::readhash("${General::swroot}/main/settings", \%mainsettings); +&General::readhash("/srv/web/ipfire/html/themes/".$mainsettings{'THEME'}."/include/colors.txt", \%color); + +&Header::showhttpheaders(); +&Header::openpage($Lang::tr{'status information'}, 1, ''); +&Header::openbigbox('100%', 'left'); + +&Header::openbox('100%', 'left',"MD Raid State"); + +print ''; + +&Header::closebox(); + +&Header::closebigbox(); +&Header::closepage(); diff --git a/src/scripts/scanhd b/src/scripts/scanhd index ee946b792..0d97d5530 100644 --- a/src/scripts/scanhd +++ b/src/scripts/scanhd @@ -4,7 +4,7 @@ case "$1" in ide) /sbin/kudzu -qps -c HD | egrep "desc|device:" | awk -F': ' '{print $2}' | sed -e '/"$/a\\' -e "s/$/\;/g" | tr "\n" "XX" | sed -e "s/XX/\n/g" -e "s/\;X/\;/g" | grep '^"' -v > /var/ipfire/extrahd/scan if [ -e /dev/.mdadm ]; then - echo 'md;"MDADM software-raid";' >> /var/ipfire/extrahd/scan + echo 'md;"MD Software-Raid";' >> /var/ipfire/extrahd/scan fi if [ -e /dev/mmcblk0 ]; then echo 'mmcblk0;"MMC/SD Cardreader";' >> /var/ipfire/extrahd/scan