在系统已经建立之后,FreeBSD不能像PQMagic那样自由调整分区空间而不破坏分区数据,所以,如果/var空间已经不够,需要增加一块硬盘增加空间,原来的数据也必须迁移过来。 2、对新硬盘进行分区 可以使用sysinstall或者命令行方式分区。虽然fdisk有更多灵活性,但我建议还是采用sysinstall较好。分区完之后再用sysinstall里面的Label建立文件系统相关文件系统。 3、将文件系统挂载到/mnt hpserver# mount /dev/ad1s1e /mnt 4、将数据迁移,这里也有两种方法,一种是使用tar,另一种是使用dump,我分别介绍,大家可以根据需要而选择备份方式。 (1) 使用tar备份并还原数据。 hpserver# cd /var hpserver# tar cf - * | (cd /mnt; tar xf -)
(2) 使用dump备份并用restore还原数据。就我个人而言,我推荐使用这种方法,因为我曾经试过用tar备份var目录的时候,出现了错误并自动停止,我分析了一下原因,一些正在使用的文件或者临时文件可能不能备份,但dump不是以文件为单位,而是而block为单位的,应该不存在这样的情况,所以这是我推荐使用dump和restore的原因。 hpserver# cd /mnt hpserver# dump -f- /var | restore -f- -r 在过程中和结束会出现类似以下信息: DUMP: Date of this level 0 dump: Wed Jan 14 23:44:35 2004 DUMP: Date of last level 0 dump: the epoch DUMP: Dumping /dev/ad0s1e (/var) to standard output DUMP: mapping (Pass I) [regular files] DUMP: mapping (Pass II) [directories] DUMP: estimated 305 tape blocks. DUMP: dumping (Pass III) [directories] DUMP: dumping (Pass IV) [regular files] DUMP: DUMP: 361 tape blocks DUMP: finished in less than a second DUMP: DUMP IS DONE
5、有一点提醒的是,你要确保备份后没有数据写入原来的/var,否则,这些数据没有备份到新分区中。结束后别忘了检查一下结果,并卸载/mnt。 hpserver# ls /mnt hpserver# umount /mnt 6、编辑/etc/fstab文件,将原来指向/var的文件系统改为/dev/ad1s1e,重新启动就可生效。
二、硬盘复制
如果旧的系统盘出现了一些毛病,或者容量不够,你想更换一个新硬盘,那可以把旧硬盘数据复制到新硬盘,然后把旧硬盘摘下。按照上面的步骤,我们假定已经将硬盘安装好。 这里有一个小tips,就是先记下旧硬盘文件系统所对应的mount点,新硬盘分区次序按照旧的一样,这样免去我们下面容易混淆的步骤,我们查看/etc/fstab对照就知道了。不然搞了几下,自己都忘记了ad2s1e到底是用来挂载那个目录的。 1、使用sysinstall把新硬盘分区,设置好MBR,并一一对照原来的次序创建文件系统,假设原来的文件系统/dev/ad0s1g 对应 /usr,那你新硬盘/dev/ad2s1g就用来做/usr,原来的文件系统/dev/ad0s1e 对应/var,那你新硬盘/dev/ad2s1e 就用来做/var。按M分别清空所有文件系统的mount点,因为我们还没有建立临时的mount的目录,不清空会和系统原来的mount冲突的。 2、创建临时的目录用来作临时mount点并挂载这些文件系统。 hpserver# cd /mnt hpserver# mkdir root hpserver# mkdir usr hpserver# mkdir var 用cat /etc/fstab查看原来的文件系统的对应关系,我们只要看最后面的一个字母就可以了,这样避免我们忘记了什么对应什么,这就是我刚才为什么让新硬盘的文件系统的名称对应以前的原因。 hpserver# mount /dev/ad2s1a /mnt/root hpserver# mount /dev/ad2s1g /mnt/usr hpserver# mount /dev/ad2s1e /mnt/var