Changing Layout of partition in Linux
Requirement:
There was a requirement of porting some native applications running on FreeBSD Unix to Linux. These applications are written using C language and they are using /home/app as their root directory. That means we are having directories like /home/app/bin , /home/tmp , /home/app/sbin , /home/app/var etc on these FreeBSD hosts . These hosts were not running any well known internet services or any OS related application but running only our custom native applications.
Issues and Solutions:
These applications when ported to Linux are failing because of the layout of /tmp directory in Linux . /tmp was created as a separate partition in our Linux hosts and our requirement was that we need a /tmp directory under /home partition for applications to run properly. For directories under /home/app , we created the necessary directories based on similar layout of FreeBSD.
We decided to change the layout of /tmp directory of Linux without modifying the code.
The following are the concerns and solutions.
1. We need to umount the /tmp partition. That is easily doable without reboot of the host.
2. We need to create a tmp directory under /home partition with the same permission and ownership of /tmp. rysnc will help us to copy and preserve permission and ownership.
3. Create a symbolic link from /home/tmp to /tmp so that OS related programs which uses /tmp directory donot fail. X and mysql are some applications which creates it's lock file in /tmp directory.
Implementation:
The following are the steps we followed to change the layout of /tmp directory without any reboot of hosts.
1. sudo rsync -avz /tmp /home/
This will do the copy by preserving the permission and ownersip.
2. sudo umount -l /tmp/
Lazy umount helps to unmount the /tmp filesystem. Without the -l option , unmount was failing
3. sudo mv /tmp/ /tmp.old
4. sudo ln -s /home/tmp /tmp
5. To utilise the disk-space of original /tmp partition , we can mount that partition under a new directory . I did the following.
6. sudo mkdir /tmp-temp
7. sudo mount /dev/sda6 /tmp-temp and did the necessary modifications in /etc/fstab for this new partition.
Conclusion: The migration was done successfully and after that applications are running successfully on Linux . The purpose of writing this abstract , is that we can use the same method to change the layout of other partitions also. Hope this may be helpful to anyone who has a requirement like this.
There was a requirement of porting some native applications running on FreeBSD Unix to Linux. These applications are written using C language and they are using /home/app as their root directory. That means we are having directories like /home/app/bin , /home/tmp , /home/app/sbin , /home/app/var etc on these FreeBSD hosts . These hosts were not running any well known internet services or any OS related application but running only our custom native applications.
Issues and Solutions:
These applications when ported to Linux are failing because of the layout of /tmp directory in Linux . /tmp was created as a separate partition in our Linux hosts and our requirement was that we need a /tmp directory under /home partition for applications to run properly. For directories under /home/app , we created the necessary directories based on similar layout of FreeBSD.
We decided to change the layout of /tmp directory of Linux without modifying the code.
The following are the concerns and solutions.
1. We need to umount the /tmp partition. That is easily doable without reboot of the host.
2. We need to create a tmp directory under /home partition with the same permission and ownership of /tmp. rysnc will help us to copy and preserve permission and ownership.
3. Create a symbolic link from /home/tmp to /tmp so that OS related programs which uses /tmp directory donot fail. X and mysql are some applications which creates it's lock file in /tmp directory.
Implementation:
The following are the steps we followed to change the layout of /tmp directory without any reboot of hosts.
1. sudo rsync -avz /tmp /home/
This will do the copy by preserving the permission and ownersip.
2. sudo umount -l /tmp/
Lazy umount helps to unmount the /tmp filesystem. Without the -l option , unmount was failing
3. sudo mv /tmp/ /tmp.old
4. sudo ln -s /home/tmp /tmp
5. To utilise the disk-space of original /tmp partition , we can mount that partition under a new directory . I did the following.
6. sudo mkdir /tmp-temp
7. sudo mount /dev/sda6 /tmp-temp and did the necessary modifications in /etc/fstab for this new partition.
Conclusion: The migration was done successfully and after that applications are running successfully on Linux . The purpose of writing this abstract , is that we can use the same method to change the layout of other partitions also. Hope this may be helpful to anyone who has a requirement like this.
Comments