Вот перечень всего, что лежит в директории:
.../.myOwnScripts/BackUp/About.sh [скрипт с правами на исполнение]
.../.myOwnScripts/BackUp/load.sh [скрипт с правами на исполнение]
.../.myOwnScripts/BackUp/MnT.sh [скрипт с правами на исполнение]
.../.myOwnScripts/BackUp/Notify.mp3 [любой короткий mp3, будет играть после окончания длительных операций]
.../.myOwnScripts/BackUp/REPAIR.desktop [.desktop-файл с правами на исполнение]
.../.myOwnScripts/BackUp/save.sh [скрипт с правами на исполнение]
.../.myOwnScripts/BackUp/sound [скрипт с правами на исполнение]
.../.myOwnScripts/BackUp/what_to_do.sh [скрипт с правами на исполнение]
.../.myOwnScripts/BackUp/Восстановление sda1.sh [скрипт с правами на исполнение]
.../.myOwnScripts/BackUp/Восстановление sda2.sh [скрипт с правами на исполнение]
.../.myOwnScripts/BackUp/Восстановление sda3.sh [скрипт с правами на исполнение]
.../.myOwnScripts/BackUp/Восстановление sda4.sh [скрипт с правами на исполнение]
.../.myOwnScripts/BackUp/Восстановление sda5.sh [скрипт с правами на исполнение]
.../.myOwnScripts/BackUp/Сохранение sda1.sh [скрипт с правами на исполнение]
.../.myOwnScripts/BackUp/Сохранение sda2.sh [скрипт с правами на исполнение]
.../.myOwnScripts/BackUp/Сохранение sda3.sh [скрипт с правами на исполнение]
.../.myOwnScripts/BackUp/Сохранение sda4.sh [скрипт с правами на исполнение]
.../.myOwnScripts/BackUp/Сохранение sda5.sh [скрипт с правами на исполнение]
.../.myOwnScripts/BackUp/REPAIR.png [картинка, приведенная ниже]

