📚 LinuxDocs
Topics:
All Pages8021X HOWTOACP ModemACPI HOWTOADSL Bandwidth Man..ATA RAID HOWTOATM Linux HOWTOAX25 HOWTOAccessibility Dev ..Accessibility HOWTOAdv Bash Scr HOWTOAdv Routing HOWTOAntares RAID sparc..Apache Compile HOWTOApache WebDAV LDAP..Assembly HOWTOAstronomy HOWTOAthlon Powersaving..Authentication Gat..Autodir HOWTOAviation HOWTOAvr Microcontrolle..BRIDGE STP HOWTOBTTVBackspaceDeleteBandwidth Limiting..Bangla HOWTOBash Prompt HOWTOBattery PoweredBelarusian HOWTOBelgian HOWTOBeowulf HOWTOBocaBogoMipsBootdisk HOWTOBridgeC++ dlopenC C++Beautifier HO..C editing with VIM..CDROM HOWTOCDServer HOWTOCable ModemCaudium HOWTOClone HOWTOCompaq Remote Insi..Compaq T1500 HOWTOConexant+Rockwell ..Cryptoloop HOWTODB2 HOWTODHCPDSL HOWTODVD Playback HOWTODebian Binary Pack..Debian JigdoDebian and Windows..Disk Encryption HO..Disk on Chip HOWTODocBook Demystific..DocBook InstallDocBook OpenJade S..Ecology HOWTOEmacspeak HOWTOEncourage Women Li..Encrypted Root Fil..Euro Char SupportEvent HOWTOFedora Multimedia ..Finnish HOWTOFirewall PiercingFlash Memory HOWTOFont HOWTOFramebuffer HOWTOGCC HOWTOGIS GRASSGlibc Install HOWTOHOWTO HOWTOHOWTO INDEXHP HOWTOHandspring VisorHard Disk UpgradeHardware HOWTOHighQuality Apps H..Home Electrical Co..IBM7248 HOWTOIO Perf HOWTOIP AliasIP Masquerade HOWTOIRCImplement Sys Call..Indic Fonts HOWTOInfrared HOWTOIngresII HOWTOInstall StrategiesInstallation HOWTOInstallfest HOWTOIntkeybItalian HOWTOJabber Server Farm..JavaStation HOWTOKerberos Infrastru..Kernel HOWTOKerneldKodak Digitalcam H..LDAP HOWTOLDP Reviewer HOWTOLILO crash rescue ..LVM HOWTOLeased LineLegoLinksys Blue Box R..Linux+Win95Linux+Win9x+Grub H..Linux+Windows HOWTOLinux Complete Bac..Linux Crash HOWTOLinux Gamers HOWTOLinux Modem SharingLinux Promise RAID..Linux i386 Boot Co..LinuxGL QuakeWorld..Lotus DominoR5MILO HOWTOMMBase Inst HOWTOMP3 CD BurningMail User HOWTOMajordomo MajorCoo..Man PageMasquerading Simpl..Medicine HOWTOMindTerm SSH HOWTOMobile IPv6 HOWTOMock MainframeModule HOWTOModulesMotorola Surfboard..Mozilla OptimizationMulti Distro DevNCURSES Programmin..NFS HOWTONFS Root Client mi..NIS HOWTONetMeeting HOWTONetwork boot HOWTONvidia OpenGL Conf..OLSR IPv6 HOWTOOnline Troubleshoo..Oracle 9i Fedora 3..PA RISC Linux Boot..PCTel MicroModem C..PHP Nuke HOWTOPPP HOWTOPagerPalmOS HOWTOPartitionPartition Mass Sto..Partition Mass Sto..Partition RescuePine ExchangePortSlavePost Installation ..Postfix Cyrus Web ..Pre Installation C..Print2WinPrinting HOWTOProcess AccountingProgram Library HO..Proxy ARP SubnetQmail ClamAV HOWTOQmail VMailMgr Cou..Querying libiptc H..RPM HOWTOReading List HOWTORedHat CD HOWTOReliance HOWTORemote BridgingRemote Serial Cons..SCSI 2.4 HOWTOSCSI Generic HOWTOSLIP PPP EmulatorSRM HOWTOSSL Certificates H..Scanner HOWTOScientific Computi..Scripting GUI TclTkSecure CVS PserverSecure Programs HO..Security HOWTOSecurity Quickstar..Security Quickstar..Serial Laplink HOWTOSerial Programming..Slovak HOWTOSmall MemorySmart Card HOWTOSoftware Proj Mgmt..Software Release P..Sound HOWTOSpam Filtering for..Speech Recognition..SquashFS HOWTOSybase ASA HOWTOSybase ASE HOWTOSybase PHP ApacheTCP Keepalive HOWTOTamil Linux HOWTOTimePrecision HOWTOTimeSys Linux Inst..Token RingTraffic Control HO..Traffic Control tc..UPS HOWTOUnix Hardware Buye..Unix and Internet ..UpgradeUsenet News HOWTOUser Authenticatio..VB6 to TclVMS to Linux HOWTOVPN HOWTOValgrind HOWTOVideoLAN HOWTOVim HOWTOVirtual WebWebcam HOWTOWikiText HOWTOWindows Newsreader..Wireless Link sys ..Wireless Sync HOWTOXDM XtermXDMCP HOWTOXFree Local multi ..XFree86 HOWTOXFree86 R200XFree86 Second MouseXFree86 Video Timi..XML RPC HOWTOXWindow Overview H..XWindow User HOWTOXinerama HOWTOXterminalsHtml singleI810 HOWTOLibdc1394 HOWTOOpenMosix HOWTOPhhttpd HOWTOPpp sshText

