刚开始接触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导入
阅读(535) | 评论(0) | 转发(0) |