Переустановите базовую Ubuntu без форматирования или удаления установленных вручную пакетов.

10

Поскольку я слишком много играл с предлагаемым репозиторием (14.04), я хочу вернуться к шагу 1: удалить все пакеты в системе, кроме тех, которые я установил вручную, и переустановить базовую систему, без необходимости переустанавливать ,

В принципе, есть ли безопасный и удаленный доступ через ssh:

  • удалить все пакеты, кроме установленных вручную
  • переустановите все из ядра в ubuntu-desktop(желательно автоматически, без каких-либо дополнительных пакетов, помеченных как установленные вручную)
  • установить зависимости установленных вручную пакетов

NB. Я намеренно пропустил в надежде получить ответы, не относящиеся к какой-либо конкретной версии.


Кажется, я не описал то, что хочу, достаточно просто, я думаю, что эти два пункта позволят позаботиться о вышеизложенном:

  • очистить все автоматически установленные пакеты (@kos ответил, что на ответ @ Fabby)
  • установить пакеты, которые составляют новую установку Ubuntu

И я думаю, если зависимости установленных вручную пакетов действительно будут удалены, apt-get -fпоможет мне с ними.

Oxwivi
источник
1. все ли файлы нужно сохранить в / home? 2. сеть стабильна? Если бы вы переместили свои пользовательские файлы или все, что вам нужно сохранить, могли бы вы переписать все и легко переместить пользовательские файлы обратно? Также. PXE включен? и есть ли в BIOS средства поддержки виртуализации?
j0h
@ j0h 1. Ничего важного в этом нет /home, но есть важные настройки в пакетах, установленных вручную, 2. Да, но, как я уже сказал, пользовательские файлы не являются проблемой, 3. Да, он включен, 4. И да, есть также поддержка виртуализации. ,
Oxwivi
Это немного выше моего уровня знаний, но не будет ли проще получить список пакетов из новой установки, сравнить его с текущей установкой, чтобы получить список всего добавленного. Затем выполните новую установку и автоматически добавьте обратно все пользовательские элементы - возможно, с восстановлением некоторых или всех файлов конфигурации в $ HOME? Вы получаете списки, выполняя dpkg -l. Это, вероятно, пометит многие дополнительные компоненты как установленные вручную, а не как зависимости, которые могут исчезнуть, если пакет, который нуждался в них, будет удален позже.
Джо

Ответы:

5

На будущее:

Если у вас есть удаленный сервер в центре обработки данных на расстоянии 1000 миль, вам лучше установить коммутатор IPKVM, чтобы вам не пришлось полагаться только на sshнего.

Если сервер находится на горе Эверест: добавьте телефон Iridium и модем ...

Затем вы можете иметь загрузочный раздел FAT CloneZilla размером 512 МБ на этом компьютере (я использую USB-флешку SLC ) и использовать консоль для загрузки на него и создать резервную копию образа вашего системного раздела (разделов) на диске с данными, а затем скопировать предыдущий образ системы на дополнительном разделе вашего USB-накопителя перед началом добавления trusty-proposedна сервер . (Я храню большинство резервных копий моей системы на диске данных: они занимают всего 6 ГБ)

Теперь:

  • Возьмите apt-резервную копию
  • Пройдите через /var/log/apt/history*
  • Создайте свой собственный автоматический скрипт, который выполняет apt-get purgeвсе то, что вам действительно не нужно / больше не нужно из данных предыдущего шага
  • Выполните сценарий, молясь Линусу Торвальдсу
  • Обновите свои репозитории так, как вы хотите (например, удаление trusty-proposed)
  • Перезагрузитесь, молясь Ричарду из Столлманов
  • Если все работает: внедрите решение коммутатора IPKVM выше.
Fabby
источник
Нет автоматической команды удалить все, кроме this that? :( Коммутатор IPKVM поставляется с функцией динамического DNS? В этом случае
ничего не стоит
Выше приведено самое автоматическое. Полностью автоматический, как точка восстановления Windows: нет, для этого и нужны резервные копии системы ... Коммутаторы IPKVM могут использовать DHCP, поэтому с помощью внешней службы динамического DNS: «да, вроде» ...
Fabby
Нет, я ненавижу точку восстановления Windows. Понятия не имею, что там происходит. (Более того, я ненавижу всю чертову линейку продуктов Windows). Единственная автоматическая часть, которую я хочу, это выяснить все ручные пакеты и команду удалить все, кроме них.
Oxwivi
Я удалил Windows около 2 лет назад ... Вы даже пытались заглянуть в history.log??? : P
Fabby
@Oxwivi Вы хотите apt-mark showauto, и очистить всю упаковку на выходе путем подачи списка apt-cache purge: apt-mark showauto | xargs sudo apt-get --dry-run purge. Я добровольно добавил --dry-runпереключатель на случай, если у вас возникнет желание попробовать его, чтобы вы могли реально увидеть, что происходит: что-то подобное нарушает вашу установку, поскольку удаляет каждый пакет, зависящий от любого из пакетов, удаленных командой . Просто посмотрите на результат пробного прогона.
Кос
1

ОК, мой ответ предполагает, что вы можете, и сделали резервную копию вашего пользовательского каталога и всего, что вы хотите сохранить. что сводит ваш вопрос к тому, как мне установить Ubuntu на удаленный сервер? Для которого есть много решений.

Для этого вы можете использовать DRBL для удаленного развертывания операционной системы с различными вариантами загрузки. Вы можете посмотреть это здесь: http://drbl.org/installation/

Есть Клоббер: http://cobbler.github.io/manuals/quickstart/

Существует cloneZilla, которая может выполнять резервное копирование и восстановление по сети. Ссылка для Windows, но те же методы применяются для Linux. Кроме того, вы можете создать загрузочный образ Ubuntu локально и установить его с помощью clonezilla. http://opensourceforu.efytimes.com/2013/12/restore-partitions-network-using-clonezilla/

В качестве альтернативы, вы можете попробовать использовать dd_rescue или netcat

Полезным термином поиска может быть «Предоставление сервера». Есть больше вариантов, чем эти.

Есть и методы грубой силы.

$ ls /
bin  boot  cdrom  dev  etc  home  initrd.img  initrd.img.old  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var  vmlinuz  vmlinuz.old

и ваш путь был так:

echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

если бы ваш корневой каталог был чем-то вроде этого, если вы переписали / etc и / usr с «чистыми» версиями, вы перезаписали бы почти все части установленного программного обеспечения и файлы конфигурации для него. Это было бы по меньшей мере хакерской, если не совсем ужасной идеей. Работать apt-get purgeбыло бы намного безопаснее, или, возможно, вы могли бы немного подстроить процесс. Затем вы можете также захотеть включить клон вашего старого конфигурационного файла ssh в / etc / ssh / перед попыткой перезапустить сервисы с новыми конфигурационными файлами.

Существует также инструмент, который позволяет вывести работающее ядро ​​и выполнить обновление без перезагрузки. Для этого вы можете проверить Kslpice, или kGraft

Если у вас все проблемы с репозиториями и управлением пакетами, я не уверен, почему вы захотите сбросить ядро, mbr, загрузочный раздел и т. Д.

Так что, как бы то ни было, я надеюсь, что дал вам несколько идей для изучения. Существует много способов удаленного развертывания сервера.

j0h
источник