Linux的系统备份,复制系统的脚本,系统是Debian,记录

前天在Vmware里尝试把系统复制到另一硬盘的实验,实现了Linux的系统备份, 或者说是复制系统吧,我没用使用ghost或者dd, 我Vmware里的Linux系统是Debian, 分了三个区的 , 另外,不支持lvm .

  1. #!/bin/bash
  2. # 无聊空间 http://www.lpfrx.com 制作
  3.  
  4. disk='/dev/hdb'
  5.  
  6. # 格式化
  7. echo -e "fdisk \\033[1;32m$disk\\033[0;39m now..."
  8. dd if=/dev/zero of=$disk bs=1 count=64 seek=446 &>/dev/null
  9.  
  10. # 自动分区, 分了三个区
  11. /sbin/fdisk <<EOF
  12. n
  13. p
  14. 1
  15.  
  16. +10240M
  17. n
  18. p
  19. 2
  20.  
  21. +512M
  22. n
  23. p
  24. 3
  25.  
  26.  
  27. a
  28. 1
  29. t
  30. 2
  31. 82
  32. w
  33. EOF
  34.  
  35. mke2fs -j /dev/hdb1
  36. mke2fs -j /dev/hdb3
  37. mkswap /dev/hdb2
  38.  
  39. rm -r /mnt/newos
  40. mkdir /mnt/newos
  41. /bin/mount /dev/hdb1 /mnt/newos
  42.  
  43. /bin/mkdir /mnt/newos/home
  44. /bin/mount /dev/hdb3 /mnt/newos/home
  45.  
  46. cd /
  47. /bin/cp -a /cdrom /mnt/newos
  48. /bin/cp -a /home/* /mnt/newos/home/
  49. /bin/cp -a /lib /mnt/newos
  50. /bin/cp -a /root /mnt/newos
  51. /bin/cp -a /var /mnt/newos
  52. /bin/cp -a /bin /mnt/newos
  53. /bin/cp -a /dev /mnt/newos
  54. /bin/cp -a /initrd /mnt/newos
  55. /bin/cp -a /opt /mnt/newos
  56. /bin/cp -a /sbin /mnt/newos
  57. /bin/cp -a /tmp /mnt/newos
  58. /bin/cp -a /vmlinuz /mnt/newos
  59. /bin/cp -a /boot /mnt/newos
  60. /bin/cp -a /etc /mnt/newos
  61. /bin/cp -a /initrd.img /mnt/newos
  62. /bin/cp -a /media /mnt/newos
  63. /bin/cp -a /srv /mnt/newos
  64. /bin/cp -a /usr /mnt/newos
  65.  
  66. /bin/cp -a /home/copydir/fstab /mnt/newos/etc
  67.  
  68. mkdir /mnt/newos/proc
  69.  
  70. # 如果系统含有selinux,就需要以下这句
  71. #mkdir /mnt/newos/selinux
  72. mkdir /mnt/newos/sys
  73. mkdir /mnt/newos/mnt
  74.  
  75. #安装grub
  76. cd /mnt/newos
  77. chroot /mnt/newos<<EOF
  78. grub<<EOF
  79. root (hd1,0)
  80. setup (hd1)
  81. quit
  82. EOF
  83. /bin/touch /.autorelabel
  84. exit
  85. EOF

脚本copyos.sh源码

在上述操作完成后,然后还要修改menu.list和fstab, 而有的linux系统没有menu.list的话,就修改grub.conf

编辑 /mnt/new/boot/grub/menu.list,更改:

kernel /vmlinuz… ro root=LABEL=/ ==> kernel /vmlinuz… ro root=/dev/hda1

编辑 /mnt/new/etc/fstab,更改:

LABEL=/ ==> /dev/hda1

其实以上操作要根据linux系统的不同mount而进行修改, Debian的是这样的, 以后linux的复制系统或者说是备份系统就方便了.

上边的 +10240M是第1分区的,+512M是swap交换区的,然后剩余空间作为第三区

如果以后就有什么发现,就继续在这篇文章补上.

相关话题:
linux系统备份tar压缩成功

Tag:

留言