FreeBSD系统备份恢复及迁移

2009-05-13 03:58:07来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

将FreeBSD从一块20G的硬盘迁移到另一个80G 的硬盘的最后一个主分区, 该分区大小基本上仍然在20G左右
原分区情况
Filesystem  1M-blocks Used Avail Capacity  Mounted on
/dev/ad0s1a       313   67   221    23%    /
devfs               0    0     0   100%    /dev
/dev/ad0s1e       495  342   114    75%    /tmp
/dev/ad0s1f      7096 5957   570    91%    /usr
/dev/ad0s1d       495  339   117    74%    /var
linprocfs           0    0     0   100%    /usr/compat/linux/proc
procfs              0    0     0   100%    /proc
   
新硬盘计划挂载在/dev/ad0上

  • 对新的磁盘进行分区
    由于两块硬盘分区的大小不一致, 所以使用了一张FreeBSD的安装光盘进行Minimal的安装, 这时去掉原硬盘, 在ad0上挂载新硬盘, 安装时分区情况如下: /dev/ad0s4a分给`/', /dev/ad0s4b分给swap, /dev/ad0s4d分给`/var', /dev/ad0s4e分给`/tmp', /dev/ad0s4f分给`/usr', /dev/ad0s4g分给`/home'

  • 迁移`/'数据
    重启进入单用户模式, 将新硬盘设置为从盘, 在ad0挂载原硬盘, ad1挂载新硬盘, 由于分区的情况不一致, 不能使用dump/restore进行恢复`/', 因为FreeBSD的分区表信息 位于/dev/ad0s4a, 也就是现在的/dev/ad1s4a上的前512字节中, 直接的dump/restore会 导致分区信息被覆盖, 因此对`/'采用pax进行备份和恢复, 最后修改fstab中各个挂载点的设备, 记得修改为ad0s4x, 因为最后新硬盘要挂载在ad0上, 命令如下:
    # /sbin/fsck -p
    # /sbin/mount -a
    # /sbin/swapon -a
    # /sbin/adjkerntz -i
    # export HOME=/root
    # export TERM=vt200
    # csh -l
    # mkdir -p /mnt/new/root
    # mkdir -p /mnt/new/var
    # mkdir -p /mnt/new/tmp
    # mkdir -p /mnt/new/usr
    # newfs /dev/ad1s4a
    # mount /dev/ad1s4a /mnt/fs/root
    # cd /mnt/fs/root; pax -rw -pe -X / .
    # cd /mnt/fs/root/etc
    # vi fstab
       

  • 恢复FreeBSD其他分区的数据
    这里由于不涉及对分区信息的操作, 可以使用dump/restore进行数据迁移, 同样也可以使用pax进行迁移, 这里使用dump/restore进行迁移
    # newfs /dev/ad1s4d
    # newfs /dev/ad1s4e
    # newfs /dev/ad1s4f
    # newfs /dev/ad1s4g
    # newfs /dev/ad1s4h
    # mount /dev/ad1s4d /mnt/new/var
    # mount /dev/ad1s4e /mnt/new/tmp
    # mount /dev/ad1s4f /mnt/new/usr
    # (dump -0b 512 -f - /usr) | (cd /mnt/new/usr; restore -rb 512 -f - )
    # (dump -0f - /var) | (cd /mnt/new/var; restore -rf - )
    # umount /mnt/new/var
    # umount /mnt/new/tmp
    # umount /mnt/new/usr
    # tunefs -n enable /dev/ad1s4d
    # tunefs -n enable /dev/ad1s4e
    # tunefs -n enable /dev/ad1s4f

    标签:

    版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
    特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

  • 上一篇:FREEBSD 下VPN的安装配置

    下一篇:FreeBSD下的系统监控工具