Backup
В один поток:
sudo tar -cvpzf - --exclude=/mnt --exclude=/sys --exclude=/run --exclude=/dev --exclude=/proc --exclude=/media --exclude=/tmp --exclude=/var/log/lastlog --exclude=/home/local/RIMOS_NT_01/usikmi/Desktop/Shared --exclude=/home/local/RIMOS_NT_01/usikmi/Desktop/W --exclude=/var/lib/libvirt/qemu/save/Win2008.save / | openssl enc -aes-192-cbc -pass pass:xxx -out /mnt/sdb1/backup_$(date +"%d.%m.%y_%H-%M").tar.gz.enc
В несколько потоков с помощью pigz:
sudo apt-get install pigz
sudo tar -cvpf - --use-compress-program=pigz --exclude=/mnt --exclude=/sys --exclude=/run --exclude=/dev --exclude=/proc --exclude=/media --exclude=/tmp --exclude=/var/log/lastlog --exclude=/home/local/RIMOS_NT_01/usikmi/Desktop --exclude=/var/lib/libvirt / | openssl enc -aes-192-cbc -pass pass:xxx -out /mnt/hdd/backup_$(date +"%d.%m.%y_%H-%M").tar.gz.enc
Backup по расписанию
/etc/cron.daily/backup
Скрипт бекапит систему в заданную папку и следит за количеством файлов бекапа.
#!/bin/bash backup_depth_days=14 backup_path='/mnt/hdd' backup_prefix='backup_' backup_files=`ls $backup_path/$backup_prefix* -t` backup_files=(${backup_files// / }) if [[ ${#backup_files[@]} -gt $backup_depth_days ]]; then for ((i = $backup_depth_days; i < ${#backup_files[@]}; i++)) { sudo rm -r -f ${backup_files[$i]} } fi sudo tar -cvpf $backup_path/$backup_prefix$(date +"%d.%m.%y_%H-%M").tar.gz --use-compress-program=pigz --exclude=/mnt --exclude=/sys --exclude=/run --exclude=/dev --exclude=/proc --exclude=/media --exclude=/tmp --exclude=/var/log/lastlog --exclude=/home/RDLEAS/usik.ma/Downloads /
Restore
Загружаемся с Live-CD.
Восстановление на тот же раздел
При восстановлении на тот же раздел форматируем его с сохранением UUID (чтобы не переписывать /etc/fstab):
sudo mkfs.ext4 -L "label" -U "$(sudo blkid -o value -s UUID /dev/sdXy)" /dev/sdXy
Монтируем раздел:
mkdir /mnt/restore mount /dev/sdXy /mnt/restore
Расшифровываем и распаковываем файлик бекапа:
openssl enc -in /mnt/sdb1/backup_.tar.gz.enc -d -aes-192-cbc -pass pass:1q2w3e4R1 | sudo tar --same-owner -xzvpf - -C /mnt/restore
На всякий случай (не обязательно) восстанавливаем grub:
sudo grub-install --root-directory=/mnt/restore /dev/sdX
Обязательно создаем снова папки, которые были исключены при копировании:
sudo mkdir /mnt/restore/{mnt,sys,run,dev,proc,media,tmp} sudo touch /mnt/restore/var/log/lastlog
Даем права на /tmp (иначе не запустятся иксы):
sudo chmod -R a+rw /mnt/restore/tmp
Восстановление на другой диск
Разбиваем диск fdisk'ом. Делаем загрузочный раздел активным. Форматируем и монтируем:
sudo mkfs.ext4 /dev/sdXy mount /dev/sdXy /mnt/restore
Распаковываем файлик бекапа:
openssl enc -in /mnt/sdb1/backup_.tar.gz.enc -d -aes-192-cbc -pass pass:1q2w3e4R1 | sudo tar --same-owner -xzvpf - -C /mnt/restore
Обязательно создаем снова папки, которые были исключены при копировании:
sudo mkdir /mnt/restore/{mnt,sys,run,dev,proc,media,tmp} sudo touch /var/log/lastlog
Даем права на /tmp (иначе не запустятся иксы):
sudo chmod -R a+rw /tmp
Обязательно восстанавливаем grub:
sudo grub-install --root-directory=/mnt/restore /dev/sdX
После установки grub нужно пересоздать файлик конфигурации /boot/grub/grub.cfg. Без этого шага при загрузке будет появляться сообщение типа:
Gave up waiting for root device.
ALERT: /dev/disk/by-uuid/… does not exist. Dropping to a shell!.
Итак пересоздаем grub.cfg.
sudo mount --bind /dev /mnt/restore/dev sudo mount --bind /proc /mnt/restore/proc sudo mount --bind /sys /mnt/restore/sys sudo chroot /mnt/restore sudo mv /boot/grub/grub.cfg /boot/grub/grub.cfg.old sudo grub-mkconfig -o /boot/grub/grub.cfg exit
И последний штрих - переписываем UUID разделов в /etc/fstab, вернее в /mnt/restore/etc/fstab. Узнать новые UUID разделов можно командой:
blkid /dev/sdXy
Все. Теперь можно перезагрузиться в восстановленную систему.
Проблемы и их решения
Не стартуют иксы
Надо смотреть на ошибки, но скорее всего, нет доступа на запись в папку /tmp выпоняем:
sudo chmod -R a+rw /tmp
lightdm
При запуске KDE я столкнулся с проблемой запуска lightdm. При старте не появляется Login Screen где нужно выбрать пользователя и ввести пароль. Вместо него - черный экран. При попытке запустить lightdm он сообщает что:
Error getting user list from org.freedesktop.Accounts
Failed to execute program /usr/lib/dbus-1.0/dbus-daemon-launch-helper: Success
Тут помогла простая переустановка всех пакетов связанных с Lightdm. В моем случае так:
sudo apt-get install --reinstall liblightdm-gobject-1-0 liblightdm-qt-3-0 lightdm lightdm-kde-greeter
PBIS AD
Кроме того, машинка была в домене и из домена вылетела. Вводим ее обратно с помощью PowerBroker (PBIS):
sudo /opt/pbis/bin/domainjoin-cli join domainName ADjoinAccountName
Ошибка
Error getting authority: Error initializing authority: Error calling StartServiceByName for org.freedesktop.PolicyKit1: GDBus.Error:org.freedesktop.DBus.Error.Spawn.ExecFailed: Failed to execute program /usr/lib/dbus-1.0/dbus-daemon-launch-helper: Permission denied
chmod a+x /usr/lib/dbus-1.0/dbus-daemon-launch-helper
Discussion