[Desktop Entry]
Version=1.0
Name=REPAIR
GenericName=Резервирование&Восстановление
Comment=Набор скриптов для резервного копирования операционных систем и последующего их восстановления из существующих образов
Exec='/home/[ЮЗВЕРЬ]/.myOwnScripts/BackUp/About.sh'
Terminal=false
Icon=/home/[ЮЗВЕРЬ]/.myOwnScripts/BackUp/REPAIR.png
Type=Application
Categories=Резервное копирование;
Name[ru]=REPAIR
Actions=A1;A2;A3;A4;B1;B2;B3;B4
[Desktop Action A1]
Name=Сохранить образ диска SDA1 (EFI)
Exec=gnome-terminal --execute '/home/[ЮЗВЕРЬ]/.myOwnScripts/BackUp/Сохранение sda1.sh'
#TargetEnvironment=Unity
StartupNotify=false
Terminal=true
[Desktop Action A2]
Name=Сохранить образ диска SDA2 (Ubuntu MATE 16.04)
Exec=gnome-terminal --execute '/home/[ЮЗВЕРЬ]/.myOwnScripts/BackUp/Сохранение sda2.sh'
TargetEnvironment=Unity
#StartupNotify=false
Terminal=true
[Desktop Action A3]
Name=Сохранить образ диска SDA3 (MS Windows 7 Ultimate x64)
Exec=gnome-terminal --execute '/home/[ЮЗВЕРЬ]/.myOwnScripts/BackUp/Сохранение sda3.sh'
TargetEnvironment=Unity
StartupNotify=false
Terminal=true
[Desktop Action A4]
Name=Сохранить образ диска SDA4 (WiFi_SLAX 1.0 x64)
Exec=gnome-terminal --execute '/home/[ЮЗВЕРЬ]/.myOwnScripts/BackUp/Сохранение sda4.sh'
TargetEnvironment=Unity
StartupNotify=false
Terminal=true
[Desktop Action B1]
Name=Восстановить диск SDA1 из имеющегося образа (EFI)
Exec=gnome-terminal --execute '/home/[ЮЗВЕРЬ]/.myOwnScripts/BackUp/Восстановление sda1.sh'
TargetEnvironment=Unity
StartupNotify=false
Terminal=true
[Desktop Action B2]
Name=Восстановить диск SDA2 из имеющегося образа (Ubuntu MATE 16.04)
Exec=gnome-terminal --execute '/home/[ЮЗВЕРЬ]/.myOwnScripts/BackUp/Восстановление sda2.sh'
TargetEnvironment=Unity
StartupNotify=false
Terminal=true
[Desktop Action B3]
Name=Восстановить диск SDA3 из имеющегося образа (MS Windows 7 Ultimate x64)
Exec=gnome-terminal --execute '/home/[ЮЗВЕРЬ]/.myOwnScripts/BackUp/Восстановление sda3.sh'
TargetEnvironment=Unity
StartupNotify=false
Terminal=true
[Desktop Action B4]
Name=Восстановить диск SDA4 из имеющегося образа (WiFi_SLAX 1.0 x64)
Exec=gnome-terminal --execute '/home/[ЮЗВЕРЬ]/.myOwnScripts/BackUp/Восстановление sda4.sh'
TargetEnvironment=Unity
StartupNotify=false
Terminal=true
#!/bin/sh
# Работа с образами дисков (адаптация dd к резервному копированию и восстановлению
# системных разделов)
# Механизм копирования описан здесь: https://forum.ubuntu.ru/index.php?topic=241919.msg2020282#msg2020282
# Необходимые полномочия передаются через сам этот скрипт (в явном виде храним пароль администратора, что не есть гут, но для нашей задачи сойдет)
#------------ принимает аргументы -save и -load -----------------------
case "$1" in
save) #снятие сжатого образа и сохранение его в соответствующей директории
echo "Предпринимается попытка сохранения состояния жесткого диска в сжатый образ..."
echo /ПАРОЛЬ_ПОЛЬЗОВАТЕЛЯ/ | sudo -S -u root "/home/[ЮЗВЕРЬ]/.myOwnScripts/BackUp/save.sh" -$2;;
load) # восстановление состояния диска из снятого ранее образа:
echo "Предпринимается попытка восстановления скопированного ранее состояния жесткого диска из образа..."
echo /ПАРОЛЬ_ПОЛЬЗОВАТЕЛЯ/ | sudo -S -u root "/home/[ЮЗВЕРЬ]/.myOwnScripts/BackUp/load.sh" -$2;;
*)
esac
mplayer "/home/[ЮЗВЕРЬ]/.myOwnScripts/BackUp/Notify.mp3"
#!/bin/sh
#
# Сохранение загрузчика
#
if zenity --question --title="Сохранение образа диска" --text="Вы действительно хотите выполнить сохранение текущего состояния диска sda1 в образ?"; then
START=$(date +%s)
#1. Отмонтировать EFI
echo /ПАРОЛЬ_ПОЛЬЗОВАТЕЛЯ/ | sudo -S -u root '/home/[ЮЗВЕРЬ]/.myOwnScripts/BackUp/MnT.sh' unmnt
#2. Сохранить состояние EFI
sh '/home/[ЮЗВЕРЬ]/.myOwnScripts/BackUp/what_to_do.sh' save sda1
clear
echo "Выполняется монтирование раздела EFI..."
#3. Смонтировать EFI
echo /ПАРОЛЬ_ПОЛЬЗОВАТЕЛЯ/ | sudo -S -u root '/home/[ЮЗВЕРЬ]/.myOwnScripts/BackUp/MnT.sh' mnt
clear
echo "Работа программы закончена. Можно закрыть это окно..."
#в сообщение вывести данные по образу (его размер) и время выполнения процесса
END=$(date +%s)
DIFF=$(( $END - $START ))
echo "It took $DIFF seconds"
h=$(( DIFF / 3600 ))
m=$(( ( DIFF / 60 ) % 60 ))
s=$(( DIFF % 60 ))
#размер полученного образа
imSize=`du -sh /home/[ЮЗВЕРЬ]/Образы_разделов/image-sda1.img.gz | awk '{print $1}'`
#размер диска, с которого образ снимали
DriveSize=`df -h --output=size /dev/sda1 | tail -n1 | awk '{print $1}'`
zenity --info --text "Раздел sda1, содержащий в себе образ загрузчика UEFI,\nуспешно сохранен.\nРазмер исходного диска: $DriveSize\nРазмер полученного образа: $imSize\nПроцесс занял $h час $m мин $s сек"
fi
#!/bin/sh
#
# Сохранение загрузчика
#
if zenity --question --title="Сохранение образа диска" --text="Вы действительно хотите выполнить сохранение текущего состояния диска sda2 (Ubuntu MATE) в образ?"; then
START=$(date +%s)
#2. Сохранить состояние EFI
sh '/home/[ЮЗВЕРЬ]/.myOwnScripts/BackUp/what_to_do.sh' save sda2
clear
echo "Работа программы закончена. Можно закрыть это окно..."
#в сообщение вывести данные по образу (его размер) и время выполнения процесса
END=$(date +%s)
DIFF=$(( $END - $START ))
echo "It took $DIFF seconds"
h=$(( DIFF / 3600 ))
m=$(( ( DIFF / 60 ) % 60 ))
s=$(( DIFF % 60 ))
#размер полученного образа
imSize=`du -sh /home/[ЮЗВЕРЬ]/Образы_разделов/image-sda2.img.gz | awk '{print $1}'`
#размер диска, с которого образ снимали
DriveSize=`df -h --output=size /dev/sda2 | tail -n1 | awk '{print $1}'`
zenity --info --text "Раздел sda2, содержащий в себе образ ОС Ubuntu MATE 16.04,\nуспешно сохранен.\nРазмер исходного диска: $DriveSize\nРазмер полученного образа: $imSize\nПроцесс занял $h час $m мин $s сек"
fi
#!/bin/sh
#
# Сохранение загрузчика
#
if zenity --question --title="Сохранение образа диска" --text="Вы действительно хотите выполнить сохранение текущего состояния диска sda3 (Windows 7 Ultimate) в образ?"; then
START=$(date +%s)
#2. Сохранить состояние EFI
sh '/home/[ЮЗВЕРЬ]/.myOwnScripts/BackUp/what_to_do.sh' save sda3
clear
echo "Работа программы закончена. Можно закрыть это окно..."
#в сообщение вывести данные по образу (его размер) и время выполнения процесса
END=$(date +%s)
DIFF=$(( $END - $START ))
echo "It took $DIFF seconds"
h=$(( DIFF / 3600 ))
m=$(( ( DIFF / 60 ) % 60 ))
s=$(( DIFF % 60 ))
#размер полученного образа
imSize=`du -sh /home/[ЮЗВЕРЬ]/Образы_разделов/image-sda3.img.gz | awk '{print $1}'`
#размер диска, с которого образ снимали
DriveSize=`df -h --output=size /dev/sda3 | tail -n1 | awk '{print $1}'`
zenity --info --text "Раздел sda3, содержащий в себе образ ОС Windows 7 Ultimate,\nуспешно сохранен.\nРазмер исходного диска: $DriveSize\nРазмер полученного образа: $imSize\nПроцесс занял $h час $m мин $s сек"
fi
#!/bin/sh
#
# Сохранение загрузчика
#
if zenity --question --title="Сохранение образа диска" --text="Вы действительно хотите выполнить сохранение текущего состояния диска sda4 (WiFi_SLAX 1.0 x64) в образ?"; then
START=$(date +%s)
#2. Сохранить состояние EFI
sh '/home/[ЮЗВЕРЬ]/.myOwnScripts/BackUp/what_to_do.sh' save sda4
clear
echo "Работа программы закончена. Можно закрыть это окно..."
#в сообщение вывести данные по образу (его размер) и время выполнения процесса
END=$(date +%s)
DIFF=$(( $END - $START ))
echo "It took $DIFF seconds"
h=$(( DIFF / 3600 ))
m=$(( ( DIFF / 60 ) % 60 ))
s=$(( DIFF % 60 ))
#размер полученного образа
imSize=`du -sh /home/[ЮЗВЕРЬ]/Образы_разделов/image-sda4.img.gz | awk '{print $1}'`
#размер диска, с которого образ снимали
DriveSize=`df -h --output=size /dev/sda4 | tail -n1 | awk '{print $1}'`
zenity --info --text "Раздел sda4, содержащий в себе образ ОС WiFi_SLAX 1.0 x64,\nуспешно сохранен.\nРазмер исходного диска: $DriveSize\nРазмер полученного образа: $imSize\nПроцесс занял $h час $m мин $s сек"
fi
#!/bin/sh
#
# Сохранение загрузчика
#
if zenity --question --title="Сохранение образа диска" --text="Вы действительно хотите выполнить сохранение текущего состояния диска sda5 (Ubuntu 16.04.3) в образ?"; then
START=$(date +%s)
#2. Сохранить состояние EFI
sh '/home/[ЮЗВЕРЬ]/.myOwnScripts/BackUp/what_to_do.sh' save sda5
clear
echo "Работа программы закончена. Можно закрыть это окно..."
#в сообщение вывести данные по образу (его размер) и время выполнения процесса
END=$(date +%s)
DIFF=$(( $END - $START ))
echo "It took $DIFF seconds"
h=$(( DIFF / 3600 ))
m=$(( ( DIFF / 60 ) % 60 ))
s=$(( DIFF % 60 ))
#размер полученного образа
imSize=`du -sh /home/[ЮЗВЕРЬ]/Образы_разделов/image-sda5.img.gz | awk '{print $1}'`
#размер диска, с которого образ снимали
DriveSize=`df -h --output=size /dev/sda5 | tail -n1 | awk '{print $1}'`
zenity --info --text "Раздел sda5, содержащий в себе образ ОС Ubuntu 16.04.3,\nуспешно сохранен.\nРазмер исходного диска: $DriveSize\nРазмер полученного образа: $imSize\nПроцесс занял $h час $m мин $s сек"
fi
#!/bin/sh
#
# Восстановление sda1
#
if zenity --question --title="Восстановление системы" --text="Вы действительно хотите выполнить восстановление состояния диска sda1 из образа?\nДанный диск содержит в себе бинарные загрузчики операционных систем данного ноутбука. Операция не обратима.\nНЕ ВЫКЛЮЧАЙТЕ НОУТБУК В ПРОЦЕССЕ РАБОТЫ ПРОГРАММЫ"; then
START=$(date +%s)
DriveUsed=`df -h --output=used /dev/sda1 | tail -n1 | awk '{print $1}'`
#1. Отмонтировать EFI
echo /ПАРОЛЬ_ПОЛЬЗОВАТЕЛЯ/ | sudo -S -u root '/home/[ЮЗВЕРЬ]/.myOwnScripts/BackUp/MnT.sh' unmnt
#2. Восстановить состояние EFI
sh '/home/[ЮЗВЕРЬ]/.myOwnScripts/BackUp/what_to_do.sh' load sda1
#3. Смонтировать EFI
clear
echo "Выполняется монтирование раздела EFI..."
echo /ПАРОЛЬ_ПОЛЬЗОВАТЕЛЯ/ | sudo -S -u root '/home/[ЮЗВЕРЬ]/.myOwnScripts/BackUp/MnT.sh' mnt
echo "Работа программы закончена. Можно закрыть это окно"
#в сообщение вывести данные по образу (его размер) и время выполнения процесса
END=$(date +%s)
DIFF=$(( $END - $START ))
echo "It took $DIFF seconds"
h=$(( DIFF / 3600 ))
m=$(( ( DIFF / 60 ) % 60 ))
s=$(( DIFF % 60 ))
#размер образа
imSize=`du -sh /home/[ЮЗВЕРЬ]/Образы_разделов/image-sda1.img.gz | awk '{print $1}'`
#размер диска, с которого образ снимали
DriveSize=`df -h --output=size /dev/sda1 | tail -n1 | awk '{print $1}'`
DriveUsed1=`df -h --output=used /dev/sda1 | tail -n1 | awk '{print $1}'`
zenity --info --text "Раздел sda1, содержащий в себе образ загрузчика UEFI,\nуспешно восстановлен из образа.\nРазмер диска: $DriveSize\nРазмер образа: $imSize\nЗанято пространства на диске до развертывания образа: $DriveUsed\nЗанято пространства на диске после развертывания образа: $DriveUsed1\nПроцесс занял $h час $m мин $s сек"
fi
#!/bin/sh
#
# Восстановление sda2
#
if zenity --question --title="Восстановление системы" --text="Вы действительно хотите выполнить восстановление состояния диска sda2 из образа?\nДанный диск содержит в себе слепок состояния операционной системы\nUbuntu MATE 16.04.3 x64. Операция не обратима.\nНЕ ВЫКЛЮЧАЙТЕ НОУТБУК В ПРОЦЕССЕ РАБОТЫ ПРОГРАММЫ"; then
START=$(date +%s)
DriveUsed=`df -h --output=used /dev/sda2 | tail -n1 | awk '{print $1}'`
#2. Восстановить состояние
sh '/home/[ЮЗВЕРЬ]/.myOwnScripts/BackUp/what_to_do.sh' load sda2
echo "Работа программы закончена. Можно закрыть это окно"
#в сообщение вывести данные по образу (его размер) и время выполнения процесса
END=$(date +%s)
DIFF=$(( $END - $START ))
echo "It took $DIFF seconds"
h=$(( DIFF / 3600 ))
m=$(( ( DIFF / 60 ) % 60 ))
s=$(( DIFF % 60 ))
#размер образа
imSize=`du -sh /home/[ЮЗВЕРЬ]/Образы_разделов/image-sda2.img.gz | awk '{print $1}'`
#размер диска, с которого образ снимали
DriveSize=`df -h --output=size /dev/sda2 | tail -n1 | awk '{print $1}'`
DriveUsed1=`df -h --output=used /dev/sda2 | tail -n1 | awk '{print $1}'`
zenity --info --text "Раздел sda2, содержащий в себе настроенную Ubuntu MATE 16.04.3 x64,\nуспешно восстановлен из образа.\nРазмер диска: $DriveSize\nРазмер образа: $imSize\nЗанято пространства на диске до развертывания образа: $DriveUsed\nЗанято пространства на диске после развертывания образа: $DriveUsed1\nПроцесс занял $h час $m мин $s сек"
fi
#!/bin/sh
#
# Восстановление sda3
#
if zenity --question --title="Восстановление системы" --text="Вы действительно хотите выполнить восстановление состояния диска sda3 из образа?\nДанный диск содержит в себе слепок состояния операционной системы\nMS Windows 7 Ultimate x64. Операция не обратима.\nНЕ ВЫКЛЮЧАЙТЕ НОУТБУК В ПРОЦЕССЕ РАБОТЫ ПРОГРАММЫ"; then
START=$(date +%s)
DriveUsed=`df -h --output=used /dev/sda3 | tail -n1 | awk '{print $1}'`
#Восстановить состояние
sh '/home/[ЮЗВЕРЬ]/.myOwnScripts/BackUp/what_to_do.sh' load sda3
echo "Работа программы закончена. Можно закрыть это окно"
#в сообщение вывести данные по образу (его размер) и время выполнения процесса
END=$(date +%s)
DIFF=$(( $END - $START ))
echo "It took $DIFF seconds"
h=$(( DIFF / 3600 ))
m=$(( ( DIFF / 60 ) % 60 ))
s=$(( DIFF % 60 ))
#размер образа
imSize=`du -sh /home/[ЮЗВЕРЬ]/Образы_разделов/image-sda3.img.gz | awk '{print $1}'`
#размер диска, с которого образ снимали
DriveSize=`df -h --output=size /dev/sda3 | tail -n1 | awk '{print $1}'`
DriveUsed1=`df -h --output=used /dev/sda3 | tail -n1 | awk '{print $1}'`
zenity --info --text "Раздел sda3, содержащий в себе настроенную MS Windows 7 Ultimate x64,\nуспешно восстановлен из образа.\nРазмер диска: $DriveSize\nРазмер образа: $imSize\nЗанято пространства на диске до развертывания образа: $DriveUsed\nЗанято пространства на диске после развертывания образа: $DriveUsed1\nПроцесс занял $h час $m мин $s сек"
fi
#!/bin/sh
#
# Восстановление sda4
#
if zenity --question --title="Восстановление системы" --text="Вы действительно хотите выполнить восстановление состояния диска sda4 из образа?\nДанный диск содержит в себе слепок состояния операционной системы\nWiFi_SLAX 1.0 x64. Операция не обратима.\nНЕ ВЫКЛЮЧАЙТЕ НОУТБУК В ПРОЦЕССЕ РАБОТЫ ПРОГРАММЫ"; then
START=$(date +%s)
DriveUsed=`df -h --output=used /dev/sda4 | tail -n1 | awk '{print $1}'`
#Восстановить состояние
sh '/home/[ЮЗВЕРЬ]/.myOwnScripts/BackUp/what_to_do.sh' load sda4
echo "Работа программы закончена. Можно закрыть это окно"
#в сообщение вывести данные по образу (его размер) и время выполнения процесса
END=$(date +%s)
DIFF=$(( $END - $START ))
echo "It took $DIFF seconds"
h=$(( DIFF / 3600 ))
m=$(( ( DIFF / 60 ) % 60 ))
s=$(( DIFF % 60 ))
#размер образа
imSize=`du -sh /home/[ЮЗВЕРЬ]/Образы_разделов/image-sda4.img.gz | awk '{print $1}'`
#размер диска, с которого образ снимали
DriveSize=`df -h --output=size /dev/sda4 | tail -n1 | awk '{print $1}'`
DriveUsed1=`df -h --output=used /dev/sda4 | tail -n1 | awk '{print $1}'`
zenity --info --text "Раздел sda4, содержащий в себе настроенную WiFi_SLAX 1.0 x64,\nуспешно восстановлен из образа.\nРазмер диска: $DriveSize\nРазмер образа: $imSize\nЗанято пространства на диске до развертывания образа: $DriveUsed\nЗанято пространства на диске после развертывания образа: $DriveUsed1\nПроцесс занял $h час $m мин $s сек"
fi
#!/bin/sh
#
# Восстановление sda5
#
if zenity --question --title="Восстановление системы" --text="Вы действительно хотите выполнить восстановление состояния диска sda5 из образа?\nДанный диск содержит в себе слепок состояния операционной системы\nUbuntu 16.04.3 [x64]. Операция не обратима.\nНЕ ВЫКЛЮЧАЙТЕ НОУТБУК В ПРОЦЕССЕ РАБОТЫ ПРОГРАММЫ"; then
START=$(date +%s)
DriveUsed=`df -h --output=used /dev/sda5 | tail -n1 | awk '{print $1}'`
#Восстановить состояние
sh '/home/[ЮЗВЕРЬ]/.myOwnScripts/BackUp/what_to_do.sh' load sda5
echo "Работа программы закончена. Можно закрыть это окно"
#в сообщение вывести данные по образу (его размер) и время выполнения процесса
END=$(date +%s)
DIFF=$(( $END - $START ))
echo "It took $DIFF seconds"
h=$(( DIFF / 3600 ))
m=$(( ( DIFF / 60 ) % 60 ))
s=$(( DIFF % 60 ))
#размер образа
imSize=`du -sh /home/[ЮЗВЕРЬ]/Образы_разделов/image-sda5.img.gz | awk '{print $1}'`
#размер диска, с которого образ снимали
DriveSize=`df -h --output=size /dev/sda5 | tail -n1 | awk '{print $1}'`
DriveUsed1=`df -h --output=used /dev/sda5 | tail -n1 | awk '{print $1}'`
zenity --info --text "Раздел sda5, содержащий в себе настроенную Ubuntu 16.04.3 [x64],\nуспешно восстановлен из образа.\nРазмер диска: $DriveSize\nРазмер образа: $imSize\nЗанято пространства на диске до развертывания образа: $DriveUsed\nЗанято пространства на диске после развертывания образа: $DriveUsed1\nПроцесс занял $h час $m мин $s сек"
fi
#!/bin/sh
#
# Сохранение образа диска
# Механизм копирования описан здесь: https://forum.ubuntu.ru/index.php?topic=241919.msg2020282#msg2020282
#
Arg=${1#-}
DoIsp=`ls -l -h $HOME/Образы_разделов/image-$Arg.img.gz`
if [ -f $HOME/Образы_разделов/image-$Arg.img.gz ]; then
ImageSize=`ls -sh $HOME/Образы_разделов/image-$Arg.img.gz`
echo "Удаляем ранее сохраненный образ для высвобождения дискового пространства..."
rm -rf $HOME/Образы_разделов/image-$Arg.img.gz;
else
ImageSize="0 Gb [образ не создавался]"
fi
echo $DoIsp
DriveInfo=`blkid /dev/$Arg`
freeSpace=`df -h --output=source,avail,used,pcent $HOME`
clear #очистка ранее введенного текста в текущем окне терминала
echo " Сохранение диска $Arg в образ.\n Информация о сохраняемом диске:\n $DriveInfo \n Текущее состояние образа: \n $ImageSize \n Свободное место: \n $freeSpace \n Текущее состояние операции:"
echo ""
#снятие сжатого образа и сохранение его в соответствующей директории
#вариант с установленным сторонним ПО bar:
#dd if=/dev/$Arg | bar | gzip - | dd of=$HOME/Образы_разделов/image-$Arg.img.gz
#вариант с постоянным выводом кучи ненужной инфы, забивающей консоль:
dd if=/dev/$Arg | gzip - | dd of=$HOME/Образы_разделов/image-$Arg.img.gz &
pid=$!
while ps -p $pid > /dev/null;
do
killall -USR1 dd;
sleep 10;
clear;
freeSpace=`df -h --output=source,avail,used,pcent $HOME`
ImageSize=`ls -sh $HOME/Образы_разделов/image-$Arg.img.gz`
echo " Сохранение диска $Arg в образ.\n Информация о сохраняемом диске:\n $DriveInfo \n Текущее состояние образа: \n $ImageSize \n Свободное место: \n $freeSpace \n Текущее состояние операции:"
echo "";
done
echo ""
PoIsp=`ls -l -h $HOME/Образы_разделов/image-$Arg.img.gz`
echo ""
echo "Файл-образ image-$Arg.img.gz сохранен"
echo ""
echo "Прежний файл-образ (если пусто - не создавался):\n $DoIsp"
echo "Текущий файл-образ (если пусто - ошибка в ходе создания):\n $PoIsp"
echo ""
echo ""
#!/bin/sh
#
# Восстановление образа диска
# Механизм копирования описан здесь: https://forum.ubuntu.ru/index.php?topic=241919.msg2020282#msg2020282
Arg=${1#-}
DoIsp=`blkid /dev/$Arg`
ExtendInfo=`df -h --output=source,avail,used,pcent /dev/$Arg`
clear #очистка ранее введенного текста в текущем окне терминала
echo " Восстановление диска $Arg из образа. \n Информация о восстанавливаемом диске (до восстановления): \n $DoIsp \n Использование диска: \n $ExtendInfo \n Текущее состояние операции:"
echo ""
# восстановление состояния диска из снятого ранее образа:
#вариант со сторонним ПО bar
#dd if=$HOME/Образы_разделов/image-$Arg.img.gz | bar | gunzip - | dd of=/dev/$Arg
#вариант с перезаполнением консоли:
dd if=$HOME/Образы_разделов/image-$Arg.img.gz | gunzip - | dd of=/dev/$Arg &
pid=$!
while ps -p $pid > /dev/null;
do
killall -USR1 dd;
sleep 10;
clear;
ExtendInfo=`df -h --output=source,avail,used,pcent /dev/$Arg`
clear #очистка ранее введенного текста в текущем окне терминала
echo " Восстановление диска $Arg из образа. \n Информация о восстанавливаемом диске (до восстановления): \n $DoIsp \n Использование диска: \n $ExtendInfo \n Текущее состояние операции:"
echo "";
done
PoIsp=`blkid /dev/$Arg`
echo ""
echo "Восстановление состояния диска из образа завершено."
echo ""
echo "Данные по диску до восстановления:\n $DoIsp"
echo "Данные по диску после восстановления:\n $PoIsp"
ExtendInfo=`df -h --output=source,avail,used,pcent /dev/$Arg`
echo "Оценка использования дискового пространства после восстановления:\n $ExtendInfo"
echo ""
echo ""
#!/bin/sh
# монтировани/размонтирование раздела.
# нужен для обхода ограничений в правах
#
case "$1" in
mnt)
mount /dev/sda1 /boot/efi
echo "Диск sda1 смонтирован в директорию /boot/efi";;
unmnt)
umount /boot/efi
echo "Директория /boot/efi отмонтирована";;
esac
#!/bin/sh
#
# Тут вводятся комментарии.
#
mplayer ./Notify.mp3
#!/bin/sh
#
# Что-то типа "О программе"
#
zenity --info --text "Утилита для резервного копирования операционных систем\nи последующего восстановления их из образов.\nЗапустите нужную Вам функцию из контекстного меню Unity"