Hello,
I have been watching the progress of anaconda in the fedora core development
and finally over the last 3 days I have started patching XFS support into it.
I now need some help. As I see it the XFS support in fedora core can be broken
down into the following components
1. Kernel - DaveJ has said NO :-< ...
solution is to make our own.
2. Userspace - SGI provides RPMS they work fine.
3. Comps file add 2 lines one for xfsprogs & the other for xfsdump. I just
copied and pasted the lines for e2fsprogs and dump and changed the names.
This time around anaconda does dependency resolvind during the install so no
need to run /usr/share/comps/getfullcomps.py to make the packages section.
4. Enable XFS as a supported filesystem in anaconda. Trivial patch, this time
around I added xfs_copy to the rescue image so that one can boot off the cd
and copy partitions.
--- anaconda-9.0.96/scripts/upd-instroot.orig 2003-10-08 01:33:15.000000000
+0530
+++ anaconda-9.0.96/scripts/upd-instroot 2003-10-23 20:23:25.000000000
+0530
@@ -110,7 +110,8 @@
bzip2-libs dosfstools pciutils reiserfs-utils parted sed
busybox-anaconda rpm-python booty hdparm lvm beecrypt
rhpl pyxf86config libxml2 libxml2-python glib2
- elfutils-libelf bogl-bterm bogl krb5-libs convertdb1 jfsutils"
+ elfutils-libelf bogl-bterm bogl krb5-libs convertdb1 jfsutils
+ xfsprogs xfsdump dmapi libacl libattr attr acl"
if [ $ARCH = i386 -o $ARCH = x86_64 ]; then
PACKAGES="$PACKAGES kernel-pcmcia-cs kernel-utils"
@@ -156,7 +157,8 @@
redhat-config-keyboard Xft fontconfig redhat-artwork
ttfonts-ja ttfonts-zh_TW bitmap-fonts-cjk urw-fonts
comps-extras XFree86-libs-data convertdb1
- vnc-server libjpeg tcp_wrappers redhat-config-date"
+ vnc-server libjpeg tcp_wrappers redhat-config-date
+ xfsprogs xfsdump dmapi libacl libattr attr acl"
#
# stuff ONLY included for rescue mode
@@ -239,6 +241,9 @@
$LIBDIR/librt[-.]*
$LIBDIR/libss*
$LIBDIR/libtermcap*
+$LIBDIR/libhandle*
+$LIBDIR/libattr*
+$LIBDIR/libdm*
$LIBDIR/libutil*
$LIBDIR/libuuid*
sbin/badblocks
@@ -250,6 +255,8 @@
sbin/e2label
sbin/fsck.ext2
sbin/fsck.ext3
+sbin/fsck.jfs
+sbin/fsck.xfs
sbin/fdisk
sbin/hdparm
sbin/hwclock
@@ -273,6 +280,7 @@
sbin/mkfs.ext2
sbin/mkfs.ext3
sbin/mkfs.jfs
+sbin/mkfs.xfs
sbin/mkfs.msdos
sbin/mkfs.vfat
sbin/mkreiserfs
@@ -290,6 +298,12 @@
sbin/resize2fs
sbin/sfdisk
sbin/tune2fs
+sbin/xfsdump
+sbin/xfsrestore
+sbin/xfs_repair
+usr/sbin/xfs_db
+usr/sbin/xfs_check
+usr/sbin/xfs_copy
sbin/vgcfgbackup
sbin/vgcfgrestore
sbin/vgchange
--- anaconda-9.0.96/scripts/mk-images.i386.orig 2003-10-15 00:28:28.000000000
+0530
+++ anaconda-9.0.96/scripts/mk-images.i386 2003-10-23 20:15:27.000000000
+0530
@@ -92,7 +92,7 @@
IDEMODS="ide-cd"
SCSIMODS="sd_mod sg sr_mod st"
-FSMODS="msdos vfat ext3 reiserfs jfs"
+FSMODS="msdos vfat ext3 reiserfs jfs xfs"
SECSTAGE="agpgart md raid0 raid1 raid5 lvm-mod $FSMODS $IDEMODS $SCSIMODS
$LATEUSBMODS st parport_pc parport"
BTERMMODULES="vga16fb"
--- anaconda-9.0.96/fsset.py.orig 2003-10-21 04:38:12.000000000 +0530
+++ anaconda-9.0.96/fsset.py 2003-10-23 20:13:19.000000000 +0530
@@ -51,12 +51,14 @@
availRaidLevels = ['RAID0', 'RAID1', 'RAID5']
def fileSystemTypeGetDefault():
- if fileSystemTypeGet('ext3').isSupported():
+ if fileSystemTypeGet('xfs').isSupported():
+ return fileSystemTypeGet('xfs')
+ elif fileSystemTypeGet('ext3').isSupported():
return fileSystemTypeGet('ext3')
elif fileSystemTypeGet('ext2').isSupported():
return fileSystemTypeGet('ext2')
else:
- raise ValueError, "You have neither ext3 or ext2 support in your
kernel!"
+ raise ValueError, "You have neither xfs, ext3 or ext2 support in your
kernel!"
def fileSystemTypeGet(key):
@@ -397,9 +399,7 @@
self.name = "xfs"
self.maxSizeMB = 1024 * 1024
self.maxLabelChars = 12
- # we don't even have the module, so it won't be mountable... but
- # just in case
- self.supported = 0
+ self.supported = 1
def formatDevice(self, entry, progress, chroot='/'):
devicePath = entry.device.setupDevice(chroot)
|