作为系统管理员的我们,经常遇到要增加或缩小某文件系统的需求。对于Unix上的主流OS以及linux来说,动态逻辑卷管理(LVM)能够很好的帮我们完成这个工作。但是对于不支持LVM的Solaris系统,只能用笨办法实现了。
假设一个工作场景,我需要在服务器硬盘上新增一个独立的文件系统,但是硬盘上已经没有可分配的自由空间。可选择的一种解决办法就是缩小已存在的某个文件系统,挤出一些自由空间。
硬盘现在已有三个文件系统(“/”,“/usr”,“/export/home”):
# df -h
Filesystem size used avail capacity Mounted on
/dev/dsk/c0d0s0 5.8G 3.8G 2.0G 66% /
/dev/dsk/c0d0s3 6G 4G 2.0G 66% /usr
/dev/dsk/c0d0s7 12G 12M 11G 1% /export/home
其中“/export/home”的容量最大,但已使用空间最少,选择缩小该文件系统以挤出自由空间。
以下是缩小文件系统步骤:
1、备份文件系统内容
# tar cvf /home.tar /export/home
2、卸载文件系统
# umount /export/home
3、修改/etc/vfstab,注释该文件系统项
# vi /etc/vfstab
#device device mount FS fsck mount mount
#to mount to fsck point type pass at boot options
#
#/dev/dsk/c0d0s7 /dev/rdsk/c0d0s7 /export/home ufs 2 yes -
4、用format缩小文件系统大小
# format
此处略去300字......
过程是将文件系统S7的容量设的小一些,可参考其他format命令文档设置。
5、用newfs重新格式化文件系统
# newfs c0d0s7
newfs: construct a new file system /dev/rdsk/c0d0s7: (y/n)? y
Warning: 240 sector(s) in last cylinder unallocated
/dev/rdsk/c0d0s7: 12594960 sectors in 2050 cylinders of 48 tracks, 128 sectors
6149.9MB in 129 cyl groups (16 c/g, 48.00MB/g, 5824 i/g)
缩小后的文件系统是6G,释放了大约6G的自由空间。