刚开始接触FreeBSD的时候,常常由于对分区大小拿捏不定,划分太小,致使服务器上/var空间不够。在生产服务器上有时候遇到这个问题,又不肯意划/usr空间给/var的话,直接加一块硬盘实际上是最简便的方式。具体操做在VMware环境中演示。
1. 测试环境:
HostOS : WinXP
GuestOS: FreeBSD v7.2
VMware : Workstation v6.5.2-build156735
给原FreeBSD添加一块5G的IDE硬盘,VM->Settings->Add->Hard Disk。进入系统后,查看当前硬盘分区状况以下
01.# df -h
02.Filesystem Size Used Avail Capacity Mounted on
03./dev/ad0s1a 989M 126M 784M 14% /
04.devfs 1.0K 1.0K 0B 100% /dev
05./dev/ad0s1e 989M 12K 910M 0% /tmp
06./dev/ad0s1f 14G 1.5G 12G 11% /usr
07./dev/ad0s1d 500M 490M 10M 98% /var
2. 若是安装时FreeBSD只有1块硬盘,那么在VM下新添加的硬盘设备就是是/dev/ad1。考虑将这个5G硬盘所有划分给/var,能够用sysinstall->configure->Fdisk和Label工具来操做,这里咱们选择用命令行方式操做。
01.# fidsk -BIq /dev/ad1
02.# bsdlabel -w -B /dev/ad1s1 auto
03.# newfs /dev/ad1s1a
3. 重启进入单用户模式,挂载文件系统和新添加的硬盘
01.# reboot
02.# boot -s
03.# fsck
04.# mount -a -t ufs
05.# mount /dev/ad1s1a /mnt
4. 将/var转移到新硬盘上
01.# cd /mnt
02.# dump -0af - /var | restore rf -
03.# umount /mnt
5. 编辑/etc/fstab,假设/var是划在ad0s1d,将ad0s1d改成ad1s1a。若是你的/var是别的分区请根据实际状况变更。
01.# sed -I .bak 's/ad0s1d/ad1s1a/' /etc/fstab
6. 重启并肯定一切正常后,删除备份文件
01.# reboot
02.# tail -f /var/log/messeges
03.# rm /etc/fstab.bak
04.# rm /var/restoresymtable
05.# df -h
06.Filesystem Size Used Avail Capacity Mounted on
07./dev/ad0s1a 989M 126M 784M 14% /
08.devfs 1.0K 1.0K 0B 100% /dev
09./dev/ad0s1e 989M 16K 910M 0% /tmp
10./dev/ad0s1f 14G 1.5G 12G 11% /usr
11./dev/ad1s1 4.8G 490M 4.1G 10% /var
写在最后: 01.# 若是是旧硬盘,最好先清除原有分区表 02.# dd if=/dev/zero of=/dev/ad1 bs=1k count=1 03.# bsdlabel简单用法 04.# bsdlabel -A ad0s1 //输出ad0 slice1的分区信息 05.# bsdlabel -e ad0s1 //用vi手工ad0 silce1编辑分区信息 06.# bsdlabel -R labelfile //能够先bsdlabel -A ad0s1 > syslabel保存当前分需信息,若是出错,再用-R导入