1 |
slords |
1.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 |
slords |
1.4 |
@@ -1340,6 +1340,7 @@ |
5 |
slords |
1.1 |
|
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 |
slords |
1.4 |
@@ -2002,11 +2003,20 @@ |
13 |
slords |
1.1 |
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 |
slords |
1.4 |
@@ -2016,6 +2026,10 @@ |
35 |
slords |
1.1 |
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 |
slords |
1.4 |
@@ -2028,6 +2042,15 @@ |
46 |
slords |
1.1 |
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 |
slords |
1.4 |
@@ -2039,12 +2062,18 @@ |
62 |
slords |
1.1 |
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 |
|
|
|