Chinaunix首页 | 论坛 | 博客
  • 博客访问: 370248
  • 博文数量: 66
  • 博客积分: 3201
  • 博客等级: 中校
  • 技术积分: 695
  • 用 户 组: 普通用户
  • 注册时间: 2007-07-04 11:17
文章分类

全部博文(66)

文章存档

2016年(1)

2014年(1)

2012年(1)

2011年(2)

2010年(18)

2009年(42)

2008年(1)

分类: BSD

2010-07-18 20:56:03

刚开始接触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导入
阅读(532) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~