Linux操作系统复制和还原

0x00

工作中经常会使用Linux操作系统,有时候需要装操作系统,而且和某些测试机环境一样,每次都得现装操作系统,数据库、java环境、应用程度等,耗费大半天的时间。一次听同事说有这么一个工具,觉得听不错的,也安利大家一下吧。
需要的工具就是一个稍微大一点的U盘,如果你的操作系统中东西少估计8G就够,如果里面东西较大,则建议看一下硬盘用了多少,使用再大点的U盘。我一般用32G的,可以备份几个操作系统。最好使用USB3.0的,如果你的电脑支持3.0那速度就很快咯。
将U盘插到要备份的电脑上,然后执行后续脚本。

官方网址:https://github.com/rear/rear

0x01

#!/bin/bash
#使用root权限使用本脚本
#此脚本仅在CentOS系统使用过,Ubuntu理论上也可以

#安装rear工具
Installrear(){
     
yum install -y asciidoc
yum install -y xmlto
yum install -y syslinux-extlinux.x86_64
yum install -y grub2-efi-x64-modules.noarch
git clone https://github.com/rear/rear.git
cd rear/
make install

echo "OUTPUT=USB
BACKUP=NETFS
BACKUP_URL=usb:///dev/disk/by-label/REAR-000">> /etc/rear/local.conf
}


#安装git
Installgit(){
     
yum install -y git
}

#修改rear配置文件
modfiy_config(){
     
echo "修改rear配置文件"
config=/usr/share/rear/conf/default.conf
sed -i -e '230c test "$USER_INPUT_TIMEOUT" || USER_INPUT_TIMEOUT=10' $config
sed -i -e '1030c BACKUP_SELINUX_DISABLE=0' $config
sed -i -e '2246c YUM_BACKUP_SELINUX_CONTEXTS="yes"' $config
sed -i -e '2532c USE_DHCLIENT=n' $config
sed -i -e '2649c REBUILD_INITRAMFS="no"' $config
}


#如果无git命令则安装git
which "git"> /dev/null
if [ $? -eq 0 ]
then
    echo git is exist
else
    echo git not exist
    Installgit
fi

#判断是否有rear命令,如果有则修改rear配置文件
which "rear" > /dev/null
if [ $? -eq 0 ]
then
    echo rear is exist
    
else
    echo rear not exist
    Installrear
    modfiy_config	
fi

set +e
 Mount_position=`find /run/media/ | sed -n 2p`
 slash=/
 umount $Mount_position$slash


#[ -d /sys/firmware/efi ] && echo UEFI || echo BIOS,判断是uefi启动还是lagency BIOS启动
#如果是BIOS,则使用rear format /dev/sdb或sdc
#如果是uefi,则使用rear format -- -- efi /dev/sdb或sdc
sdN=`ls -r /dev/sd* | sed -n 1p`

Startmode=`[ -d /sys/firmware/efi ] && echo UEFI || echo BIOS`
if [[ $Startmode == BIOS ]];
then
    rear format ${sdN:0:8}
	#echo ${sdN:0:8}
elif [[ $Startmode == UEFI ]];
then    
	rear format -- --efi ${sdN:0:8}
	#echo ${sdN:0:8}
else
    echo "请手动格式化U盘"
fi


#备份系统
rear -d -v mkbackup

0x02

脚本中可能有不严谨的地方,如果有问题请看官方文档。
其实在这其中有好多坑,只有多实践,才能把坑填满。
坑1:最好是复制和还原的电脑的硬盘大小一致。否则,大的向小的还原,可能会有问题,小的向大的欢迎,导致硬盘使用空闲。
Linux操作系统复制和还原_第1张图片

你可能感兴趣的:(linux,shell)