4. Filesystem Migration

The final part of this whole process is probably actually the trickiest and most dangerous as far as the possibility of losing your data goes. I strongly suggest that you make a complete backup of the system (or at least all important data) before attempting the migration to XFS. This part is also the most difficult to explain as there are probably hundreds of ways you can do this based on the set up of your existing filesystem. I will give you the basic commands for creating the new filesystems, try to give some pointers on how to go about shuffling filesystems, and in general just relay to you the way I went about migrating my own filesystems.

4.1. Migrating the / filesystem

Probably the trickiest part of creating a fully XFS system is migrating the / filesystem since that is the system that supports the entire rest of the system and it cannot actually be unmounted while the system is running. If you have extra partitions that can be mounted as / then you will be able to do it something like this(I am using /dev/hda4 as the spare partition and /dev/hda2 as / for this example):

$ mkfs -t ext2 /dev/hda4 
$ mkdir /mnt/temp 
$ mount -t ext2 /dev/hda4 /mnt/temp 
$ cd / 
$ tar lcf - .|(cd /mnt/temp; tar xpvf - )   
  

Notice I have used tar here to copy the files from the / fs to the spare partition. Alternatively you could use cp -dpR, but if you use tar like I've shown here with the -l flag it will copy only files from within the / fs (i.e. if you have another partition mounted as /usr it won't copy those).

The next step will be to change all references to /dev/hda2 to /dev/hda4 in /etc/fstab and in /etc/lilo.conf and run lilo. You'll then need to reboot the system again.

After rebooting the system /dev/hda4 will be mounted as / and your original / filesystem (/dev/hda2) will not be mounted. You can now create the new XFS filesystem on /dev/hda2. [Developer Guide: Java]

$ mkfs -t xfs /dev/hda2   
  

Then mount the new xfs fs:

$ mount -t xfs /dev/hda2 /mnt/temp   
  

And copy the original / fs back to its original home: .:: podcasts.apple.com ::.

$ cd / 
$ tar lcf - .|(cd /mnt/temp; tar xpvf -)   
  

Once again you will need to change all instances of /dev/hda4 in /etc/fstab and /etc/lilo.conf and run lilo. You will also need to change the filesystem type for / in /etc/fstab. It should now look something like this: .:: computer.ju.edu.jo ::.

/dev/hda2               /                       xfs    defaults 1 1   
  

NoteNote
 

On some linux distributions the options given to the out-of-box fstab may be more in depth than just "defaults." For instance, on Debian systems they use "defaults,errors=remount-ro." The mount options are different for every filesystem with the exception of the keyword "defaults." Unless you know the specific XFS mount options you want you should stick with just the defaults option. In the Debian example given, the errors option is not available with XFS and will cause your filesystem not to mount.

Additionally, filesystem labels are becoming more popular so you may see an entry in your fstab that looks something like this:

LABEL=/                 /                       ext2    defaults        1 1
    
The easiest way to avoid problems is to simply replace the referenced label with the proper device file name (i.e. if /dev/hda1 is labeled / replace "LABEL=/" with "/dev/hda1").

Now reboot the system with the new xfs / filesystem. .:: us.pinterest.com ::.

Of course there are a lot of other ways to accomplish the root filesystem migration and if you think you have a good one I would definitely like to hear it and will put it in this doc if it seems like a simpler way than what is here. I, myself, didn't have a spare partition to work with but had a CD burner so I burnt a cd of my root filesystem to mount as root while I created the new xfs /. In all cases, however, the basic commands for creating and mounting the new filesystem will be the same.

4.2. Finishing up

The last of the process is fairly simple and essentially the same process of swapping around partitions while making new filesystems as was done for /. I recommend that you do the rest of this process with the system in single user mode so you can unmount everything other than / and do all of the swapping without having to reboot a million times. You can boot to single user mode by either issueing a runlevel change command to the init process like so:

$ telinit 1   
  

or by rebooting and asking for single user mode at the Lilo prompt:

LILO Boot: xfs single   
  

This will boot the system and drop you into a root shell with no outside connections or virtual terminals so there is no chance of any of the filesystems being in use by other users or processes (causing them to be busy so you can't unmount them). Now you can mount the spare partition, as before, copy one of the remaining filesystems to be migrated onto it (you will probably have to remove the existing contents leftover from /), unmount the old filesystem, create the xfs filesystem on it, remount it as xfs, and copy the old filesystem back onto it. Lets say you have a /dev/hda3 partition mounted as /usr. The process would go something like this:

$ mount -t ext2 /dev/hda4 /mnt/temp 
$ cd /usr 
$ tar lcf - .|(cd /mnt/temp; tar xpvf - ) 
$ cd /mnt/temp
$ umount /usr 
$ mkfs -t xfs /dev/hda3 
$ mount -t xfs /dev/hda3 /usr 
$ tar lcf - .|(cd /usr; tar xpvf - )   
  

Don't forget to change the filesystem type in /etc/fstab for /usr to xfs. [NPM Package: SMTP]

That's all there is to it. The rest of the filesystems to be migrated will work the same way, then you can reboot to full miltiuser mode and you've got your "Linux on Steroids!" .:: podcasts.apple.com ::.

Share or Research:

Share on FB Post to X LinkedIn 🤖 Ask AI about this