diff options
author | Jeremy Katz <katzj@redhat.com> | 2004-05-19 20:47:18 +0000 |
---|---|---|
committer | Jeremy Katz <katzj@redhat.com> | 2004-05-19 20:47:18 +0000 |
commit | f8d1abed427d7a288857e12366efe155a9be7cdf (patch) | |
tree | e406b09e711b122ce7939a8f1fe3f4d09991c41b /fsset.py | |
parent | a421d257fa89b0c72ec1d7c4d93a1c62a9538661 (diff) | |
download | anaconda-f8d1abed427d7a288857e12366efe155a9be7cdf.tar.gz anaconda-f8d1abed427d7a288857e12366efe155a9be7cdf.tar.xz anaconda-f8d1abed427d7a288857e12366efe155a9be7cdf.zip |
fixes for using mdadm discovered from actually testing the code. needs
a new mdadm with my --really-force option
Diffstat (limited to 'fsset.py')
-rw-r--r-- | fsset.py | 44 |
1 files changed, 30 insertions, 14 deletions
@@ -1048,16 +1048,19 @@ class FileSystemSet: return raidtab def mdadmConf(self): - if len(self.entries) == 0: - return + raident = 0 cf = "DEVICE partitions\n" for ent in self.entries: - l = "ARRAY /dev/%s superminor=%s\n" %(ent.device, ent.minor) - cf = cf + l + if ent.device.getName() != "RAIDDevice": + continue - return cf - + raident +=1 + cf = cf + ent.device.mdadmLine() + + if raident > 0: + return cf + return def write (self, prefix): f = open (prefix + "/etc/fstab", "w") @@ -1801,6 +1804,10 @@ class RAIDDevice(Device): return [ '-R', 'stride=%d' % (self.numDisks * 16) ] return [] + def mdadmLine (self, devPrefix="/dev"): + return "ARRAY %s/%s superminor=%s\n" %(devPrefix, self.device, + self.minor) + def raidTab (self, devPrefix='/dev'): entry = "" entry = entry + "raiddev %s/%s\n" % (devPrefix, @@ -1824,7 +1831,10 @@ class RAIDDevice(Device): i = i + 1 return entry - def setupDevice (self, chroot="/", devPrefix='/tmp'): + def setupDevice (self, chroot="/", devPrefix='/dev'): + def devify(x): + return "/dev/%s" %(x,) + node = "%s/%s" % (devPrefix, self.device) isys.makeDevInode(self.device, node) @@ -1832,13 +1842,19 @@ class RAIDDevice(Device): for device in self.members: PartitionDevice(device).setupDevice(chroot, devPrefix=devPrefix) - iutil.execWithRedirect ("/usr/sbin/mdadm" - ("mdadm", "--create", - "--chunk=%s" %(self.chunksize,), - "--level=%s" %(self.level,), - "--spare-devices=%s" %(self.spares,), - "--raid-devices=%s" %(self.numDisks,), - self.members), + + args = ["/usr/sbin/mdadm", "--create", "/dev/%s" %(self.device,), + "--really-force", + "--chunk=%s" %(self.chunksize,), + "--level=%s" %(self.level,), + "--raid-devices=%s" %(self.numDisks,)] + + if self.spares > 0: + args.append("--spare-devices=%s" %(self.spares,),) + + args.extend(map(devify, self.members)) + log("going to run: %s" %(args,)) + iutil.execWithRedirect (args[0], args, stderr="/dev/tty5", stdout="/dev/tty5") raid.register_raid_device(self.device, self.members[:], self.level, self.numDisks) |