需要: 一台已安装配置好的OpenBSD系统, 一块没安装系统的空硬盘.
我是在OpenBSD3.6下操作的.在操作之前, 我先简单的介绍OpenBSD的系统启动过程.
在i386平台上, OpenBSD启动分两步, 系统开机进入启动时, 首先启动的是MBR, 然后再启动PBR ( partition boot record) , mbr说明系统从哪启动, pbr是载入/boot启动系统,
这两步都可以自己操作.具体的损坏后安装操作可以参考OpenBSD FAQ 14节的How does OpenBSD/i386 boot?这一段.
下面我介绍如何将一个已安装配置好的OpenBSD系统移到一个新硬盘上, 然后我们就可以使用新硬盘上的OpenBSD了.
1,备份MBR, 当然如果你不备份也可以使用/usr/mdec/mbr这个也行(这个我还没操作过, 只在看man pages时上面都有说明)
dd if=/dev/wd0a of=boot.bin bs=512 count=1
这一步总是提示硬盘忙, 所以我将这块硬盘挂到别的系统上备份mbr的:
dd if=/dev/wd1a of=boot.bin bs=512 count=1
2, 备份系统文件, 除了/tmp下的文件不备份外, /目录下的所有文件都备份.
我的系统分区为wd0a /, wd0b swap, wd0d /var, wd0e /tmp, wd0f /usr:
同备份mbr一样, 我将硬盘挂到别的系统上完成的:
引用:mount /dev/wd1a /mnt
cd /mnt
tar zcf ~/back/root.tar.gz .
umount /mnt
mount /dev/wd1d /mnt
cd /mnt
tar zcf ~/back/var.tar.gz .
umount /mnt
mount /dev/wd1f /mnt
tar zcf ~/back/usr.tar.gz .
cd ~/back/
mv *.gz /mnt/
cd
mv boot.bin /mnt
halt -p
3,安装新硬盘.
1, 分区: fdisk -i wd1
2, disklabel -E wd1 (这里分的挂载点要和/etc/fstab的挂载点相同, 原来系统上分了几个挂载点, 现在这个硬盘就分几个挂载点).
4, 为新硬盘配置mbr:
dd if = boot.bin of=wd1
这里是FAQ上说的如何恢复mbr操作.我还没试过.
fdisk -u -f /usr/mdec/mbr wd0 (wd0改为wd1, 现在我们为wd1设置mbr)
5, 为新硬盘配置pbr:
操作步骤installboot (8);
fsck /dev/wd1a
mount /dev/wd1a /mnt
cp /usr/mdec/boot /mnt/boot
/usr/mdec/installboot -v /mnt/boot /usr/mdec/biosboot wd1
6, 将步骤2备份的系统文件解到新硬盘上.
先前步骤2的root.tar.gz, var.tar.gz, usr.tar.gz文件是放在/usr目录下,
将root.tar.gz解到 /dev/wd1a , var.tar.gz解到/dev/wd1d, usr.tar.gz解到/dev/wd1f.
好了, 现在可以将原来的系统关掉, 取下硬盘, 然后将从硬盘wd1改为挂主硬盘wd0, 开机启动新硬盘上的OpenBSD!基本上克隆主硬盘的OpenBSD系统到从硬盘上.现在发现主要是在启动gnome时报XKB错误,哪位兄弟能否详解一个XKB的各种信息;别的改变以的地方今晚回去再查查~~!
上面操作中有错误的地方请各位兄弟姐妹们指出!