Проблема: есть ОС Ubuntu на удаленном компьютере, сыпется винчестер, с каждый днем загружается все хуже и хуже (перед каждым запуском надо пробегаться fsck c исправлениями). Зачастую загружается в read-only режиме, sudo не помогает писать в него. Из небольшой инфраструктуры разбросанных по городам компьютеров это 1 из 9 компьютеров, где важен не только бэкап базы данных и home директории, но и все установленные и перенастроенные пакеты.
Решение: сделать полный бэкап файловой системы, залить на новый жесткий диск и отправить посылкой для замены. Далее подробнее.
Проблема: есть ОС Ubuntu на удаленном компьютере, сыпется винчестер, с каждый днем загружается все хуже и хуже (перед каждым запуском надо пробегаться fsck c исправлениями). Из небольшой инфраструктуры разбросанных по городам компьютеров это 1 из 9 компьютеров, где важен не только бэкап базы данных и home директории, но и все установленные и перенастроенные пакеты.
Решение: сделать полный бэкап файловой системы, залить на новый жесткий диск и отправить посылкой для замены.
SSH доступ к компьютеру
У каждого свой вариант подключения к удаленному ssh, т.к. у меня 1 выделенный IP на все 9 компьютеров разбросанных по городам, работаю через "посредника" в лице роутера с dd-wrt и ssh туннелями. Подробнее писал в статье "удаленное управление ssh", поэтому в этой не буду подробно описывать строки связанные с установкой туннеля, но вероятно, буду их указывать.
Делаем архив системы
Вариант с полной копией ФС не подходит, диск "больного" большой, но почти пустой, с dd пришлось бы лить по сети сотни ГБ данных. Поэтому делаем tar.gz с архивом файлов.
На "больном" компьютере:
tar -cvpzf backup.tar.gz --exclude=/backup.tar.gz --one-file-system /
(подробности в этой статье)
Скачиваем архив
Файл выходит большой поэтому вместо стандартного scp используем rsync с опцией partial, что поможет нам докачивать файл при обрывах.
#пробрасываем локальный порт на нужный порт роутера autossh -M 0 -fNgX -L 5529:localhost:5529 root@ВВВ.ААА.ШШШ.ИПП #скачиваем себе файл rsync --partial --progress --rsh="ssh -p5529" toopro@localhost:/remote/dir/backup.tar.gz /local/dir/backup.tar.gz
где 5529 порт с ssh "больного" компьютера, toopro - имя пользователя
Ждем загрузки.
Совет. Для проверки целостности скачанного файла можно сравнить его хеш. Для этого на обоих компьютерах для файла возьмем sha хэш с помощью команды:
sha1sum backup.tar.gz (нужно будет подождать). Если оба хеша равны, вы имеете одинаковые файлы.
Распаковываем архив
Для распаковки, подключите новый винчестер, разбейте его, подключите раздел, на который нужно записать систему. В GUI версии для подключения раздела нужно просто зайти на него в файловом менеджере. В адресной строке вы увидите что-то типа:
/media/toopro/1fa75349-3ac0-4787-bec3-5bfc35ec46ae
Распаковываем наш бэкап операционной системы в эту папку:
sudo tar -xvpzf backup.tar.gz -C /media/toopro/1fa75349-3ac0-4787-bec3-5bfc35ec46ae --numeric-owner
Замечание. В моем случае, полный бэкап не хотел распаковываться. Вылетала ошибка, несмотря на то, что хеши совпадали. Пришлось перекидывать по частям.
- Log in to post comments