/*
* mdadm - manage Linux "md" devices aka RAID arrays.
*
- * Copyright (C) 2001-2005 Neil Brown <neilb@cse.unsw.edu.au>
+ * Copyright (C) 2001-2006 Neil Brown <neilb@suse.de>
*
*
* This program is free software; you can redistribute it and/or modify
#include "mdadm.h"
-char Version[] = Name " - v2.0 - 25 August 2005\n";
+char Version[] = Name " - v2.5.6 - 9 November 2006\n";
/*
* File: ReadMe.c
* At the time if writing, there is only minimal support.
*/
-char short_options[]="-ABCDEFGQhVXvqb::c:i:l:p:m:n:x:u:c:d:z:U:sa::rfRSow1te:";
+char short_options[]="-ABCDEFGQhVXWvqbc:i:l:p:m:n:x:u:c:d:z:U:sarfRSow1tye:";
+char short_bitmap_auto_options[]="-ABCDEFGQhVXWvqb:c:i:l:p:m:n:x:u:c:d:z:U:sa:rfRSow1tye:";
+
struct option long_options[] = {
{"manage", 0, 0, '@'},
{"misc", 0, 0, '#'},
{"spare-devices",1,0, 'x'},
{"size", 1, 0, 'z'},
{"auto", 1, 0, 'a'}, /* also for --assemble */
- {"assume-clean",0,0, 3 },
+ {"assume-clean",0,0, AssumeClean },
{"metadata", 1, 0, 'e'}, /* superblock format */
{"bitmap", 1, 0, 'b'},
- {"bitmap-chunk", 1, 0, 4},
- {"write-behind", 2, 0, 5},
+ {"bitmap-chunk", 1, 0, BitmapChunk},
+ {"write-behind", 2, 0, WriteBehind},
{"write-mostly",0, 0, 'W'},
- {"re-add", 0, 0, 6},
+ {"re-add", 0, 0, ReAdd},
+ {"homehost", 1, 0, HomeHost},
+ {"auto-update-homehost", 0, 0, AutoHomeHost},
+ {"symlinks", 1, 0, Symlinks},
/* For assemble */
{"uuid", 1, 0, 'u'},
{"stop", 0, 0, 'S'},
{"readonly", 0, 0, 'o'},
{"readwrite", 0, 0, 'w'},
+ {"no-degraded",0,0, NoDegraded },
+ {"wait", 0, 0, 'W'},
/* For Detail/Examine */
{"brief", 0, 0, 'b'},
- {"sparc2.2", 0, 0, 22},
+ {"sparc2.2", 0, 0, Sparc22},
{"test", 0, 0, 't'},
/* For Follow/monitor */
{"daemonize", 0, 0, 'f'},
{"oneshot", 0, 0, '1'},
{"pid-file", 1, 0, 'i'},
+ {"syslog", 0, 0, 'y'},
+ /* For Grow */
+ {"backup-file", 1,0, BackupFile},
{0, 0, 0, 0}
};
;
char Help[] =
+"mdadm is used for building, managing, and monitoring\n"
+"Linux md devices (aka RAID arrays)\n"
"Usage: mdadm --create device options...\n"
+" Create a new array from unused devices.\n"
" mdadm --assemble device options...\n"
+" Assemble a previously created array.\n"
" mdadm --build device options...\n"
+" Create or assemble an array without metadata.\n"
" mdadm --manage device options...\n"
+" make changes to an existing array.\n"
" mdadm --misc options... devices\n"
+" report on or modify various md related devices.\n"
" mdadm --monitor options...\n"
+" Monitor one or more array for significant changes.\n"
" mdadm device options...\n"
-" mdadm is used for building, managing, and monitoring\n"
-" Linux md devices (aka RAID arrays)\n"
+" Shorthand for --manage.\n"
+"Any parameter that does not start with '-' is treated as a device name\n"
+"or, for --examine-bitmap, a file name.\n"
+"The first such name is often the name of an md device. Subsequent\n"
+"names are often names of component devices.\n"
+"\n"
" For detailed help on the above major modes use --help after the mode\n"
" e.g.\n"
" mdadm --assemble --help\n"
"Any parameter that does not start with '-' is treated as a device name\n"
"or, for --examine-bitmap, a file name.\n"
"The first such name is often the name of an md device. Subsequent\n"
-"names are often names of component devices."
+"names are often names of component devices.\n"
"\n"
"Some common options are:\n"
" --help -h : General help message or, after above option,\n"
" --force -f : Override normal checks and be more forceful\n"
"\n"
" --assemble -A : Assemble an array\n"
-" --build -B : Build a legacy array\n"
+" --build -B : Build an array without metadata\n"
" --create -C : Create a new array\n"
" --detail -D : Display details of an array\n"
" --examine -E : Examine superblock on an array component\n"
" --config= -c : config file\n"
" --scan -s : scan config file for missing information\n"
" --force -f : Assemble the array even if some superblocks appear out-of-date\n"
-" --update= -U : Update superblock: one of sparc2.2, super-minor or summaries\n"
+" --update= -U : Update superblock: try '-A --update=?' for list of options.\n"
" --auto(=p) -a : Automatically allocate new (partitioned) md array if needed.\n"
+" --no-degraded : Do not start any degraded arrays - default unless --scan.\n"
"\n"
" For detail or examine:\n"
" --brief -b : Just print device name and UUID\n"
" --readonly -o : mark array as readonly\n"
" --readwrite -w : mark array as readwrite\n"
" --zero-superblock : erase the MD superblock from a device.\n"
+" --wait -W : wait for recovery/resync/reshape to finish.\n"
;
*/
" Those devices are md devices that are to be assembled. Their identity\n"
" and components are determined from the config file.\n"
"\n"
+" If mdadm can not find all of the components for an array, it will assemble\n"
+" it but not activate it unless --run or --scan is given. To preserve this\n"
+" behaviour even with --scan, add --no-degraded. Note that \"all of the\n"
+" components\" means as many as were present the last time the array was running\n"
+" as recorded in the superblock. If the array was already degraded, and\n"
+" the missing device is not a new problem, it will still be assembled. It\n"
+" is only newly missing devices that cause the array not to be started.\n"
+"\n"
"Options that are valid with --assemble (-A) are:\n"
" --bitmap= : bitmap file to use wit the array\n"
" --uuid= -u : uuid of array to assemble. Devices which don't\n"
" for a full array are present\n"
" --force -f : Assemble the array even if some superblocks appear\n"
" : out-of-date. This involves modifying the superblocks.\n"
-" --update= -U : Update superblock: one of sparc2.2, super-minor or summaries\n"
+" --update= -U : Update superblock: try '-A --update=?' for option list.\n"
+" --no-degraded : Assemble but do not start degraded arrays.\n"
;
char Help_manage[] =
" --readonly -o : mark array as readonly\n"
" --readwrite -w : mark array as readwrite\n"
" --test -t : exit status 0 if ok, 1 if degrade, 2 if dead, 4 if missing\n"
+" --wait -W : wait for resync/rebuild/recovery to finish\n"
;
char Help_monitor[] =