summaryrefslogtreecommitdiffstats
path: root/todo.py
diff options
context:
space:
mode:
authorErik Troan <ewt@redhat.com>2000-05-18 18:33:41 +0000
committerErik Troan <ewt@redhat.com>2000-05-18 18:33:41 +0000
commit568250af52c0c0661af9fd34b2ae059a24ef4001 (patch)
tree34456d225f6693fb7c0d5d73508a372d12d29200 /todo.py
parentebde6e2ff074d241450bf0df755c2da9f4dcd251 (diff)
downloadanaconda-568250af52c0c0661af9fd34b2ae059a24ef4001.tar.gz
anaconda-568250af52c0c0661af9fd34b2ae059a24ef4001.tar.xz
anaconda-568250af52c0c0661af9fd34b2ae059a24ef4001.zip
let you upgrade loopback root filesystems
Diffstat (limited to 'todo.py')
-rw-r--r--todo.py47
1 files changed, 39 insertions, 8 deletions
diff --git a/todo.py b/todo.py
index 60984e187..dee739114 100644
--- a/todo.py
+++ b/todo.py
@@ -661,7 +661,7 @@ class ToDo:
_("Error mounting ext2 filesystem on %s: %s") % (dev, msg))
continue
if os.access ('/mnt/sysimage/etc/fstab', os.R_OK):
- rootparts.append (dev)
+ rootparts.append ((dev, "ext2"))
isys.umount('/mnt/sysimage')
os.remove ('/tmp/' + dev)
@@ -672,6 +672,7 @@ class ToDo:
try:
table = _balkan.readTable ('/tmp/' + drive)
+ os.remove('/tmp/' + drive)
except SystemError:
pass
else:
@@ -684,27 +685,52 @@ class ToDo:
else:
dev = drive + str (i + 1)
try:
- isys.mount(dev, '/mnt/sysimage')
+ isys.mount(dev, '/mnt/sysimage', readOnly = 1)
except SystemError, (errno, msg):
self.intf.messageWindow(_("Error"),
_("Error mounting ext2 filesystem on %s: %s") % (dev, msg))
continue
if os.access ('/mnt/sysimage/etc/fstab', os.R_OK):
- rootparts.append (dev)
+ rootparts.append ((dev, "ext2"))
isys.umount('/mnt/sysimage')
- os.remove ('/tmp/' + dev)
- os.remove ('/tmp/' + drive)
+ elif size and type == _balkan.DOS:
+ dev = drive + str (i + 1)
+ try:
+ isys.mount(dev, '/mnt/sysimage', fstype = "vfat",
+ readOnly = 1)
+ except SystemError, (errno, msg):
+ log("failed to mount vfat filesystem on %s\n"
+ % dev)
+ continue
+
+ if os.access('/mnt/sysimage/redhat.img', os.R_OK):
+ rootparts.append((dev, "vfat"))
+
+ isys.umount('/mnt/sysimage')
+
win.pop ()
return rootparts
- def upgradeFindPackages (self, root):
+ def upgradeFindPackages (self, rootInfo):
+ (root, rootFs) = rootInfo
+ log("want to upgrade system on device %s, fs %s" % (root, rootFs))
win = self.intf.waitWindow (_("Finding"),
_("Finding packages to upgrade..."))
if self.setupFilesystems:
mdList = raid.startAllRaid(self.fstab.driveList())
- isys.mount(root, '/mnt/sysimage')
+
+ if rootFs == "vfat":
+ fstab.mountLoopbackRoot(root)
+ else:
+ isys.mount(root, '/mnt/sysimage')
+
fstab.readFstab('/mnt/sysimage/etc/fstab', self.fstab)
- isys.umount('/mnt/sysimage')
+
+ if rootFs == "vfat":
+ fstab.unmountLoopbackRoot()
+ else:
+ isys.umount('/mnt/sysimage')
+
raid.stopAllRaid(mdList)
if self.fstab.hasDirtyFilesystems():
@@ -717,7 +743,12 @@ class ToDo:
sys.exit(0)
self.fstab.mountFilesystems (self.instPath)
+
+ if os.access("/mnt/loophost/rh-swap.img", os.R_OK):
+ self.fstab.setLoopbackSwapSize(-1)
+
self.fstab.turnOnSwap(formatSwap = 0)
+
self.getCompsList ()
self.getHeaderList ()