LINUX.ORG.RU

Переустановить Ubuntu Server... По SSH... На разделе ZFS...

 , ,


0

1

Всем привет!

Ссыкотно начинать без консультаций ЛОРа. Есть сервер на Ubuntu Server 17.10 с ФС ZFS, внезапно положил тунца на снапшоты около года не делая их. И в один прекрасный момент решил накатить iRedMail, который сломал к херам iptables, зависимости и сервер MySQL, который теперь не (пере)устанавливается. Ну и эпично обновился до 18.04, выдернув не тот шнур питания на половине процесса обновления ;_;.

После всё таки забэкапил данные и так как дома только сплю, то хотел бы восстановить сервер по SSH. Кстати разметка такая:

$ sudo zfs list
NAME                USED  AVAIL  REFER  MOUNTPOINT
rpool               390G  4,86T   128K  /
rpool/ROOT         14,1G  4,86T   128K  none
rpool/ROOT/ubuntu  14,1G  4,86T  13,2G  /
rpool/home         21,4M  4,86T   128K  /home
rpool/home/anton   21,1M  4,86T  21,1M  /home/anton
rpool/home/root     165K  4,86T   165K  /root
rpool/srv          52,4M  4,86T  52,4M  /srv
rpool/storage       370G  4,86T   370G  /storage
rpool/swap         4,25G  4,86T  2,86G  -
rpool/var          2,02G  4,86T   128K  /var
rpool/var/cache     870M  4,86T   870M  /var/cache
rpool/var/log      1,15G  4,86T  1,15G  legacy
rpool/var/mail      128K  4,86T   128K  /var/mail
rpool/var/spool    23,8M  4,86T  23,8M  /var/spool
rpool/var/tmp       181K  4,86T   181K  legacy

Как я вижу решение проблемы:

  1. Подключаемся к серверу по SSH и ставим debootstrap.
  2. Через него ставим в директорию ~/new_ubuntu например 18.04.
  3. chroot в ~/new_ubuntu- до устанавливаем и настраиваем необходимые пакеты (ssh, например).
  4. Копируем из ~/new_ubuntu в rpool/ROOT/ubuntu (нужно ли предварительно очистить?!)
  5. Обновляем загрузчик
  6. reboot и удаляем ~/new_ubuntu
  7. Работаем в новой и чистой ОС

Прокатит ли так? Да и может есть какие-то более простые способы сбросить бубунту в нуль?

Прокатит ли так?

Попробуй.

Да и может есть какие-то более простые способы сбросить бубунту в нуль?

Есть, но судя по выхлопу zfs list, снапшотов ты не делал, потому остаётся только страдать переустанавливать Шindoшs Ubuntu.

Установи убунту и сделай снапшот чистой системы (zfs и компанию предварительно не забудь установить). Затем установи всё, что тебе нужно и снова сделай снапшот. Можешь выставить в crontab создание снапшотов раз в неделю.

r3lgar ★★★★★ ()

Лучше скажи, что и как сломалось - дешевле и менее опасно будет исправить ошибки, нежели переставлять удаленно что-то на zfs

zgen ★★★★★ ()
Ответ на: комментарий от iZEN

zfs list -t snapshot -r rpool

Кстати, что-то есть version1 - это совсем сразу после установки, а gitlab1 - это вроде когда я всё что нужно настроил.

$ zfs list -t snapshot -r rpool
NAME                         USED  AVAIL  REFER  MOUNTPOINT
rpool@gitlab                   0B      -   128K  -
rpool/ROOT/ubuntu@version1  6,20M      -   643M  -
rpool/ROOT/ubuntu@gitlab1    260M      -   898M  -
AntonyRF ()
Ответ на: комментарий от iZEN

Откуда такая увереность?

Не помню, как ведёт себя zfs во фряхе (под рукой сейчас её нет), но с ZFSonLinux вот так:

 # zfs list
NAME                       USED  AVAIL  REFER  MOUNTPOINT
rp                        20.1G  87.4G    96K  none
rp/gentoo                 7.51G  87.4G  3.61G  /
rp/gentoo@stage4_minimal   570M      -  1.13G  -
rp/gentoo@2017.10.28       490M      -  1.09G  -
rp/gentoo@2018.02.11      2.31G      -  2.63G  -
rp/source                 11.9G  87.4G  11.9G  /usr/source
rp/users                   646M  87.4G   646M  /home
То есть, как видишь, по умолчанию снапшоты кажет.

r3lgar ★★★★★ ()
Ответ на: комментарий от redgremlin

Если есть доступ по ссш, то проще и быстрее починить.

