Browse Source

fix errors and readme 05.12.21:22.42

root 3 years ago
parent
commit
d292000aeb
2 changed files with 25 additions and 81 deletions
  1. 18 74
      README.md
  2. 7 7
      kvm-snapshot.sh

+ 18 - 74
README.md

@@ -2,100 +2,44 @@
2 2
 
3 3
 -----
4 4
 
5
-**RU:** Скрипт снятия образа данных через утилиту **[ntfsclone](https://linux.die.net/man/8/ntfsclone)** или **[dd](https://linux.die.net/man/1/dd)** с носителей XEN\KVM <br>
5
+**RU:** Скрипт снятия образа данных через утилиту **[dd](https://linux.die.net/man/1/dd)** с носителей XEN\KVM <br>
6 6
 - с максимальным сжатием данных<br>
7
-**(для HVM OS Windows)**<br>
7
+**(для любых систем HVM)**<br>
8 8
 Параметры использования скрипта задаются в секции **manual_parameters**<br>
9
-для скрипта необходим пакет **dialog**.
9
+для скрипта необходимы пакеты: **dialog**, **dd**, **pigz**, **gunzip** .
10 10
 
11
-для получения необходимых параметров скрипта - пример:
12
-```
13
-losetup /dev/loop1 /kvm/win7x64/disk_c.img
14
-losetup -a
15
-dev/loop0: [2055]:2103175 (/kvm/win7x64/disk_c.img)
16
-```
17
-
18
-`fdisk -l /dev/loop0`
19
-
20
-```
21
-Disk /dev/loop0: 80 GiB, 85899345920 bytes, 167772160 sectors
22
-Units: sectors of 1 * 512 = 512 bytes
23
-Sector size (logical/physical): 512 bytes / 512 bytes
24
-I/O size (minimum/optimal): 512 bytes / 512 bytes
25
-Disklabel type: dos
26
-Disk identifier: 0x677d5646
27
-```
28
-
29
-```
30
-Device        Boot  Start       End   Sectors  Size Id Type
31
-/dev/loop0p1 *      2048    206847    204800  100M  7 HPFS/NTFS/exFAT
32
-/dev/loop0p2      206848 167770111 167563264 79,9G  7 HPFS/NTFS/exFAT
33
-```
34
-
35
-у нас на образе 2 раздела.<br>
36
-каждый раздел это: **sda1** и **sda2**<br>
37
-смещение для каждого раздела получаем вычислением:<br> 
38
-
39
-**sda1 offset:( 512 х 2048 = 1048576 )**<br> 
40
-**sda2 offset:( 512 x 206848 = 105906176 )**<br> 
41
-
42
-результат вносим в раздел скрипта **manual_parameters**<br>
11
+настройки вносим в раздел скрипта **manual_parameters**<br>
43 12
 теперь скрипт сможет сам как сохранять так и восстанавливать данные с образа виртуальной машины.<br>
44 13
 
45 14
 Пожалуйста обратите внимание, параметры скрипта это массивы, вносите изменения так же как в исходном коде,<br>
46 15
 скрипт всегда опрашивает значения как массив, независимо одно значение или более.<br>
47 16
 
48 17
 **Внимание!!**<br> 
49
-**До начала использования скрипта рекомендую предварительно сделать копию файла образа (пример : /kvm/win7x64/disk_c.img)**<br>
18
+**До начала использования скрипта рекомендую предварительно сделать копию файла образа (пример : /kvm/vm1/sda.img)**<br>
50 19
 и только если все прошло успешно, копию можно удалить.<br>
51 20
 Диалог скрипта поддерживает 2 языка: RU и EN<br>
52 21
 
22
+**Если возникает ошибка: "Peer's Certificate issuer is not recognized"**<br>
23
+используейте параметр: git -c http.sslVerify=false clone ...
24
+
25
+
53 26
 <hr>
54
-**EN:** A script to extract a data image via the  **[ntfsclone](https://linux.die.net/man/8/ntfsclone)** or **[dd](https://linux.die.net/man/1/dd)** utility from XEN \ KVM <br>
27
+**EN:** A script to extract a data image via the  **[dd](https://linux.die.net/man/1/dd)** utility from XEN \ KVM <br>
55 28
 - with maximum data compression<br>
56
-**(for HVM OS Windows)**<br>
29
+**(for HVM all OS)**<br>
57 30
 Parameters for using the script are specified in section **manual_parameters**<br>
58
-for the script you need the package **dialog**.
31
+for the script you need the packages: **dialog**, **dd**, **pigz**, **gunzip** .
59 32
 
60
-to get the necessary parameters of the script - an example:<br>
61
-```
62
-losetup /dev/loop1 /kvm/win7x64/disk_c.img
63
-losetup -a
64
-dev/loop0: [2055]:2103175 (/kvm/win7x64/disk_c.img)
65
-```
66
-
67
-`fdisk -l /dev/loop0`
68
-
69
-```
70
-Disk /dev/loop0: 80 GiB, 85899345920 bytes, 167772160 sectors
71
-Units: sectors of 1 * 512 = 512 bytes
72
-Sector size (logical/physical): 512 bytes / 512 bytes
73
-I/O size (minimum/optimal): 512 bytes / 512 bytes
74
-Disklabel type: dos
75
-Disk identifier: 0x677d5646
76
-```
77
-
78
-```
79
-Device        Boot  Start       End   Sectors  Size Id Type
80
-/dev/loop0p1 *      2048    206847    204800  100M  7 HPFS/NTFS/exFAT
81
-/dev/loop0p2      206848 167770111 167563264 79,9G  7 HPFS/NTFS/exFAT
82
-```
83
-
84
-
85
-at us on an image of 2 sections.<br>
86
-each partition is: **sda1** and **sda2**<br>
87
-the offset for each section is obtained by computing:<br>
88
-
89
-**sda1 offset :( 512 x 2048 = 1048576)**<br>
90
-**sda2 offset :( 512 x 206848 = 105906176)**<br>
91
-
92
-the result is added to the section of the script **manual_parameters**<br>
33
+the start parameters is added to the section of the script **manual_parameters**<br>
93 34
 Now the script itself can both save and restore data from the virtual machine image.<br>
94 35
 
95 36
 Please note, the script settings are arrays, make the changes as well as in the source code, <br>
96 37
 The script always interrogates values as an array, independently one value or more.<br>
97 38
 
98 39
 **Attention!!**<br>
99
-**Before using the script, I recommend that you first make a copy of the image file (example: /kvm/win7x64/disk_c.img)**<br>
40
+**Before using the script, I recommend that you first make a copy of the image file (example: /kvm/vm1/sda.img)**<br>
100 41
 and only if everything went well, a copy can be deleted.<br>
101
-The script dialog supports 2 languages: RU and EN<br>
42
+The script dialog supports 2 languages: RU and EN<br>
43
+
44
+**If an error occurs: "Peer's Certificate issuer is not recognized"**<br>
45
+use example: git -c http.sslVerify=false clone ...

+ 7 - 7
kvm-snapshot.sh

@@ -2,7 +2,7 @@
2 2
 # The script is designed to create or restore an image of a virtual machine kvm (c) 2018
3 3
 # author Koshuba V.O.
4 4
 # license: MIT
5
-# version: 5.0.1
5
+# version: 5.0.2
6 6
 ##
7 7
 
8 8
 #<manual_parameters>
@@ -11,7 +11,7 @@ path_kvm=(	"/kvm/vm1"
11 11
 path_bak=(	"/backup/kvm/vm1" 
12 12
 		"/backup/kvm/vm2"  );		# path backup kvm machines
13 13
 img_dev=(	"sda.img"
14
-		"sda.img" );				# storage kvm
14
+		"sda.img" );			# storage kvm
15 15
 #</manual_parameters>
16 16
 
17 17
 #<script_value>
@@ -358,9 +358,9 @@ done
358 358
 function saveKvm() {
359 359
 local save_kvm="${path_kvm[$set_kvm]}";
360 360
 local save_bak="${path_bak[$set_kvm]}/$rdate";
361
-local save_img="${img_dev[$set_kvm]}";
361
+local save_img=$(echo "${img_dev[$set_kvm]}"|sed 's/\./ /g'|awk '{print$1}');
362 362
 local set_loop_main="$(losetup -f|grep -v loop-control|sed 's/\/\dev\///g')";
363
-losetup /dev/$set_loop_main $save_kvm/$save_img;
363
+losetup /dev/$set_loop_main $save_kvm/$save_img.img;
364 364
 
365 365
 if [[ ! -d $save_bak ]];
366 366
     then
@@ -376,10 +376,10 @@ losetup -d /dev/$set_loop_main;
376 376
 function restoreKvm() {
377 377
 local rest_kvm="${path_kvm[$set_kvm]}";
378 378
 local rest_bak="${path_bak[$set_kvm]}/$set_img";
379
-local rest_img="${img_dev[$set_kvm]}";
379
+local rest_img=$(echo "${img_dev[$set_kvm]}"|sed 's/\./ /g'|awk '{print$1}');
380 380
 local set_loop_rmain="$(losetup -f|grep -v loop-control|sed 's/\/\dev\///g')";
381
-losetup /dev/$set_loop_rmain $rest_kvm/$rest_img;
382
-pigz -p4 -c -d -M $rest_bak/${rest_dev[$irkvm]}_dd.img.gz|dd of=/dev/$set_loop_rdev status=progress;
381
+losetup /dev/$set_loop_rmain $rest_kvm/$rest_img.img;
382
+pigz -p4 -c -d -M $rest_bak/$rest_img-dd.img.gz|dd of=/dev/$set_loop_rmain status=progress;
383 383
 losetup -d /dev/$set_loop_rmain;
384 384
 }
385 385