| 
															
																@@ -2,22 +2,25 @@ 
															 | 
														
													
												
													
														
															| 
																2
															 | 
															
																 # The script is designed to create or restore an image of a virtual machine kvm (c) 2018 
															 | 
															
																2
															 | 
															
																 # The script is designed to create or restore an image of a virtual machine kvm (c) 2018 
															 | 
														
													
												
													
														
															| 
																3
															 | 
															
																 # author Koshuba V.O. 
															 | 
															
																3
															 | 
															
																 # author Koshuba V.O. 
															 | 
														
													
												
													
														
															| 
																4
															 | 
															
																 # license: MIT 
															 | 
															
																4
															 | 
															
																 # license: MIT 
															 | 
														
													
												
													
														
															| 
																5
															 | 
															
																-# version: 4.0.5 
															 | 
															
																
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
																
															 | 
															
																 
															 | 
															
																5
															 | 
															
																+# version: 4.0.10 
															 | 
														
													
												
													
														
															| 
																6
															 | 
															
																 ## 
															 | 
															
																6
															 | 
															
																 ## 
															 | 
														
													
												
													
														
															| 
																7
															 | 
															
																  
															 | 
															
																7
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
																8
															 | 
															
																 #<manual_parameters> 
															 | 
															
																8
															 | 
															
																 #<manual_parameters> 
															 | 
														
													
												
													
														
															| 
																9
															 | 
															
																-path_kvm=( "/kvm/win2012" "/kvm/win2008" );			# path kvm machines 
															 | 
															
																
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
																10
															 | 
															
																-path_bak=( "/backup/kvm/win2012" "/backup/kvm/win2008" );	# path backup kvm machines 
															 | 
															
																
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
																
															 | 
															
																 
															 | 
															
																9
															 | 
															
																+path_kvm=( "/kvm/ms1" "/kvm/ms2" );				# path kvm machines 
															 | 
														
													
												
													
														
															| 
																
															 | 
															
																 
															 | 
															
																10
															 | 
															
																+path_bak=( "/backup/kvm/ms1" "/backup/kvm/ms2"  );		# path backup kvm machines 
															 | 
														
													
												
													
														
															| 
																11
															 | 
															
																 img_dev=( "sda.img" "sda.img" );				# storage kvm 
															 | 
															
																11
															 | 
															
																 img_dev=( "sda.img" "sda.img" );				# storage kvm 
															 | 
														
													
												
													
														
															| 
																12
															 | 
															
																-img_part=( '"sda1" "sda2" "sda3" "sda4"' '"sda1"' );		# sections in media kvm 
															 | 
															
																
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
																13
															 | 
															
																-img_type=( '"dd" "dd" "dd" "ntfsclone"' '"ntfsclone"' );	# type backup partition:dd[fat,EFI System,Windows recovery environment,Microsoft reserved],ntfsclone[ntfs,Microsoft basic data] 
															 | 
															
																
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
																14
															 | 
															
																-img_size=( '"300" "99" "128"' '""' );				# size partition for dd (Mb) 
															 | 
															
																
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
																
															 | 
															
																 
															 | 
															
																12
															 | 
															
																+img_part=( '"sda1" "sda2" "sda3" "sda4"' 
															 | 
														
													
												
													
														
															| 
																
															 | 
															
																 
															 | 
															
																13
															 | 
															
																+           '"sda1" "sda2" "sda3" "sda4"' );			# sections in media kvm 
															 | 
														
													
												
													
														
															| 
																
															 | 
															
																 
															 | 
															
																14
															 | 
															
																+img_type=( '"dd" "dd" "dd" "ntfsclone"' 
															 | 
														
													
												
													
														
															| 
																
															 | 
															
																 
															 | 
															
																15
															 | 
															
																+           '"dd" "dd" "dd" "ntfsclone"' );			# type backup partition:dd[fat,EFI System,Windows recovery environment,Microsoft reserved],ntfsclone[ntfs,Microsoft basic data] 
															 | 
														
													
												
													
														
															| 
																
															 | 
															
																 
															 | 
															
																16
															 | 
															
																+img_size=( '"300" "99" "128" ""' 
															 | 
														
													
												
													
														
															| 
																
															 | 
															
																 
															 | 
															
																17
															 | 
															
																+           '"300" "99" "128" ""' );				# size partition for dd (Mb) 
															 | 
														
													
												
													
														
															| 
																15
															 | 
															
																 img_offset=( '"1048576" "315621376" "419430400" "553648128"' 
															 | 
															
																18
															 | 
															
																 img_offset=( '"1048576" "315621376" "419430400" "553648128"' 
															 | 
														
													
												
													
														
															| 
																16
															 | 
															
																-             '"1048576"' );					# offset for switch section media kvm 
															 | 
															
																
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
																
															 | 
															
																 
															 | 
															
																19
															 | 
															
																+             '"1048576" "315621376" "419430400" "553648128"' );	# offset for switch section media kvm 
															 | 
														
													
												
													
														
															| 
																17
															 | 
															
																 #</manual_parameters> 
															 | 
															
																20
															 | 
															
																 #</manual_parameters> 
															 | 
														
													
												
													
														
															| 
																18
															 | 
															
																  
															 | 
															
																21
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
																19
															 | 
															
																 #<script_value> 
															 | 
															
																22
															 | 
															
																 #<script_value> 
															 | 
														
													
												
													
														
															| 
																20
															 | 
															
																-version="4.0.5"; 
															 | 
															
																
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
																
															 | 
															
																 
															 | 
															
																23
															 | 
															
																+version="4.0.10"; 
															 | 
														
													
												
													
														
															| 
																21
															 | 
															
																 owner="(c) script by Koshuba V.O. 2018"; 
															 | 
															
																24
															 | 
															
																 owner="(c) script by Koshuba V.O. 2018"; 
															 | 
														
													
												
													
														
															| 
																22
															 | 
															
																 msg_dat=( '"Script to save or restore the image KVM" "Скрипт сохранения или восстановления образа KVM"' 
															 | 
															
																25
															 | 
															
																 msg_dat=( '"Script to save or restore the image KVM" "Скрипт сохранения или восстановления образа KVM"' 
															 | 
														
													
												
													
														
															| 
																23
															 | 
															
																           '"MAIN MENU" "ГЛАВНОЕ МЕНЮ"' 
															 | 
															
																26
															 | 
															
																           '"MAIN MENU" "ГЛАВНОЕ МЕНЮ"' 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -383,15 +386,15 @@ for ((iskvm=0; iskvm != ${#save_dev[@]}; iskvm++)) 
															 | 
														
													
												
													
														
															| 
																383
															 | 
															
																     losetup -o ${save_offset[$iskvm]} /dev/$set_loop_dev /dev/$set_loop_main; 
															 | 
															
																386
															 | 
															
																     losetup -o ${save_offset[$iskvm]} /dev/$set_loop_dev /dev/$set_loop_main; 
															 | 
														
													
												
													
														
															| 
																384
															 | 
															
																     if [ "${save_type[$iskvm]}" == "ntfsclone" ]; 
															 | 
															
																387
															 | 
															
																     if [ "${save_type[$iskvm]}" == "ntfsclone" ]; 
															 | 
														
													
												
													
														
															| 
																385
															 | 
															
																 	    then 
															 | 
															
																388
															 | 
															
																 	    then 
															 | 
														
													
												
													
														
															| 
																386
															 | 
															
																-	    ntfsclone --save-image -o - /dev/$set_loop_dev| pigz -p2 -c9>$save_bak/${save_dev[$iskvm]}.img.gz; 
															 | 
															
																
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
																
															 | 
															
																 
															 | 
															
																389
															 | 
															
																+	    ntfsclone --save-image -o - /dev/$set_loop_dev| pigz -p2 -c9>$save_bak/${save_dev[$iskvm]}_ntfs.img.gz; 
															 | 
														
													
												
													
														
															| 
																387
															 | 
															
																 	fi 
															 | 
															
																390
															 | 
															
																 	fi 
															 | 
														
													
												
													
														
															| 
																388
															 | 
															
																 	if [ "${save_type[$iskvm]}" == "dd" ]; 
															 | 
															
																391
															 | 
															
																 	if [ "${save_type[$iskvm]}" == "dd" ]; 
															 | 
														
													
												
													
														
															| 
																389
															 | 
															
																 	    then 
															 | 
															
																392
															 | 
															
																 	    then 
															 | 
														
													
												
													
														
															| 
																390
															 | 
															
																 		if [ "${save_size[$iskvm]}" != "" ]; 
															 | 
															
																393
															 | 
															
																 		if [ "${save_size[$iskvm]}" != "" ]; 
															 | 
														
													
												
													
														
															| 
																391
															 | 
															
																 		    then 
															 | 
															
																394
															 | 
															
																 		    then 
															 | 
														
													
												
													
														
															| 
																392
															 | 
															
																-		    dd if=/dev/$set_loop_dev of=$save_bak/${save_dev[$iskvm]}_dd.img.gz status=progress bs=${save_size[$iskvm]}M count=1; 
															 | 
															
																
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
																
															 | 
															
																 
															 | 
															
																395
															 | 
															
																+		    dd if=/dev/$set_loop_dev status=progress bs=${save_size[$iskvm]}M count=1|pigz -p4 -M -c9>$save_bak/${save_dev[$iskvm]}_dd.img.gz; 
															 | 
														
													
												
													
														
															| 
																393
															 | 
															
																 		    else 
															 | 
															
																396
															 | 
															
																 		    else 
															 | 
														
													
												
													
														
															| 
																394
															 | 
															
																-		    echo "Warning! not found size partition ${save_dev[$iskvm]} for dd!"; 
															 | 
															
																
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
																
															 | 
															
																 
															 | 
															
																397
															 | 
															
																+		    dd if=/dev/$set_loop_dev status=progress|pigz -p4 -M -c9>$save_bak/${save_dev[$iskvm]}_dd.img.gz; 
															 | 
														
													
												
													
														
															| 
																395
															 | 
															
																 		fi 
															 | 
															
																398
															 | 
															
																 		fi 
															 | 
														
													
												
													
														
															| 
																396
															 | 
															
																 	     
															 | 
															
																399
															 | 
															
																 	     
															 | 
														
													
												
													
														
															| 
																397
															 | 
															
																 	fi 
															 | 
															
																400
															 | 
															
																 	fi 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -430,9 +433,9 @@ for ((irkvm=0; irkvm != ${#rest_dev[@]}; irkvm++)) 
															 | 
														
													
												
													
														
															| 
																430
															 | 
															
																 	    then 
															 | 
															
																433
															 | 
															
																 	    then 
															 | 
														
													
												
													
														
															| 
																431
															 | 
															
																 		if [ "${rest_size[$irkvm]}" != "" ]; 
															 | 
															
																434
															 | 
															
																 		if [ "${rest_size[$irkvm]}" != "" ]; 
															 | 
														
													
												
													
														
															| 
																432
															 | 
															
																 		    then 
															 | 
															
																435
															 | 
															
																 		    then 
															 | 
														
													
												
													
														
															| 
																433
															 | 
															
																-		    dd if=$rest_bak/${rest_dev[$irkvm]}_dd.img.gz of=/dev/$set_loop_rdev status=progress bs=${rest_size[$irkvm]}M count=1; 
															 | 
															
																
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
																
															 | 
															
																 
															 | 
															
																436
															 | 
															
																+		    pigz -p4 -c -d -M $rest_bak/${rest_dev[$irkvm]}_dd.img.gz|dd of=/dev/$set_loop_rdev status=progress bs=${rest_size[$irkvm]}M count=1; 
															 | 
														
													
												
													
														
															| 
																434
															 | 
															
																 		    else 
															 | 
															
																437
															 | 
															
																 		    else 
															 | 
														
													
												
													
														
															| 
																435
															 | 
															
																-		    echo "Warning! not found size partition ${rest_dev[$irkvm]} for dd!"; 
															 | 
															
																
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
																
															 | 
															
																 
															 | 
															
																438
															 | 
															
																+		    pigz -p4 -c -d -M $rest_bak/${rest_dev[$irkvm]}_dd.img.gz|dd of=/dev/$set_loop_rdev status=progress; 
															 | 
														
													
												
													
														
															| 
																436
															 | 
															
																 		fi 
															 | 
															
																439
															 | 
															
																 		fi 
															 | 
														
													
												
													
														
															| 
																437
															 | 
															
																 	fi 
															 | 
															
																440
															 | 
															
																 	fi 
															 | 
														
													
												
													
														
															| 
																438
															 | 
															
																 	if [ "${rest_type[$irkvm]}" != "ntfsclone" ] && [ "${rest_type[$irkvm]}" != "dd" ]; 
															 | 
															
																441
															 | 
															
																 	if [ "${rest_type[$irkvm]}" != "ntfsclone" ] && [ "${rest_type[$irkvm]}" != "dd" ]; 
															 |