Тащемта mysql-server для начала бы установить, но с этим беда =(


Необходимо скачать 0 B/3 200 kB архивов.
После данной операции, объём занятого дискового пространства возрастёт на 48,4 MB.
Хотите продолжить? [Д/н] y
Предварительная настройка пакетов ...
(Чтение базы данных … на данный момент установлено 228987 файлов и каталогов.)
Подготовка к распаковке …/mysql-server-5.7_5.7.22-0ubuntu18.04.1_amd64.deb …
Failed to stop mysql.service: Unit mysql.service not loaded.
invoke-rc.d: initscript mysql, action "stop" failed.
invoke-rc.d returned 5
There is a MySQL server running, but we failed in our attempts to stop it.
Stop it yourself and try again!
dpkg: ошибка при обработке архива /var/cache/apt/archives/mysql-server-5.7_5.7.22-0ubuntu18.04.1_amd64.deb (--unpack):
 new mysql-server-5.7 package pre-installation script subprocess returned error exit status 1
Выбор ранее не выбранного пакета mysql-server.
Подготовка к распаковке …/mysql-server_5.7.22-0ubuntu18.04.1_all.deb …
Распаковывается mysql-server (5.7.22-0ubuntu18.04.1) …
При обработке следующих пакетов произошли ошибки:
 /var/cache/apt/archives/mysql-server-5.7_5.7.22-0ubuntu18.04.1_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

Что бы это значило?

AntonyRF ()
Ответ на: комментарий от redgremlin

Кстати, при удалении

:~$ sudo apt-get remove --purge mysql-server mysql-client mysql-common
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Возможно, для исправления этих ошибок вы захотите воспользоваться «apt-get -f install».
Пакеты, имеющие неудовлетворённые зависимости:
 libmysqlclient20 : Зависит: mysql-common (>= 5.5) но он не будет установлен
 mysql-client-5.7 : Зависит: mysql-common (>= 5.5) но он не будет установлен
E: Неудовлетворённые зависимости. Попытайтесь выполнить «apt --fix-broken install», не указывая имени пакета, (или найдите другое решение).

apt --fix-broken install => не помогает, кажется, это баг из 17.10

UPD: Удалил по очереди успешно

AntonyRF ()
Последнее исправление: AntonyRF (всего исправлений: 1)
Ответ на: комментарий от AntonyRF

После удаления всего, связанного с mysql, включая либы, и начинай чинить пакетную систему — apt-get dist-upgrade. Если есть ещё ppa, то сначала все отключить, все пакеты из них тоже снести, потом доставишь.

redgremlin ★★★★★ ()
Последнее исправление: redgremlin (всего исправлений: 1)
Ответ на: комментарий от redgremlin

Удалил все от mysql, следующим образом

sudo apt-get purge mysql-server 
sudo apt-get purge mysql-client
sudo apt-get purge mysql-common
sudo apt-get autoremove
sudo apt-get autoclean
sudo cp -R /var/lib/mysql /var/lib/mysql2
sudo rm -rf /var/lib/mysql
systemctl reboot

и начинай чинить пакетную систему — apt-get dist-upgrade.

Сделал, скачивает 90мб и устанавливает, ppa проверю, но вроде не было. А дальше, что?

AntonyRF ()
Ответ на: комментарий от redgremlin

UPD: В /etc/apt/source.list всё нормально?

deb http://archive.ubuntu.com/ubuntu cosmic main universe
deb-src http://archive.ubuntu.com/ubuntu cosmic main universe

deb http://security.ubuntu.com/ubuntu cosmic-security main universe
deb-src http://security.ubuntu.com/ubuntu cosmic-security main universe

deb http://archive.ubuntu.com/ubuntu cosmic-updates main universe
deb-src http://archive.ubuntu.com/ubuntu cosmic-updates main universe

Да вот хз, gitlab был с mariadb, а nextcloud + wordpress с mysql-server

AntonyRF ()
Ответ на: комментарий от redgremlin

А дальше у тебя будет рабочая 18.04 без левых пакетов и можно будет уже ставить то, что хотел.

Чёт не встало

$ sudo apt-get install mysql-server
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Будут установлены следующие дополнительные пакеты:
  libaio1 libevent-core-2.1-6 libhtml-template-perl mysql-client-5.7
  mysql-client-core-5.7 mysql-common mysql-server-5.7 mysql-server-core-5.7
Предлагаемые пакеты:
  libipc-sharedcache-perl mailx tinyca
НОВЫЕ пакеты, которые будут установлены:
  libaio1 libevent-core-2.1-6 libhtml-template-perl mysql-client-5.7
  mysql-client-core-5.7 mysql-common mysql-server mysql-server-5.7
  mysql-server-core-5.7
Обновлено 0 пакетов, установлено 9 новых пакетов, для удаления отмечено 0 пакето                                                                                                                                                             в, и 0 пакетов не обновлено.
Необходимо скачать 0 B/20,4 MB архивов.
После данной операции, объём занятого дискового пространства возрастёт на 160 MB                                                                                                                                                             .
Хотите продолжить? [Д/н] y
Предварительная настройка пакетов ...
Выбор ранее не выбранного пакета mysql-common.
(Чтение базы данных … на данный момент установлено 220138 файлов и каталогов.)
Подготовка к распаковке …/0-mysql-common_5.8+1.0.4_all.deb …
Распаковывается mysql-common (5.8+1.0.4) …
Выбор ранее не выбранного пакета libaio1:amd64.
Подготовка к распаковке …/1-libaio1_0.3.110-5_amd64.deb …
Распаковывается libaio1:amd64 (0.3.110-5) …
Выбор ранее не выбранного пакета mysql-client-core-5.7.
Подготовка к распаковке …/2-mysql-client-core-5.7_5.7.22-0ubuntu18.04.1_amd64.de                                                                                                                                                             b …
Распаковывается mysql-client-core-5.7 (5.7.22-0ubuntu18.04.1) …
Выбор ранее не выбранного пакета mysql-client-5.7.
Подготовка к распаковке …/3-mysql-client-5.7_5.7.22-0ubuntu18.04.1_amd64.deb …
Распаковывается mysql-client-5.7 (5.7.22-0ubuntu18.04.1) …
Выбор ранее не выбранного пакета mysql-server-core-5.7.
Подготовка к распаковке …/4-mysql-server-core-5.7_5.7.22-0ubuntu18.04.1_amd64.de                                                                                                                                                             b …
Распаковывается mysql-server-core-5.7 (5.7.22-0ubuntu18.04.1) …
Выбор ранее не выбранного пакета libevent-core-2.1-6:amd64.
Подготовка к распаковке …/5-libevent-core-2.1-6_2.1.8-stable-4build1_amd64.deb …
Распаковывается libevent-core-2.1-6:amd64 (2.1.8-stable-4build1) …
Настраивается пакет mysql-common (5.8+1.0.4) …
update-alternatives: используется /etc/mysql/my.cnf.fallback для предоставления                                                                                                                                                              /etc/mysql/my.cnf (my.cnf) в автоматическом режиме
(Чтение базы данных … на данный момент установлено 220305 файлов и каталогов.)
Подготовка к распаковке …/mysql-server-5.7_5.7.22-0ubuntu18.04.1_amd64.deb …
Failed to stop mysql.service: Unit mysql.service not loaded.
invoke-rc.d: initscript mysql, action "stop" failed.
invoke-rc.d returned 5
There is a MySQL server running, but we failed in our attempts to stop it.
Stop it yourself and try again!
dpkg: ошибка при обработке архива /var/cache/apt/archives/mysql-server-5.7_5.7.2                                                                                                                                                             2-0ubuntu18.04.1_amd64.deb (--unpack):
 new mysql-server-5.7 package pre-installation script subprocess returned error                                                                                                                                                              exit status 1
Выбор ранее не выбранного пакета libhtml-template-perl.
Подготовка к распаковке …/libhtml-template-perl_2.97-1_all.deb …
Распаковывается libhtml-template-perl (2.97-1) …
Выбор ранее не выбранного пакета mysql-server.
Подготовка к распаковке …/mysql-server_5.7.22-0ubuntu18.04.1_all.deb …
Распаковывается mysql-server (5.7.22-0ubuntu18.04.1) …
При обработке следующих пакетов произошли ошибки:
 /var/cache/apt/archives/mysql-server-5.7_5.7.22-0ubuntu18.04.1_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

AntonyRF ()

Ладно товарищи, всем спасибо. Пробую ролбэкнуться

zfs rollback rpool/ROOT/ubuntu@gitlab1 && systemctl reboot

UPD:

# zfs rollback rpool/ROOT/ubuntu@gitlab1 && systemctl reboot
Failed to reboot system via logind: Message recipient disconnected from message bus without replying

AntonyRF ()
Последнее исправление: AntonyRF (всего исправлений: 1)
Ответ на: комментарий от AntonyRF

Ну жеваный крот. Идешь в /var/lib/dpkg/info/, ищешь инсталяционные скрипты нужного пакета, запускаешь их с bash -x и смотришь какие там реально ошибки возникают, исправляешь ошибки руками и весело едешь дальше.

slowpony ()