This commit is contained in:
commit
f22bb8396f
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal file
@ -0,0 +1,23 @@
|
||||
## Default LFS
|
||||
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||
*.bsp filter=lfs diff=lfs merge=lfs -text
|
||||
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.gem filter=lfs diff=lfs merge=lfs -text
|
||||
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||
*.jar filter=lfs diff=lfs merge=lfs -text
|
||||
*.lz filter=lfs diff=lfs merge=lfs -text
|
||||
*.lzma filter=lfs diff=lfs merge=lfs -text
|
||||
*.obscpio filter=lfs diff=lfs merge=lfs -text
|
||||
*.oxt filter=lfs diff=lfs merge=lfs -text
|
||||
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||
*.png filter=lfs diff=lfs merge=lfs -text
|
||||
*.rpm filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||
*.txz filter=lfs diff=lfs merge=lfs -text
|
||||
*.whl filter=lfs diff=lfs merge=lfs -text
|
||||
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||
*.zst filter=lfs diff=lfs merge=lfs -text
|
BIN
Software-RAID.HOWTO.tar.bz2
(Stored with Git LFS)
Normal file
BIN
Software-RAID.HOWTO.tar.bz2
(Stored with Git LFS)
Normal file
Binary file not shown.
152
boot.md
Normal file
152
boot.md
Normal file
@ -0,0 +1,152 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# SUSE system startup script for MD Raid autostart
|
||||
# Copyright (C) 1995--2005 Kurt Garloff, SUSE / Novell Inc.
|
||||
# Copyright (C) 2006 Marian Jancar, SUSE / Novell Inc.
|
||||
#
|
||||
# This library is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU Lesser General Public License as published by
|
||||
# the Free Software Foundation; either version 2.1 of the License, or (at
|
||||
# your option) any later version.
|
||||
#
|
||||
# This library 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
|
||||
# Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public
|
||||
# License along with this library; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307,
|
||||
# USA.
|
||||
#
|
||||
### BEGIN INIT INFO
|
||||
# Provides: boot.md
|
||||
# Required-Start: boot.udev boot.rootfsck
|
||||
# X-SUSE-Should-Start: boot.scsidev boot.multipath
|
||||
# Default-Start: B
|
||||
# Default-Stop:
|
||||
# Short-Description: Multiple Device RAID
|
||||
# Description: Start MD RAID
|
||||
# RAID devices are virtual devices created from two or more real block devices.
|
||||
# This allows multiple devices (typically disk drives or partitions there-of)
|
||||
# to be combined into a single device to hold (for example) a single filesystem.
|
||||
# Some RAID levels include redundancy and so can survive some degree of device failure.
|
||||
### END INIT INFO
|
||||
|
||||
# Source LSB init functions
|
||||
# providing start_daemon, killproc, pidofproc,
|
||||
# log_success_msg, log_failure_msg and log_warning_msg.
|
||||
# This is currently not used by UnitedLinux based distributions and
|
||||
# not needed for init scripts for UnitedLinux only. If it is used,
|
||||
# the functions from rc.status should not be sourced or used.
|
||||
#. /lib/lsb/init-functions
|
||||
|
||||
# Shell functions sourced from /etc/rc.status:
|
||||
# rc_check check and set local and overall rc status
|
||||
# rc_status check and set local and overall rc status
|
||||
# rc_status -v be verbose in local rc status and clear it afterwards
|
||||
# rc_status -v -r ditto and clear both the local and overall rc status
|
||||
# rc_status -s display "skipped" and exit with status 3
|
||||
# rc_status -u display "unused" and exit with status 3
|
||||
# rc_failed set local and overall rc status to failed
|
||||
# rc_failed <num> set local and overall rc status to <num>
|
||||
# rc_reset clear both the local and overall rc status
|
||||
# rc_exit exit appropriate to overall rc status
|
||||
# rc_active checks whether a service is activated by symlinks
|
||||
. /etc/rc.status
|
||||
|
||||
# Reset status of this service
|
||||
rc_reset
|
||||
|
||||
# Return values acc. to LSB for all commands but status:
|
||||
# 0 - success
|
||||
# 1 - generic or unspecified error
|
||||
# 2 - invalid or excess argument(s)
|
||||
# 3 - unimplemented feature (e.g. "reload")
|
||||
# 4 - user had insufficient privileges
|
||||
# 5 - program is not installed
|
||||
# 6 - program is not configured
|
||||
# 7 - program is not running
|
||||
# 8--199 - reserved (8--99 LSB, 100--149 distrib, 150--199 appl)
|
||||
#
|
||||
# Note that starting an already running service, stopping
|
||||
# or restarting a not-running service as well as the restart
|
||||
# with force-reload (in case signaling is not supported) are
|
||||
# considered a success.
|
||||
|
||||
mdadm_BIN=/sbin/mdadm
|
||||
mdrun_BIN=/sbin/mdrun
|
||||
raidautorun_BIN=/sbin/raidautorun
|
||||
mdadm_CONFIG="/etc/mdadm.conf"
|
||||
mdadm_SYSCONFIG="/etc/sysconfig/mdadm"
|
||||
|
||||
# udev integration
|
||||
if [ -x /sbin/udevsettle ] ; then
|
||||
[ -z "$MDADM_DEVICE_TIMEOUT" ] && MDADM_DEVICE_TIMEOUT=60
|
||||
else
|
||||
MDADM_DEVICE_TIMEOUT=0
|
||||
fi
|
||||
|
||||
function _rc_exit {
|
||||
[ "x$2" != x"" ] && echo -n $2
|
||||
rc_failed $1
|
||||
rc_status -v
|
||||
rc_exit
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
echo -n "Starting MD Raid "
|
||||
|
||||
# Check for existence of needed config file and read it
|
||||
[ -r $mdadm_SYSCONFIG ] || _rc_exit 6 "... $mdadm_SYSCONFIG not existing "
|
||||
|
||||
# Read config
|
||||
. $mdadm_SYSCONFIG
|
||||
|
||||
[ "x$MDADM_CONFIG" != x"" ] && mdadm_CONFIG="$MDADM_CONFIG"
|
||||
|
||||
# Check for missing binaries (stale symlinks should not happen)
|
||||
[ -x $mdadm_BIN ] || _rc_exit 5 "... $mdadm_BIN not installed "
|
||||
[ -x $mdrun_BIN ] || _rc_exit 5 "... $mdrun_BIN not installed "
|
||||
|
||||
# Try to load md_mod
|
||||
[ ! -f /proc/mdstat -a -x /sbin/modprobe ] && /sbin/modprobe -k md_mod 2>&1 | :
|
||||
[ -f /proc/mdstat ] || _rc_exit 5 "... no MD support in kernel "
|
||||
|
||||
# Wait for udev to settle
|
||||
if [ "$MDADM_DEVICE_TIMEOUT" -gt 0 ] ; then
|
||||
/sbin/udevsettle --timeout="$MDADM_DEVICE_TIMEOUT"
|
||||
fi
|
||||
|
||||
# Fallback to raidautorun / mdrun when $mdadm_CONFIG missing
|
||||
# or mdadm exits with an error
|
||||
[ "$BOOT_MD_USE_MDADM_CONFIG" = "yes" -a -s "$mdadm_CONFIG" ]
|
||||
[ $? = 0 ] && { $mdadm_BIN -A -s -c $mdadm_CONFIG || rc_failed 1; }
|
||||
if [ $? != 0 ]; then
|
||||
if test -b /dev/md0; then
|
||||
$raidautorun_BIN
|
||||
else
|
||||
$mdrun_BIN
|
||||
fi
|
||||
fi
|
||||
|
||||
# Remember status and be verbose
|
||||
rc_status -v
|
||||
;;
|
||||
stop)
|
||||
echo -n "Shutting down MD Raid "
|
||||
|
||||
# Remember status and be verbose
|
||||
rc_status -v
|
||||
;;
|
||||
status)
|
||||
rc_failed 4
|
||||
rc_status -v
|
||||
;;
|
||||
*)
|
||||
echo "Usage: $0 {start|stop|status}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
rc_exit
|
11
mdadm-2.5.3-infoname.diff
Normal file
11
mdadm-2.5.3-infoname.diff
Normal file
@ -0,0 +1,11 @@
|
||||
--- super1.c
|
||||
+++ super1.c
|
||||
@@ -538,7 +538,7 @@
|
||||
strncpy(info->name, c+1, 31 - (c-sb->set_name));
|
||||
else
|
||||
strncpy(info->name, sb->set_name, 32);
|
||||
- info->name[33] = 0;
|
||||
+ info->name[32] = 0;
|
||||
}
|
||||
if (strcmp(update, "name") == 0) {
|
||||
if (info->name[0] == 0)
|
3
mdadm-2.5.3.tar.bz2
Normal file
3
mdadm-2.5.3.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:22e8364dcc528b1e5e4ee8f25ef4a6f0e9c648f1f1d2d7dbe688c929a3369672
|
||||
size 135019
|
289
mdadm.changes
Normal file
289
mdadm.changes
Normal file
@ -0,0 +1,289 @@
|
||||
-------------------------------------------------------------------
|
||||
Wed Jan 10 11:58:14 CET 2007 - mmarek@suse.cz
|
||||
|
||||
- use raidautorun instead of mdrun to autodetect the raid arrays in
|
||||
boot.md [#230733]
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Nov 8 10:51:13 CET 2006 - prusnak@suse.cz
|
||||
|
||||
- fixed subscript out of range [#212697]
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Sep 20 17:17:22 CEST 2006 - mjancar@suse.cz
|
||||
|
||||
- update to 2.5.3
|
||||
* lots bugfixes
|
||||
* drop all patches (integrated upstream)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Jul 28 13:12:47 CEST 2006 - olh@suse.de
|
||||
|
||||
- remove dropped boot.ibmsis from boot.md
|
||||
- boot.rootfsck should start before boot.md (#181972)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Jul 21 14:16:28 CEST 2006 - olh@suse.de
|
||||
|
||||
- remove boot.proc from Required-Start: in boot.md (#178753)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed May 3 13:12:42 CEST 2006 - mjancar@suse.cz
|
||||
|
||||
- fix false SparesMissing error (#171326)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Apr 26 09:46:28 CEST 2006 - hare@suse.de
|
||||
|
||||
- Fix init script dependencies
|
||||
- Implement MDADM_DEVICE_TIMEOUT to set a timeout for
|
||||
udevsettle (#149979)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Apr 25 13:39:38 CEST 2006 - mjancar@suse.cz
|
||||
|
||||
- add static device nodes for udev (#168824)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Apr 19 10:27:19 CEST 2006 - mjancar@suse.cz
|
||||
|
||||
- set $BOOT_MD_USE_MDADM_CONFIG to "yes" by default (#155120)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Apr 7 11:33:15 CEST 2006 - mjancar@suse.cz
|
||||
|
||||
- detach mdadmd from tty in rcmdadmd (#160881)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Apr 3 09:54:55 CEST 2006 - mjancar@suse.cz
|
||||
|
||||
- fix garbled output with --detail (#160827)
|
||||
- fix fix write-mostly with --add and --re-add (#162968)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Mar 24 21:31:54 CET 2006 - mjancar@suse.cz
|
||||
|
||||
- add /sbin/raidautorun (#159460)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Mar 8 18:33:12 CET 2006 - mjancar@suse.cz
|
||||
|
||||
- add $BOOT_MD_USE_MDADM_CONFIG sysconfig variable (#155120)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Feb 9 16:59:52 CET 2006 - mjancar@suse.cz
|
||||
|
||||
- round free size to chunk size multiply on --create (#148562)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Feb 7 08:59:50 CET 2006 - mjancar@suse.cz
|
||||
|
||||
- move boot.multipath to Should-Start instead of Required-Start
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Feb 6 15:27:47 CET 2006 - mjancar@suse.cz
|
||||
|
||||
- add "Obsoletes: raidtools"
|
||||
- start boot.md after boot.multipath
|
||||
- call mdadm without -a from mdrun, an argument is required in 2.2
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Feb 6 11:36:26 CET 2006 - mjancar@suse.de
|
||||
|
||||
- don't start mdadmd by default
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Feb 5 20:46:43 CET 2006 - mjancar@suse.cz
|
||||
|
||||
- include option for email to be sent on start (#142105)
|
||||
- fix missing md autostart due to raidtools dropped (#148234)
|
||||
* include mdrun script from Debian
|
||||
* create boot.md initscipt
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Feb 5 17:46:32 CET 2006 - schwab@suse.de
|
||||
|
||||
- Fix memset parameters.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Feb 2 12:30:26 CET 2006 - mjancar@suse.cz
|
||||
|
||||
- fix segfault on --assemble (#146514)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Jan 27 02:12:42 CET 2006 - mls@suse.de
|
||||
|
||||
- converted neededforbuild to BuildRequires
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jan 25 10:48:18 CET 2006 - olh@suse.de
|
||||
|
||||
- fix uninitialized variable, memset call and memcmp/memcpy bug
|
||||
mdadm.bug144647-array.init.patch
|
||||
mdadm.bug144647-update_super1-memcpy.patch
|
||||
mdadm.bug144647-add_internal_bitmap0-memcpy.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jan 11 13:49:54 CET 2006 - mjancar@suse.cz
|
||||
|
||||
- update ro 2.2
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Dec 20 12:57:25 CET 2005 - ro@suse.de
|
||||
|
||||
- at least output errors if they occur (instead of ignoring)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Nov 30 17:19:24 CET 2005 - schwab@suse.de
|
||||
|
||||
- Fix broken formats.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Oct 25 09:53:57 CEST 2005 - aj@suse.de
|
||||
|
||||
- Build with -fno-strict-aliasing.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Oct 12 20:18:00 CEST 2005 - mjancar@suse.cz
|
||||
|
||||
- update to 2.1
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Jul 28 20:28:32 CEST 2005 - anicka@suse.cz
|
||||
|
||||
- update to 1.12.0
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jun 15 13:16:42 CEST 2005 - meissner@suse.de
|
||||
|
||||
- use RPM_OPT_FLAGS correctly.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Apr 19 13:48:24 CEST 2005 - postadal@suse.de
|
||||
|
||||
- updated to version 1.11.0
|
||||
- fixed for gcc 4.0
|
||||
- removed obsoleted patch config-fix
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Mar 30 13:24:23 CEST 2005 - postadal@suse.cz
|
||||
|
||||
- fixed parsing command line option '--config=partions' [#74603]
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Feb 4 13:09:49 CET 2005 - postadal@suse.cz
|
||||
|
||||
- updated to version 1.9.0
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Jan 13 17:24:55 CET 2005 - postadal@suse.cz
|
||||
|
||||
- updated to version 1.8.1
|
||||
- extended comment in sysconfig.mdadm [#48567]
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Aug 06 12:09:58 CEST 2004 - postadal@suse.cz
|
||||
|
||||
- updated to version 1.6.0
|
||||
* added --auto= and --assume-clean options
|
||||
* added "degraded" and "recovering" options to the "Status:" entry
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Feb 10 13:45:52 CET 2004 - postadal@suse.cz
|
||||
|
||||
- updated to version 1.5.0
|
||||
* new commands "mdassemble"
|
||||
* support for raid6 as found in 2.6.2
|
||||
* support partitioned md arrays with a different major number and
|
||||
naming scheme
|
||||
* added "SparesMissing" event when --monitor first sees an array and
|
||||
it doesn't have the enough spare devices.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Jan 11 11:50:04 CET 2004 - adrian@suse.de
|
||||
|
||||
- add %defattr
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Dec 1 10:53:02 CET 2003 - fehr@suse.de
|
||||
|
||||
- fix quoting problem in start script (#33392)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Aug 29 09:36:24 CEST 2003 - fehr@suse.de
|
||||
|
||||
- add PreReq for fillup
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Aug 26 10:23:44 CEST 2003 - fehr@suse.de
|
||||
|
||||
- add %stop_on_removal and %restart_on_update
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Aug 14 15:40:53 CEST 2003 - fehr@suse.de
|
||||
|
||||
- add missing activation metadata in sysconfig (#28901)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Jul 29 11:03:36 CEST 2003 - fehr@suse.de
|
||||
|
||||
- update to new version 1.3.0 of package
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Apr 14 20:01:43 CEST 2003 - postadal@suse.cz
|
||||
|
||||
- fixed init script (added return value for unimplemented reload function)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Mar 31 17:37:03 CEST 2003 - postadal@suse.cz
|
||||
|
||||
- added buildroot, init script, sysconfig
|
||||
- bzip2 sources and cleaned specfile
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Mar 20 16:18:13 CET 2003 - fehr@suse.de
|
||||
|
||||
- update to version 1.2.0 of package
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Mar 3 12:16:22 CET 2003 - fehr@suse.de
|
||||
|
||||
- update to version 1.1.0 of package
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Dec 2 11:30:52 CET 2002 - fehr@suse.de
|
||||
|
||||
- Fix for new glibc/gcc
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Sep 13 15:10:00 CEST 2002 - lmb@suse.de
|
||||
|
||||
- Fix for 64bit arch; ioctl returns long instead of int (#20339)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Sep 17 17:34:28 CEST 2002 - ro@suse.de
|
||||
|
||||
- removed bogus self-provides
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Aug 23 11:16:51 MEST 2002 - lmb@suse.de
|
||||
|
||||
- Multipath arrays can now be build manually even without a superblock.
|
||||
- One debugging chunk removed from patch.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Aug 13 14:43:02 MEST 2002 - lmb@suse.de
|
||||
|
||||
- Fix for the assembly of multipath arrays.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Aug 12 11:46:43 MEST 2002 - lmb@suse.de
|
||||
|
||||
- Added patch to support the enhanced multipath features.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Aug 5 16:05:19 CEST 2002 - fehr@suse.de
|
||||
|
||||
- make SuSE package from version 1.0.1 of mdadm
|
||||
|
||||
-------------------------------------------------------------------
|
255
mdadm.spec
Normal file
255
mdadm.spec
Normal file
@ -0,0 +1,255 @@
|
||||
#
|
||||
# spec file for package mdadm (Version 2.5.3)
|
||||
#
|
||||
# Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
||||
# This file and all modifications and additions to the pristine
|
||||
# package are under the same license as the package itself.
|
||||
#
|
||||
# Please submit bugfixes or comments via http://bugs.opensuse.org/
|
||||
#
|
||||
|
||||
# norootforbuild
|
||||
|
||||
Name: mdadm
|
||||
Version: 2.5.3
|
||||
Release: 20
|
||||
BuildRequires: opensp sgmltool
|
||||
PreReq: %fillup_prereq %insserv_prereq
|
||||
Obsoletes: raidtools
|
||||
Autoreqprov: on
|
||||
Group: System/Base
|
||||
License: GNU General Public License (GPL)
|
||||
URL: http://www.cse.unsw.edu.au/~neilb/source/mdadm/
|
||||
Summary: Utility for Configuring MD Setup
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
Source: %{name}-%{version}.tar.bz2
|
||||
Source1: Software-RAID.HOWTO.tar.bz2
|
||||
Source2: sysconfig.mdadm
|
||||
Source3: mdadmd
|
||||
Source4: boot.md
|
||||
Source5: mdrun
|
||||
Source6: raidautorun.c
|
||||
Patch: %{name}-%{version}-infoname.diff
|
||||
|
||||
%description
|
||||
Mdadm is a program that can be used to control Linux md devices. It is
|
||||
intended to provide all the functionality of the mdtools and raidtools
|
||||
programs but with a very different interface.
|
||||
|
||||
|
||||
|
||||
Authors:
|
||||
--------
|
||||
Neil Brown <neilb@cse.unsw.edu.au>
|
||||
|
||||
%prep
|
||||
%setup -q -a1
|
||||
%patch
|
||||
|
||||
%build
|
||||
%{suse_update_config -f}
|
||||
make CXFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing -Wno-error"
|
||||
gcc $RPM_OPT_FLAGS %{S:6} -o raidautorun
|
||||
cd Software-RAID.HOWTO
|
||||
sgml2html Software-RAID.HOWTO.sgml
|
||||
sgml2txt Software-RAID.HOWTO.sgml
|
||||
|
||||
%install
|
||||
make install DESTDIR=$RPM_BUILD_ROOT
|
||||
install -d $RPM_BUILD_ROOT%{_var}/adm/fillup-templates
|
||||
install -d $RPM_BUILD_ROOT{%{_sbindir},%{_sysconfdir}/init.d}
|
||||
install -d $RPM_BUILD_ROOT/lib/udev/devices
|
||||
install -m 755 %{S:5} raidautorun $RPM_BUILD_ROOT/sbin/
|
||||
install -m 755 %{S:4} %{S:3} $RPM_BUILD_ROOT%{_sysconfdir}/init.d/
|
||||
install -m 644 %{S:2} $RPM_BUILD_ROOT%{_var}/adm/fillup-templates/
|
||||
ln -sf ../../etc/init.d/mdadmd $RPM_BUILD_ROOT/%{_sbindir}/rcmdadmd
|
||||
|
||||
%post
|
||||
%{fillup_and_insserv -Y boot.md}
|
||||
|
||||
%postun
|
||||
%restart_on_update mdadmd
|
||||
%{insserv_cleanup}
|
||||
|
||||
%preun
|
||||
%stop_on_removal mdadmd
|
||||
|
||||
%clean
|
||||
rm -rf $RPM_BUILD_ROOT
|
||||
|
||||
%files
|
||||
%defattr(-,root,root)
|
||||
%attr(0755,root,root) %config %{_sysconfdir}/init.d/*
|
||||
%attr(640,root,disk) %dev(b,9,0) /lib/udev/devices/md0
|
||||
%attr(640,root,disk) %dev(b,9,1) /lib/udev/devices/md1
|
||||
%attr(640,root,disk) %dev(b,9,2) /lib/udev/devices/md2
|
||||
%attr(640,root,disk) %dev(b,9,3) /lib/udev/devices/md3
|
||||
%attr(640,root,disk) %dev(b,9,4) /lib/udev/devices/md4
|
||||
%attr(640,root,disk) %dev(b,9,5) /lib/udev/devices/md5
|
||||
%attr(640,root,disk) %dev(b,9,6) /lib/udev/devices/md6
|
||||
%attr(640,root,disk) %dev(b,9,7) /lib/udev/devices/md7
|
||||
%attr(640,root,disk) %dev(b,9,8) /lib/udev/devices/md8
|
||||
%attr(640,root,disk) %dev(b,9,9) /lib/udev/devices/md9
|
||||
%attr(640,root,disk) %dev(b,9,10) /lib/udev/devices/md10
|
||||
%attr(640,root,disk) %dev(b,9,11) /lib/udev/devices/md11
|
||||
%attr(640,root,disk) %dev(b,9,12) /lib/udev/devices/md12
|
||||
%attr(640,root,disk) %dev(b,9,13) /lib/udev/devices/md13
|
||||
%attr(640,root,disk) %dev(b,9,14) /lib/udev/devices/md14
|
||||
%attr(640,root,disk) %dev(b,9,15) /lib/udev/devices/md15
|
||||
%attr(640,root,disk) %dev(b,9,16) /lib/udev/devices/md16
|
||||
%attr(640,root,disk) %dev(b,9,17) /lib/udev/devices/md17
|
||||
%attr(640,root,disk) %dev(b,9,18) /lib/udev/devices/md18
|
||||
%attr(640,root,disk) %dev(b,9,19) /lib/udev/devices/md19
|
||||
%attr(640,root,disk) %dev(b,9,20) /lib/udev/devices/md20
|
||||
%attr(640,root,disk) %dev(b,9,21) /lib/udev/devices/md21
|
||||
%attr(640,root,disk) %dev(b,9,22) /lib/udev/devices/md22
|
||||
%attr(640,root,disk) %dev(b,9,23) /lib/udev/devices/md23
|
||||
%attr(640,root,disk) %dev(b,9,24) /lib/udev/devices/md24
|
||||
%attr(640,root,disk) %dev(b,9,25) /lib/udev/devices/md25
|
||||
%attr(640,root,disk) %dev(b,9,26) /lib/udev/devices/md26
|
||||
%attr(640,root,disk) %dev(b,9,27) /lib/udev/devices/md27
|
||||
%attr(640,root,disk) %dev(b,9,28) /lib/udev/devices/md28
|
||||
%attr(640,root,disk) %dev(b,9,29) /lib/udev/devices/md29
|
||||
%attr(640,root,disk) %dev(b,9,30) /lib/udev/devices/md30
|
||||
%attr(640,root,disk) %dev(b,9,31) /lib/udev/devices/md31
|
||||
%doc ANNOUNCE-2.0 ANNOUNCE-2.1 ANNOUNCE-2.2 COPYING ChangeLog README.initramfs TODO mdadm.conf-example mkinitramfs
|
||||
%doc Software-RAID.HOWTO/Software-RAID.HOWTO*{.txt,.html}
|
||||
%doc %{_mandir}/man?/*
|
||||
/sbin/*
|
||||
/lib/udev
|
||||
%{_sbindir}/*
|
||||
%{_var}/adm/fillup-templates/sysconfig.mdadm
|
||||
|
||||
%changelog -n mdadm
|
||||
* Wed Jan 10 2007 - mmarek@suse.cz
|
||||
- use raidautorun instead of mdrun to autodetect the raid arrays in
|
||||
boot.md [#230733]
|
||||
* Wed Nov 08 2006 - prusnak@suse.cz
|
||||
- fixed subscript out of range [#212697]
|
||||
* Wed Sep 20 2006 - mjancar@suse.cz
|
||||
- update to 2.5.3
|
||||
* lots bugfixes
|
||||
* drop all patches (integrated upstream)
|
||||
* Fri Jul 28 2006 - olh@suse.de
|
||||
- remove dropped boot.ibmsis from boot.md
|
||||
- boot.rootfsck should start before boot.md (#181972)
|
||||
* Fri Jul 21 2006 - olh@suse.de
|
||||
- remove boot.proc from Required-Start: in boot.md (#178753)
|
||||
* Wed May 03 2006 - mjancar@suse.cz
|
||||
- fix false SparesMissing error (#171326)
|
||||
* Wed Apr 26 2006 - hare@suse.de
|
||||
- Fix init script dependencies
|
||||
- Implement MDADM_DEVICE_TIMEOUT to set a timeout for
|
||||
udevsettle (#149979)
|
||||
* Tue Apr 25 2006 - mjancar@suse.cz
|
||||
- add static device nodes for udev (#168824)
|
||||
* Wed Apr 19 2006 - mjancar@suse.cz
|
||||
- set $BOOT_MD_USE_MDADM_CONFIG to "yes" by default (#155120)
|
||||
* Fri Apr 07 2006 - mjancar@suse.cz
|
||||
- detach mdadmd from tty in rcmdadmd (#160881)
|
||||
* Mon Apr 03 2006 - mjancar@suse.cz
|
||||
- fix garbled output with --detail (#160827)
|
||||
- fix fix write-mostly with --add and --re-add (#162968)
|
||||
* Fri Mar 24 2006 - mjancar@suse.cz
|
||||
- add /sbin/raidautorun (#159460)
|
||||
* Wed Mar 08 2006 - mjancar@suse.cz
|
||||
- add $BOOT_MD_USE_MDADM_CONFIG sysconfig variable (#155120)
|
||||
* Thu Feb 09 2006 - mjancar@suse.cz
|
||||
- round free size to chunk size multiply on --create (#148562)
|
||||
* Tue Feb 07 2006 - mjancar@suse.cz
|
||||
- move boot.multipath to Should-Start instead of Required-Start
|
||||
* Mon Feb 06 2006 - mjancar@suse.cz
|
||||
- add "Obsoletes: raidtools"
|
||||
- start boot.md after boot.multipath
|
||||
- call mdadm without -a from mdrun, an argument is required in 2.2
|
||||
* Mon Feb 06 2006 - mjancar@suse.de
|
||||
- don't start mdadmd by default
|
||||
* Sun Feb 05 2006 - mjancar@suse.cz
|
||||
- include option for email to be sent on start (#142105)
|
||||
- fix missing md autostart due to raidtools dropped (#148234)
|
||||
* include mdrun script from Debian
|
||||
* create boot.md initscipt
|
||||
* Sun Feb 05 2006 - schwab@suse.de
|
||||
- Fix memset parameters.
|
||||
* Thu Feb 02 2006 - mjancar@suse.cz
|
||||
- fix segfault on --assemble (#146514)
|
||||
* Fri Jan 27 2006 - mls@suse.de
|
||||
- converted neededforbuild to BuildRequires
|
||||
* Wed Jan 25 2006 - olh@suse.de
|
||||
- fix uninitialized variable, memset call and memcmp/memcpy bug
|
||||
mdadm.bug144647-array.init.patch
|
||||
mdadm.bug144647-update_super1-memcpy.patch
|
||||
mdadm.bug144647-add_internal_bitmap0-memcpy.patch
|
||||
* Wed Jan 11 2006 - mjancar@suse.cz
|
||||
- update ro 2.2
|
||||
* Tue Dec 20 2005 - ro@suse.de
|
||||
- at least output errors if they occur (instead of ignoring)
|
||||
* Wed Nov 30 2005 - schwab@suse.de
|
||||
- Fix broken formats.
|
||||
* Tue Oct 25 2005 - aj@suse.de
|
||||
- Build with -fno-strict-aliasing.
|
||||
* Wed Oct 12 2005 - mjancar@suse.cz
|
||||
- update to 2.1
|
||||
* Thu Jul 28 2005 - anicka@suse.cz
|
||||
- update to 1.12.0
|
||||
* Wed Jun 15 2005 - meissner@suse.de
|
||||
- use RPM_OPT_FLAGS correctly.
|
||||
* Tue Apr 19 2005 - postadal@suse.de
|
||||
- updated to version 1.11.0
|
||||
- fixed for gcc 4.0
|
||||
- removed obsoleted patch config-fix
|
||||
* Wed Mar 30 2005 - postadal@suse.cz
|
||||
- fixed parsing command line option '--config=partions' [#74603]
|
||||
* Fri Feb 04 2005 - postadal@suse.cz
|
||||
- updated to version 1.9.0
|
||||
* Thu Jan 13 2005 - postadal@suse.cz
|
||||
- updated to version 1.8.1
|
||||
- extended comment in sysconfig.mdadm [#48567]
|
||||
* Fri Aug 06 2004 - postadal@suse.cz
|
||||
- updated to version 1.6.0
|
||||
* added --auto= and --assume-clean options
|
||||
* added "degraded" and "recovering" options to the "Status:" entry
|
||||
* Tue Feb 10 2004 - postadal@suse.cz
|
||||
- updated to version 1.5.0
|
||||
* new commands "mdassemble"
|
||||
* support for raid6 as found in 2.6.2
|
||||
* support partitioned md arrays with a different major number and
|
||||
naming scheme
|
||||
* added "SparesMissing" event when --monitor first sees an array and
|
||||
it doesn't have the enough spare devices.
|
||||
* Sun Jan 11 2004 - adrian@suse.de
|
||||
- add %%defattr
|
||||
* Mon Dec 01 2003 - fehr@suse.de
|
||||
- fix quoting problem in start script (#33392)
|
||||
* Fri Aug 29 2003 - fehr@suse.de
|
||||
- add PreReq for fillup
|
||||
* Tue Aug 26 2003 - fehr@suse.de
|
||||
- add %%stop_on_removal and %%restart_on_update
|
||||
* Thu Aug 14 2003 - fehr@suse.de
|
||||
- add missing activation metadata in sysconfig (#28901)
|
||||
* Tue Jul 29 2003 - fehr@suse.de
|
||||
- update to new version 1.3.0 of package
|
||||
* Mon Apr 14 2003 - postadal@suse.cz
|
||||
- fixed init script (added return value for unimplemented reload function)
|
||||
* Mon Mar 31 2003 - postadal@suse.cz
|
||||
- added buildroot, init script, sysconfig
|
||||
- bzip2 sources and cleaned specfile
|
||||
* Thu Mar 20 2003 - fehr@suse.de
|
||||
- update to version 1.2.0 of package
|
||||
* Mon Mar 03 2003 - fehr@suse.de
|
||||
- update to version 1.1.0 of package
|
||||
* Mon Dec 02 2002 - fehr@suse.de
|
||||
- Fix for new glibc/gcc
|
||||
* Tue Sep 17 2002 - ro@suse.de
|
||||
- removed bogus self-provides
|
||||
* Fri Sep 13 2002 - lmb@suse.de
|
||||
- Fix for 64bit arch; ioctl returns long instead of int (#20339)
|
||||
* Fri Aug 23 2002 - lmb@suse.de
|
||||
- Multipath arrays can now be build manually even without a superblock.
|
||||
- One debugging chunk removed from patch.
|
||||
* Tue Aug 13 2002 - lmb@suse.de
|
||||
- Fix for the assembly of multipath arrays.
|
||||
* Mon Aug 12 2002 - lmb@suse.de
|
||||
- Added patch to support the enhanced multipath features.
|
||||
* Mon Aug 05 2002 - fehr@suse.de
|
||||
- make SuSE package from version 1.0.1 of mdadm
|
150
mdadmd
Normal file
150
mdadmd
Normal file
@ -0,0 +1,150 @@
|
||||
#! /bin/sh
|
||||
# Copyright (c) 1995-2002 SuSE Linux AG, Nuernberg, Germany.
|
||||
# All rights reserved.
|
||||
#
|
||||
# Author: Petr Ostadal, feedback to http://www.suse.de/feedback
|
||||
#
|
||||
# /etc/init.d/mdadmd
|
||||
#
|
||||
# and its symbolic link
|
||||
#
|
||||
# /usr/sbin/rcmdadmd
|
||||
#
|
||||
### BEGIN INIT INFO
|
||||
# Provides: mdadmd
|
||||
# Required-Start: $local_fs
|
||||
# X-UnitedLinux-Should-Start: $time sendmail
|
||||
# Required-Stop: $local_fs
|
||||
# X-UnitedLinux-Should-Stop: $time sendmail
|
||||
# Default-Start: 3 5
|
||||
# Default-Stop: 0 1 2 6
|
||||
# Short-Description: mdadmd daemon monitoring MD devices
|
||||
# Description: Start mdadmd to allow monitoring MD devices aka
|
||||
# Linux Software Raid. This is only meaningful for raid1, raid5
|
||||
# or multipath arrays as only these have interesting state.
|
||||
# raid0 or linear never have missing, spare, or failed drives,
|
||||
# so there is nothing to monitor.
|
||||
### END INIT INFO
|
||||
|
||||
mdadmd_BIN=/sbin/mdadm
|
||||
test -x $mdadmd_BIN || exit 5
|
||||
|
||||
mdadmd_CONFIG=/etc/sysconfig/mdadm
|
||||
test -r $mdadmd_CONFIG || exit 6
|
||||
. $mdadmd_CONFIG
|
||||
|
||||
if [ x$MDADM_DELAY = x"" ]; then
|
||||
MDADM_DELAY=60
|
||||
fi
|
||||
MDADM_DELAY="-d "$MDADM_DELAY;
|
||||
|
||||
if [ x$MDADM_MAIL != x"" ]; then
|
||||
MDADM_MAIL="-m \"$MDADM_MAIL\""
|
||||
fi
|
||||
|
||||
if [ x$MDADM_PROGRAM != x"" ]; then
|
||||
MDADM_PROGRAM="-p \"$MDADM_PROGRAM\""
|
||||
fi
|
||||
|
||||
if [ x$MDADM_SCAN = x"yes" ]; then
|
||||
MDADM_SCAN="-s"
|
||||
else
|
||||
MDADM_SCAN=""
|
||||
fi
|
||||
|
||||
if [ x$MDADM_SEND_MAIL_ON_START = x"yes" ]; then
|
||||
MDADM_SEND_MAIL="-t"
|
||||
else
|
||||
MDADM_SEND_MAIL=""
|
||||
fi
|
||||
|
||||
if [ x$MDADM_CONFIG != x"" ]; then
|
||||
MDADM_CONFIG="-c \"$MDADM_CONFIG\""
|
||||
fi
|
||||
|
||||
. /etc/rc.status
|
||||
|
||||
# Reset status of this service
|
||||
rc_reset
|
||||
|
||||
# Return values acc. to LSB for all commands but status:
|
||||
# 0 - success
|
||||
# 1 - generic or unspecified error
|
||||
# 2 - invalid or excess argument(s)
|
||||
# 3 - unimplemented feature (e.g. "reload")
|
||||
# 4 - user had insufficient privileges
|
||||
# 5 - program is not installed
|
||||
# 6 - program is not configured
|
||||
# 7 - program is not running
|
||||
# 8--199 - reserved (8--99 LSB, 100--149 distrib, 150--199 appl)
|
||||
#
|
||||
# Note that starting an already running service, stopping
|
||||
# or restarting a not-running service as well as the restart
|
||||
# with force-reload (in case signaling is not supported) are
|
||||
# considered a success.
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
echo -n "Starting mdadmd "
|
||||
## Start daemon with startproc(8). If this fails
|
||||
## the return value is set appropriately by startproc.
|
||||
eval startproc -q -s $mdadmd_BIN -F $MDADM_RAIDDEVICES $MDADM_DELAY $MDADM_MAIL $MDADM_PROGRAM $MDADM_SCAN $MDADM_SEND_MAIL $MDADM_CONFIG
|
||||
|
||||
# Remember status and be verbose
|
||||
rc_status -v
|
||||
;;
|
||||
stop)
|
||||
echo -n "Shutting down mdadmd "
|
||||
## Stop daemon with killproc(8) and if this fails
|
||||
## killproc sets the return value according to LSB.
|
||||
|
||||
killproc -TERM $mdadmd_BIN
|
||||
|
||||
# Remember status and be verbose
|
||||
rc_status -v
|
||||
;;
|
||||
try-restart)
|
||||
## Do a restart only if the service was active before.
|
||||
## Note: try-restart is not (yet) part of LSB (as of 1.2)
|
||||
$0 status >/dev/null && $0 restart
|
||||
|
||||
# Remember status and be quiet
|
||||
rc_status
|
||||
;;
|
||||
restart)
|
||||
## Stop the service and regardless of whether it was
|
||||
## running or not, start it again.
|
||||
$0 stop
|
||||
$0 start
|
||||
|
||||
# Remember status and be quiet
|
||||
rc_status
|
||||
;;
|
||||
reload)
|
||||
exit 3
|
||||
;;
|
||||
status)
|
||||
echo -n "Checking for service mdadmd "
|
||||
## Check status with checkproc(8), if process is running
|
||||
## checkproc will return with exit status 0.
|
||||
|
||||
# Return value is slightly different for the status command:
|
||||
# 0 - service up and running
|
||||
# 1 - service dead, but /var/run/ pid file exists
|
||||
# 2 - service dead, but /var/lock/ lock file exists
|
||||
# 3 - service not running (unused)
|
||||
# 4 - service status unknown :-(
|
||||
# 5--199 reserved (5--99 LSB, 100--149 distro, 150--199 appl.)
|
||||
|
||||
# NOTE: checkproc returns LSB compliant status values.
|
||||
checkproc $mdadmd_BIN
|
||||
# NOTE: rc_status knows that we called this init script with
|
||||
# "status" option and adapts its messages accordingly.
|
||||
rc_status -v
|
||||
;;
|
||||
*)
|
||||
echo "Usage: $0 {start|stop|status|try-restart|restart}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
rc_exit
|
147
mdrun
Normal file
147
mdrun
Normal file
@ -0,0 +1,147 @@
|
||||
#!/bin/sh
|
||||
|
||||
# mdrun, (c) Eduard Bloch <blade@debian.org> 2003
|
||||
|
||||
# Usage:
|
||||
# Without arguments: autodetect all RAID partitions and activate MDs
|
||||
# Arguments: [ DEVDIR ] NUMBER UUID [ <NUMBER UUID> ... ]
|
||||
# a number of number/uuid pairs, where NUMBER is the one from /dev/md/*
|
||||
# Argument: LIST
|
||||
# lists all raids in the syntax needed for the pairs (see above)
|
||||
|
||||
# IMPORTANT: create /dev/fs directory if you have devfs support in the kernel
|
||||
# but do not want to mount it over /dev. Usage of /dev/fs directory will keep
|
||||
# mdrun away from /dev.
|
||||
|
||||
# If the first argument is a directory, it will be used as a writeable
|
||||
# temporary directory for device nodes. mdrun needs mknod to create them
|
||||
# on-the-fly
|
||||
|
||||
# Environment:
|
||||
# MORERAIDVOLUMES (list of strings) : additional raid disks to scan,
|
||||
# eg. loop devices
|
||||
|
||||
if ! test -e /proc/partitions ; then
|
||||
echo "/proc not mounted!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
DEVDIR=/dev
|
||||
|
||||
if [ -d "$1" ] ; then
|
||||
AUTOCREATE=true
|
||||
DEVDIR="$1"
|
||||
shift
|
||||
fi
|
||||
|
||||
# For people that compile the kernel with devfs (means: different
|
||||
# proc/partitions content), but without auto-mounting it
|
||||
if ! uname -r | grep "^2.6" 1>/dev/null && [ -z "$AUTOCREATE" ] && grep " devfs" /proc/filesystems >/dev/null 2>&1 && ! grep "^devfs" /proc/mounts >/dev/null 2>&1 ; then
|
||||
|
||||
mkdir /dev/fs 2>/dev/null
|
||||
# if we can do it - good, we will use it. Otherwise, use /dev even if it is ugly
|
||||
|
||||
# mount devfs for now to make the device names match, umount later
|
||||
if [ -d /dev/fs ] ; then
|
||||
DEVDIR=/dev/fs
|
||||
fi
|
||||
mount none $DEVDIR -tdevfs
|
||||
UMNTDEVFS="umount $DEVDIR"
|
||||
fi
|
||||
|
||||
# arr(array, index): return contents in array[index]; as with Bourne shell
|
||||
# in general, there is no easy way to distinguish between index not
|
||||
# existing and empty string assigned.
|
||||
arr() { sa_i=`arr_index $2`; eval "echo \"\$$1_${sa_i}\""; unset sa_i; }
|
||||
|
||||
# seterr(array, index, value): assign the given value to array[index].
|
||||
setarr() { sa_i=`arr_index $2`; eval "$1_${sa_i}=\"$3\""; unset sa_i; }
|
||||
|
||||
# arr_index(index): make sure the given index is valid for use.
|
||||
arr_index() { echo $1 | sed -e 's/:/_/g' | sed 's;/;_;g'; }
|
||||
|
||||
|
||||
BASE=$DEVDIR/md
|
||||
export BASE
|
||||
#devfs
|
||||
test -d $BASE && BASE=$BASE/
|
||||
|
||||
next_free_md() {
|
||||
for raidnr in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24; do
|
||||
if ! mdadm -D $BASE$raidnr >/dev/null 2>&1 ; then
|
||||
echo $BASE$raidnr
|
||||
return 0
|
||||
fi
|
||||
done
|
||||
return 1
|
||||
}
|
||||
|
||||
listpairs() {
|
||||
for NUMBER in `cat /proc/mdstat | grep "^md. : active" | sed -e 's/^md\(.\) :.*/\1/'`; do
|
||||
echo $NUMBER
|
||||
mdadm -D ${BASE}$NUMBER 2>/dev/null |grep UUID | sed 's/.*: \(.*\)/\1/'
|
||||
done
|
||||
}
|
||||
|
||||
if [ "$1" = LIST ] ; then
|
||||
echo `listpairs`
|
||||
$UMNTDEVFS
|
||||
exit 0
|
||||
fi
|
||||
|
||||
DEVDIRESC=$(echo $DEVDIR | sed -e 's!/!\\/!g')
|
||||
if [ "$AUTOCREATE" ] ; then
|
||||
CREATECMD=$(sed -e "s/.*major.*//; s/.*\ \([:0-9:]\+\)\ \+\ \([:0-9:]\+\)\ \+\ [:0-9:]\+\ \+\([:a-z0-9\/:]\+\).*/mknod \3 b \1 \2 ; / ; s/\//_/g" < /proc/partitions)
|
||||
export CREATECMD
|
||||
export DEVDIR
|
||||
# and we need array nodes, of course
|
||||
(
|
||||
cd $DEVDIR ;
|
||||
eval $CREATECMD ;
|
||||
for x in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 ; do
|
||||
mknod ${BASE}$x b 9 $x
|
||||
done
|
||||
)
|
||||
PARTLIST=$(sed -e "s/.*major.*//; s/.*\ \([:0-9:]\+\)\ \+\ \([:0-9:]\+\)\ \+\ [:0-9:]\+\ \+\([:a-z0-9\/:]\+\).*/DEVDIR\3 /; s/\//_/g ; s/DEVDIR/$DEVDIRESC\//;" < /proc/partitions)
|
||||
else
|
||||
PARTLIST=$(sed -e "s/.*major.*//; s/^[:0-9 :]* \([:a-z:].[:a-z0-9\/:]*\).*/\1/; s/^\([:a-z:].*\)/$DEVDIRESC\/\1/g" < /proc/partitions)
|
||||
fi
|
||||
|
||||
for SRC in $PARTLIST $MORERAIDVOLUMES ; do
|
||||
SUM=$(mdadm -E $SRC 2>/dev/null | grep UUID | sed 's/.*: \(.*\)/\1/')
|
||||
for x in $SUM; do
|
||||
UUIDS="$UUIDS $SUM"
|
||||
setarr MDS $SUM "`arr MDS $SUM` $SRC"
|
||||
done
|
||||
done
|
||||
|
||||
if [ "$#" -gt 1 ] ; then
|
||||
NUMBER=${BASE}$1
|
||||
MD=$2
|
||||
shift ; shift
|
||||
if [ "`arr MDS $MD`" != "started" ] ; then
|
||||
mdadm -A $NUMBER -f `arr MDS $MD` && setarr MDS $MD "started"
|
||||
# just to be sure
|
||||
ln /dev/md/$NUMBER /dev/md$NUMBER 2>/dev/null
|
||||
fi
|
||||
fi
|
||||
|
||||
# and process the rest, if it exists
|
||||
# do not touch active arrays
|
||||
#dropactive() {
|
||||
for NUMBER in `cat /proc/mdstat | grep "^md. : active" | sed -e 's/^md\(.\) :.*/\1/'`; do
|
||||
setarr MDS `mdadm -D ${BASE}$NUMBER 2>/dev/null |grep UUID | sed 's/.*: \(.*\)/\1/'` "started"
|
||||
done
|
||||
#}
|
||||
|
||||
|
||||
for MD in $UUIDS; do
|
||||
if [ "`arr MDS $MD`" != "started" ] ; then
|
||||
NUMBER=`next_free_md`
|
||||
mdadm -A $NUMBER -f `arr MDS $MD` && setarr MDS $MD "started"
|
||||
# just to be sure
|
||||
ln /dev/md/$NUMBER /dev/md$NUMBER 2>/dev/null
|
||||
fi
|
||||
done
|
||||
|
||||
$UMNTDEVFS
|
16
raidautorun.c
Normal file
16
raidautorun.c
Normal file
@ -0,0 +1,16 @@
|
||||
#include <fcntl.h>
|
||||
#include <unistd.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <linux/major.h>
|
||||
#include <linux/raid/md_u.h>
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
int fd = open("/dev/md0", O_RDWR);
|
||||
|
||||
if (fd >= 0) {
|
||||
ioctl(fd, RAID_AUTORUN, 0);
|
||||
close(fd);
|
||||
}
|
||||
return (0);
|
||||
}
|
69
sysconfig.mdadm
Normal file
69
sysconfig.mdadm
Normal file
@ -0,0 +1,69 @@
|
||||
## Path: System/File systems/Mdadm
|
||||
## Description: Additional options for the mdadm daemon (see man mdadm(8)).
|
||||
## ServiceRestart: mdadm
|
||||
##
|
||||
## Type: integer
|
||||
## Default: 60
|
||||
#
|
||||
# A delay in seconds between polling the md arrays.
|
||||
#
|
||||
MDADM_DELAY=60
|
||||
|
||||
## Type: string
|
||||
## Default: ""
|
||||
#
|
||||
# A mail address (or comma-separated list of mail addresses) to send alerts to.
|
||||
#
|
||||
MDADM_MAIL="root@localhost"
|
||||
|
||||
## Type: string
|
||||
## Default: ""
|
||||
#
|
||||
# A program to be run whenever an event is detected.
|
||||
#
|
||||
MDADM_PROGRAM=""
|
||||
|
||||
## Type: string
|
||||
## Default: ""
|
||||
#
|
||||
# Monitoring MD devices.
|
||||
#
|
||||
MDADM_RAIDDEVICES=""
|
||||
|
||||
## Type: yesno
|
||||
## Default: yes
|
||||
#
|
||||
# "yes" for scanning config file or /proc/mdstat for missing information.
|
||||
#
|
||||
MDADM_SCAN=yes
|
||||
|
||||
## Type: string
|
||||
## Default: "/etc/mdadm.conf"
|
||||
#
|
||||
# The config file.
|
||||
#
|
||||
MDADM_CONFIG="/etc/mdadm.conf"
|
||||
|
||||
## Type: yesno
|
||||
## Default: no
|
||||
#
|
||||
# "yes" for email to be sent on start
|
||||
#
|
||||
MDADM_SEND_MAIL_ON_START=no
|
||||
|
||||
## Type: yesno
|
||||
## Default: no
|
||||
#
|
||||
# "yes" for mdadm.conf to be used for array assembly on boot
|
||||
#
|
||||
BOOT_MD_USE_MDADM_CONFIG=yes
|
||||
|
||||
## Type: integer
|
||||
## Default: 60
|
||||
#
|
||||
# Timeout for udev device detection. This is the upper limit which the
|
||||
# boot script will wait for udev to finish hotplug event processing.
|
||||
# If not all devices are detected during boot this value should be
|
||||
# increased. Setting this to '0' disables waiting for udev.
|
||||
#
|
||||
MDADM_DEVICE_TIMEOUT="60"
|
Loading…
Reference in New Issue
Block a user