dd批量安装系统

来源:百度文库 编辑:神马文学网 时间:2024/04/26 22:42:22

 

一.源机器分区情况:

  hda1 为:boot(启动分区)

  hda2 为:swap(交换分区)

  hda3 为:boot (根 / 分区)

  hda4 为:data (数据盘)

 

  #fdisk -l /dev/hda

Disk /dev/hda: 11.8 GB, 11811160064 bytes

15 heads, 63 sectors/track, 24411 cylinders

Units = cylinders of 945 * 512 = 483840 bytes

Disk identifier: 0x0eb4a58f

 

   Device Boot      Start         End      Blocks   Id  System

/dev/hda1   *           1         621      293391   83  Linux

/dev/hda2             622        1680      500377+  82  Linux swap / Solaris

/dev/hda3            1681       10147     4000657+  83  Linux

/dev/hda4           10148       24411     6739740   83  Linux

 

 

 

#cat /etc/fstab

/dev/hda1            /boot         ext2          noauto,noatime       1 2

/dev/hda3            /             ext3          noatime              0 1

/dev/hda2            none          swap          sw                            0 0

/dev/hda4       /data       ext3       noatime          0 1

 

备份源机器分区:

 1.备份启动分区(boot)到数据盘

  dd if=/dev/hda1 | gzip >/data/hda1.gz

 2.备份根分区(/) 到数据盘

  dd if=/dev/hda3 | gzip >/data/hda3.gz

 

 

 

二,目标机器:

  1.使用启动盘启动系统

  2.分区:把 boot swap /  这3个分区分成跟源机器一样的大小。

          还有分出一个数据盘来存放 源机器备份下来的文件。

    #mke2fs /dev/hda1

    #mke2fs -j /dev/hda3

    #mke2fs -j /dev/hda4

    #mkswap /dev/hda2 && swapon /dev/hda2

    #mkdir /data

    #mount /dev/hda4 /data

    #cat /etc/fstab

/dev/hda1            /boot         ext2          noauto,noatime       1 2

/dev/hda3            /             ext3          noatime              0 1

/dev/hda2            none          swap          sw                            0 0

/dev/hda4       /data       ext3       noatime          0 1

 

 

3.把源机器的备份文件拉到数据盘

  #scp root@192.168.230.132:/data/hda1.gz /data/

  #scp root@192.168.230.132:/data/hda3.gz /data/

 

4.恢复系统:

  #gzip -dc /data/hda1.gz | dd of /dev/hda1

  #gzip -dc /data/hda3.gz | dd of /dev/hda3

 

5.grub 使用 dd 恢复系统会造成错误,不能启动,所以必须重新配置一下grub

  #mount /dev/hda3 /mnt/gentoo

  #mount /dev/hda1 /mnt/gentoo/boot

  #mount -t proc proc /mnt/gentoo/proc

  #mount -o bind /dev /mnt/gentoo/dev

  #chroot /mnt/gentoo /bin/bash

  #env-update && source /etc/profile

  >>> Regenerating /etc/ld.so.cache...

 

# grub

Probing devices to guess BIOS drives. This may take a long time.

 

grub> root (hd0,0)

 Filesystem type is ext2fs, partition type 0xfd

 

grub> setup (hd0)

 Checking if "/boot/grub/stage1" exists... yes

 Checking if "/boot/grub/stage2" exists... yes

 Checking if "/boot/grub/e2fs_stage1_5" exists... yes

 Running "embed /boot/grub/e2fs_stage1_5 (hd0)"...  16 sectors are embedded.

succeeded

 Running "install /boot/grub/stage1 (hd0) (hd0)1+16 p (hd0,0)/boot/grub/stage2 /boot/

grub/menu.lst"... succeeded

Done.

 

grub> quit

 

到此为止,系统已经完全恢复好,重新启动系统。

 

6.(注意)dd 恢复系统也会造成网卡不能启动:

 

  启动网卡错误表现:

 #/etc/init.d/net.eth0 start

  *Starting eth0

  *   Bringing up eth0

  *     dhcp

  *       network interface eth0 does not exist

  *       Please verify hardware or kernel module (driver)

 

   查看 /var/log/kennel/Current 日志发现

   Mar 21 12:40:04 [kernel] pcnet32.c:v1.35 21.Apr.2008 tsbogend@alpha.franken.de

Mar 21 12:40:04 [kernel] pcnet32 0000:02:00.0: PCI INT A -> GSI 18 (level, low) -> IRQ 18

Mar 21 12:40:04 [kernel] pcnet32: PCnet/PCI II 79C970A at 0x2000, 00:0c:29:94:de:df assigned IRQ 18.

Mar 21 12:40:04 [kernel] eth0: registered as PCnet/PCI II 79C970A

Mar 21 12:40:04 [kernel] pcnet32: 1 cards_found.

Mar 21 12:40:04 [kernel] Floppy drive(s): fd0 is 1.44M

Mar 21 12:40:04 [kernel] FDC 0 is a post-1991 82077

Mar 21 12:40:04 [kernel] udev: renamed network interface eth0 to eth1

 

interface eth0 to eth1 这里有个改名的日志(因为:系统从源电脑备份来的,网卡的mac 记录的是源电脑网卡的mac,跟目标电脑的网卡的mac不匹配,系统会自动识别网卡的mac,并在/etc/udev/rules.d/70-persistent-net.rules 文件中产生一条正确的记录)

 

A:解决方法一

ls /etc/init.d/

lrwxrwxrwx 1 root root     6 Mar 18 21:54 net.eth0 -> net.lo

-rwxr-xr-x 1 root root 30696 Apr 26  2008 net.lo

并没有 net.eth1 启动文件

#cd /etc/init.d/

#ln -s net.lo net.eth1

 

重新启动网卡

#/etc/init.d/net.eth1 start  (ok)

 

B: 解决方法二

  编辑:/etc/udev/rules.d/70-persistent-net.rules

  查出ATTR{address} 跟源电脑网卡mac一样的 注掉,重新启动电脑,网卡就可以使用了。

  # This file was automatically generated by the /lib/udev/write_net_rules

# program run by the persistent-net-generator.rules rules file.

#

# You can modify it, as long as you keep each rule on a single line.

 

# PCI device 0x1022:0x2000 (pcnet32)

#查出ATTR{address} 跟源电脑网卡mac一样的 注掉

#SUBSYSTEM=="net", DRIVERS=="?*", ATTR{address}=="00:0c:29:95:53:ca", NAME="eth1"

 

# PCI device 0x1022:0x2000 (pcnet32)

SUBSYSTEM=="net", DRIVERS=="?*", ATTR{address}=="00:0c:29:94:de:df", NAME="eth0"

 

 注:查看网卡的mac 可以简单的使用启动盘,启动系统查看。