1 |
diff -Nur -x '*.orig' -x '*.rej' anaconda-10.1.1.37/fsset.py mezzanine_patched_anaconda-10.1.1.37/fsset.py |
2 |
--- anaconda-10.1.1.37/fsset.py 2006-02-02 07:03:36.000000000 +1100 |
3 |
+++ mezzanine_patched_anaconda-10.1.1.37/fsset.py 2006-04-06 05:19:55.336561737 +1000 |
4 |
@@ -1339,6 +1339,7 @@ |
5 |
|
6 |
if bootDev.getName() == "RAIDDevice": |
7 |
ret['boot'] = (bootDev.device, N_("RAID Device")) |
8 |
+ ret['mbr'] = (bl.drivelist[0], N_("Master Boot Record (MBR)")) |
9 |
return ret |
10 |
|
11 |
if iutil.getPPCMacGen() == "NewWorld": |
12 |
@@ -2001,11 +2002,20 @@ |
13 |
self.minor) |
14 |
|
15 |
def raidTab (self, devPrefix='/dev'): |
16 |
+ if self.level == 1: |
17 |
+ nDisks = max(2, self.numDisks) |
18 |
+ elif self.level == 5: |
19 |
+ nDisks = max(3, self.numDisks) |
20 |
+ elif self.level == 6: |
21 |
+ nDisks = max(4, self.numDisks) |
22 |
+ else: |
23 |
+ nDisks = self.numDisks |
24 |
+ |
25 |
entry = "" |
26 |
entry = entry + "raiddev %s/%s\n" % (devPrefix, |
27 |
self.device,) |
28 |
entry = entry + "raid-level %d\n" % (self.level,) |
29 |
- entry = entry + "nr-raid-disks %d\n" % (self.numDisks,) |
30 |
+ entry = entry + "nr-raid-disks %d\n" % (nDisks,) |
31 |
entry = entry + "chunk-size %s\n" %(self.chunksize,) |
32 |
entry = entry + "persistent-superblock 1\n" |
33 |
entry = entry + "nr-spare-disks %d\n" % (self.spares,) |
34 |
@@ -2015,6 +2025,10 @@ |
35 |
device) |
36 |
entry = entry + " raid-disk %d\n" % (i,) |
37 |
i = i + 1 |
38 |
+ while i < nDisks: |
39 |
+ entry = entry + " device dev/null\n" |
40 |
+ entry = entry + " failed-disk %d\n" % (i,) |
41 |
+ i = i + 1 |
42 |
i = 0 |
43 |
for device in self.members[self.numDisks:]: |
44 |
entry = entry + " device %s/%s\n" % (devPrefix, |
45 |
@@ -2027,6 +2041,15 @@ |
46 |
def devify(x): |
47 |
return "/dev/%s" %(x,) |
48 |
|
49 |
+ if self.level == 1: |
50 |
+ nDisks = max(2, self.numDisks) |
51 |
+ elif self.level == 5: |
52 |
+ nDisks = max(3, self.numDisks) |
53 |
+ elif self.level == 6: |
54 |
+ nDisks = max(4, self.numDisks) |
55 |
+ else: |
56 |
+ nDisks = self.numDisks |
57 |
+ |
58 |
node = "%s/%s" % (devPrefix, self.device) |
59 |
isys.makeDevInode(self.device, node) |
60 |
|
61 |
@@ -2038,12 +2061,18 @@ |
62 |
args = ["/usr/sbin/mdadm", "--create", "/dev/%s" %(self.device,), |
63 |
"--run", "--chunk=%s" %(self.chunksize,), |
64 |
"--level=%s" %(self.level,), |
65 |
- "--raid-devices=%s" %(self.numDisks,)] |
66 |
+ "--raid-devices=%s" %(nDisks,)] |
67 |
|
68 |
if self.spares > 0: |
69 |
args.append("--spare-devices=%s" %(self.spares,),) |
70 |
|
71 |
args.extend(map(devify, self.members)) |
72 |
+ |
73 |
+ i = 0 |
74 |
+ while self.numDisks + i < nDisks: |
75 |
+ args.append("missing") |
76 |
+ i = i + 1 |
77 |
+ |
78 |
log("going to run: %s" %(args,)) |
79 |
iutil.execWithRedirect (args[0], args, |
80 |
stderr="/dev/tty5", stdout="/dev/tty5") |
81 |
diff -Nur -x '*.orig' -x '*.rej' anaconda-10.1.1.37/raid.py mezzanine_patched_anaconda-10.1.1.37/raid.py |
82 |
--- anaconda-10.1.1.37/raid.py 2005-07-09 07:17:54.000000000 +1000 |
83 |
+++ mezzanine_patched_anaconda-10.1.1.37/raid.py 2006-04-06 05:16:30.660228950 +1000 |
84 |
@@ -90,7 +90,17 @@ |
85 |
raidList = [] |
86 |
for key in raidSets.keys(): |
87 |
(level, totalDisks, mdMinor, devices) = raidSets[key] |
88 |
- if len(devices) < totalDisks: |
89 |
+ if len(devices) == totalDisks - 1 and level in (1, 5, 6): |
90 |
+ log("missing components of raid device md%d. The " |
91 |
+ "raid device needs %d drive(s) and only %d (was/were) found. " |
92 |
+ "This raid device will be started in degraded mode.", mdMinor, |
93 |
+ totalDisks, len(devices)) |
94 |
+ elif len(devices) == totalDisks - 2 and level == 6: |
95 |
+ log("missing components of raid device md%d. The " |
96 |
+ "raid device needs %d drive(s) and only %d (was/were) found. " |
97 |
+ "This raid device will be started in degraded mode.", mdMinor, |
98 |
+ totalDisks, len(devices)) |
99 |
+ elif len(devices) < totalDisks: |
100 |
log("missing components of raid device md%d. The " |
101 |
"raid device needs %d drive(s) and only %d (was/were) found. " |
102 |
"This raid device will not be started.", mdMinor, |
103 |
@@ -160,11 +170,11 @@ |
104 |
if isRaid0(raidlevel): |
105 |
return 2 |
106 |
elif isRaid1(raidlevel): |
107 |
- return 2 |
108 |
+ return 1 |
109 |
elif isRaid5(raidlevel): |
110 |
- return 3 |
111 |
+ return 2 |
112 |
elif isRaid6(raidlevel): |
113 |
- return 4 |
114 |
+ return 2 |
115 |
else: |
116 |
raise ValueError, "invalid raidlevel in get_raid_min_members" |
117 |
|