Linux的系统备份,复制系统的脚本,系统是Debian,记录
前天在Vmware里尝试把系统复制到另一硬盘的实验,实现了Linux的系统备份, 或者说是复制系统吧,我没用使用ghost或者dd, 我Vmware里的Linux系统是Debian, 分了三个区的 , 另外,不支持lvm .
- #!/bin/bash
- # 无聊空间 http://www.lpfrx.com 制作
- disk='/dev/hdb'
- # 格式化
- echo -e "fdisk \\033[1;32m$disk\\033[0;39m now..."
- dd if=/dev/zero of=$disk bs=1 count=64 seek=446 &>/dev/null
- # 自动分区, 分了三个区
- /sbin/fdisk <<EOF
- n
- p
- 1
- +10240M
- n
- p
- 2
- +512M
- n
- p
- 3
- a
- 1
- t
- 2
- 82
- w
- EOF
- mke2fs -j /dev/hdb1
- mke2fs -j /dev/hdb3
- mkswap /dev/hdb2
- rm -r /mnt/newos
- mkdir /mnt/newos
- /bin/mount /dev/hdb1 /mnt/newos
- /bin/mkdir /mnt/newos/home
- /bin/mount /dev/hdb3 /mnt/newos/home
- cd /
- /bin/cp -a /cdrom /mnt/newos
- /bin/cp -a /home/* /mnt/newos/home/
- /bin/cp -a /lib /mnt/newos
- /bin/cp -a /root /mnt/newos
- /bin/cp -a /var /mnt/newos
- /bin/cp -a /bin /mnt/newos
- /bin/cp -a /dev /mnt/newos
- /bin/cp -a /initrd /mnt/newos
- /bin/cp -a /opt /mnt/newos
- /bin/cp -a /sbin /mnt/newos
- /bin/cp -a /tmp /mnt/newos
- /bin/cp -a /vmlinuz /mnt/newos
- /bin/cp -a /boot /mnt/newos
- /bin/cp -a /etc /mnt/newos
- /bin/cp -a /initrd.img /mnt/newos
- /bin/cp -a /media /mnt/newos
- /bin/cp -a /srv /mnt/newos
- /bin/cp -a /usr /mnt/newos
- /bin/cp -a /home/copydir/fstab /mnt/newos/etc
- mkdir /mnt/newos/proc
- # 如果系统含有selinux,就需要以下这句
- #mkdir /mnt/newos/selinux
- mkdir /mnt/newos/sys
- mkdir /mnt/newos/mnt
- #安装grub
- cd /mnt/newos
- chroot /mnt/newos<<EOF
- grub<<EOF
- root (hd1,0)
- setup (hd1)
- quit
- EOF
- /bin/touch /.autorelabel
- exit
- 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:


