- 论坛徽章:
- 3
|
PS:搞了两天,终于成功了。过程可谓艰辛,写下来记录一下。
准备工作 /*
如果你是dump系统到FC或者其他形式有自己驱动的盘,需要把驱动模块加到内核模块里启动,比如FC盘用的qla2xxx, 需要重启才能生效。 redhat默认都有。
#vi /etc/sysconfig/kernel
INITRD_MODULES="mptsas ata_piix ata_generic piix ide_pci_generic processor thermal fan jbd qla2xxx ext3 edd "
#mkinitrd
#reboot
*/
#lsscsi |more /* 查看你需要dump的盘是否和系统盘的ID是挨着的。 一般系统盘是sda,那么你要dump的盘就应该是sdb。以此类推。 假设这里是sdb是我们的目标盘。
[2:0:0:0] disk EMC SYMMETRIX 5874 /dev/sda
[2:0:0:1] disk EMC SYMMETRIX 5874 /dev/sdb
#fdisk /dev/sdb /* 给sdb手动分区,一个 / 和一个 swap 分区,这个就不详解。效果如下, sdb1为swap分区, sdb2为/
Device Boot Start End Blocks Id System
/dev/sdb1 30722 38914 8389632 82 Linux swap / Solaris
/dev/sdb2 1 30721 31458288 83 Linux
#mkfs.ext3 /dev/sdb2 /*建立文件系统
#mkswap /dev/sdb1
#mount /dev/sdb2 /mnt
#dump -0u -f - / |(cd /mnt;restore -rf -) /*dump 系统到sdb2
/* suse11默认采用的by-id作为设备标记,所以我们也要查看sdb相关by-id。 PS:redhat6默认使用UUID
#udevadm info --query=symlink --name=sdb /*替换 device.map下的by-id
#udevadm info --query=symlink --name=sdb1 /*swap分区by-id
#udevadm info --query=symlink --name=sdb2 /* /分区by-id
/*替换/mnt/boot/grub/menu.lst /mnt/boot/grub/device.map /mnt/etc/fstab 相应by-id信息
#vi /mnt/boot/grub/menu.lst
#vi /mnt/boot/grub/device.map
#vi /mnt/etc/fstab
在系统盘/boot/grub/device.map里 加入sdb的 by-id
(hd1) /dev/disk/by-id/scsi-xxxxxxxxxxxxxxxxxxxx /* hd1指sdb 后面是它的by-id
#grub /* 把启动信息写进sdb
root (hd1,1)
setup (hd1)
quit
OK,现在可以把sda拿掉或者禁用,让系统从sdb启动。
PS:如果sdb是FC网络盘,先在BIOS里禁用本地盘sda,然后在hba卡的BIOS里面设置sdb启动。 |
|