Just for fun
Well for various reasons, penrah has
had a 3Gb /var which was followed (on disc) by an empty 10Gb
partition that used to be /home (home got moved some time ago to a
30Gb partition that used to be that other operating system)
As /var would occasionally fill up (especially during large
apt-get dist-upgrades) it seemed logical to extend /var to cover
all that free space. However, I didn't want to disrupt my 202 day
uptime record in the process did I?
Also just to add a bit of spice to it, I decide to perform this
"slight tweak" from home over ssh (and a wireless link for that
matter -- what was I thinking!!)
Amazingly it turned out to be surprisingly easy:
- Close down programs using /var: This was virtually
every service on the box, samba, cron, inetd, apache, ntp, and so
on. Did require a bit of lsof | grep /var combined with
some head scratching.
- umount /var and /usr/local (which was the
only partition after /var and the defunct /home
and would get a new number once the change was complete) and
/usr/local/share/music (for obvious reasons)
- Use parted to resize the partition. Unfortunately parted thinks
my /var partition has an unusual layout and refused to
resize it. I therefore took careful note of the start and end
sectors and deleted it and the old /home and created a new
partition that started at the same place. The kernel even reread
the partition table (bear in mind /, /usr and
/home are all earlier on the same disk)
- edited /etc/fstab to reflect the new partition
numbers. I suspect disk labels or such like would make this easier,
but this box was installed four years ago now, and I don't think
that was how things worked in those days.
- used ext2resize to grow /var to fill the new
partition.
- fsck /var just to be sure. Actually the most time
consuming part of the process.
- remount and restart everything I'd stopped. (except for all
those things I didn't really need)
In total
syslogd was down for 30 minutes, and it probably
took longer to write this blog entry than do the resize. I now have
(reordered for clarity):
Filesystem Size Used Avail Use% Mounted on
/dev/hdb5 958M 364M 546M 40% /
/dev/hdb7 7.6G 5.7G 1.6G 79% /usr
/dev/hdb1 28G 13G 14G 48% /home
/dev/hdb9 13G 2.4G 9.2G 21% /var
/dev/hdb8 63G 57G 2.8G 96% /usr/local
/dev/hda5 29G 26G 1.2G 96% /usr/local/share/music
/dev/hda1 9.8G 6.5G 3.4G 67% /mnt/windows
tmpfs 633M 4.0K 633M 1% /dev/shm
none 10M 2.6M 7.5M 26% /dev
//wenacl1/enxrah 95G 93G 1.8G 99% /mnt/wenacl1
//wenacl2/enxrah 95G 90G 4.6G 96% /mnt/wenacl2
Most of /usr/local is symlinked into /home/enxrah so I guess the
situation still isn't perfect, but it'll do.