Ponownie zainstaluj podstawowe Ubuntu bez formatowania ani usuwania ręcznie instalowanych pakietów

10

Ponieważ zbyt dużo bawiłem się z proponowanym repozytorium (14.04), chcę wrócić do kroku 1: usuń wszystkie pakiety w systemie oprócz tych, które ręcznie zainstalowałem i ponownie zainstaluj system podstawowy, bez konieczności ponownej instalacji .

Zasadniczo, czy jest mimo to bezpieczny i zdalny dostęp przez ssh:

  • usuń wszystkie pakiety oprócz ręcznie zainstalowanych
  • zainstaluj ponownie wszystko od jądra do ubuntu-desktop(najlepiej automagicznie, bez zaznaczania kolejnych pakietów jako zainstalowane ręcznie)
  • zainstaluj zależności od ręcznie zainstalowanych pakietów

Uwaga: Celowo w nadziei na uzyskanie odpowiedzi niespecyficznych dla jakiejkolwiek konkretnej wersji.


Wydaje się, że nie opisałem tego, czego chcę po prostu, myślę, że te dwa punkty zajęłyby się powyższym:

  • wyczyść wszystkie automatycznie zainstalowane pakiety (@kos odpowiedział, że na odpowiedź @ Fabby)
  • zainstaluj pakiety, które składają się na nową instalację Ubuntu

I zgaduję, czy zależności ręcznie zainstalowane pakiety zostaną odinstalowane, apt-get -fpomoże mi z nimi.

Oxwivi
źródło
1. Czy wszystkie pliki musisz zapisać w / home? 2. czy sieć jest stabilna? Gdybyś chciał przenieść pliki użytkownika lub cokolwiek, co musisz zapisać, czy mógłbyś zapisać wszystko i łatwo przenieść pliki użytkownika z powrotem? Również. czy włączono PXE? i czy w BIOS-ie są narzędzia do obsługi wirtualizacji?
j0h
@ j0h 1. Nic ważnego w /home, ale istnieje ważna konfiguracja w ręcznie instalowanych pakietach, 2. Tak, ale jak powiedziałem, pliki użytkownika nie są zmartwieniem, 3. Tak, jest włączony, 4. I tak, jest także obsługa wirtualizacji .
Oxwivi
Jest to nieco ponad mój poziom wiedzy, ale czy nie byłoby łatwiej uzyskać listę pakietów ze świeżej instalacji, porównać ją z obecną instalacją, aby uzyskać listę wszystkich dodanych elementów. Następnie wykonaj świeżą instalację i automatycznie dodaj z powrotem wszystkie niestandardowe elementy - być może z przywróceniem niektórych lub wszystkich plików konfiguracyjnych w $ HOME? Otrzymujesz listy, uruchamiając dpkg -l. Prawdopodobnie oznaczy to wiele dodatkowych rzeczy jako zainstalowane ręcznie - zamiast zależności, które mogą zniknąć, jeśli pakiet, który ich potrzebował, zostanie później usunięty.
Joe

Odpowiedzi:

5

Na przyszłość:

Jeśli masz zdalny serwer w centrum danych w odległości 1000 mil, lepiej zainstaluj przełącznik IPKVM , abyś nie musiał polegać wyłącznie na sshjego osiągnięciu.

Jeśli serwer jest na Mount Everest: dodaj również telefon Iridium i modem ...

Następnie możesz mieć rozruchową partycję 512 MB FAT CloneZilla na tym komputerze (używam pamięci USB SLC ) i użyć konsoli, aby uruchomić komputer i wykonać kopię zapasową obrazu partycji systemowych na dysk danych, a następnie skopiować poprzedni obraz systemu na partycji dodatkowej pamięci USB przed rozpoczęciem dodawania trusty-proposeddo serwera . (Większość kopii zapasowych systemu przechowuję na dysku danych: mają tylko 6 GB)

Na razie:

  • Zrób apt-backup
  • Przejdź przez swoje /var/log/apt/history*
  • Stwórz własny skrypt automagiczny, który wykonuje apt-get purgewszystkie rzeczy, których tak naprawdę nie chcesz / nie potrzebujesz już z danych w poprzednim kroku
  • Wykonaj skrypt podczas modlitwy do Linusa z Torvalds
  • Zaktualizuj swoje repozytoria tak, jak chcesz, aby były (jak usuwanie trusty-proposed)
  • Uruchom ponownie podczas modlitwy do Richarda ze Stallmans
  • Jeśli wszystko się uda: zaimplementuj powyższe rozwiązanie przełącznika IPKVM.
Fabby
źródło
Brak automatycznej komendy usuwania wszystkiego oprócz this that? :( Czy przełącznik IPKVM jest wyposażony w funkcję dynamicznego DNS? W tym przypadku
bezwartościowe
Powyższe jest najbardziej zautomatyzowane, jakie otrzymasz. W pełni automatyczny jak punkt przywracania systemu Windows: nie, właśnie do tego służą kopie zapasowe systemu ... Przełączniki IPKVM mogą korzystać z DHCP, więc korzystając z zewnętrznej usługi dynamicznego DNS: „tak, trochę”…
Fabby,
Nie, nienawidzę punktu przywracania systemu Windows. Nie mam pojęcia, co tam się dzieje. (Bardziej jak, nienawidzę całej cholernej linii produktów Windows). Jedyną automagiczną częścią, którą chcę, jest ustalenie wszystkich ręcznych pakietów i polecenia odinstalowania wszystkiego oprócz nich.
Oxwivi,
Usunąłem system Windows około 2 lata temu ... Czy próbowałeś nawet zaglądać history.log??? : P
Fabby,
@Oxwivi Chcesz apt-mark showauto, i oczyścić cały pakiet na wyjściu przez karmienie listę apt-cache purge: apt-mark showauto | xargs sudo apt-get --dry-run purge. Dobrowolnie dodałem --dry-runprzełącznik na wypadek, gdybyś spróbował go wypróbować, abyś mógł zobaczyć, co się dzieje: zrobienie czegoś takiego przerywa instalację, ponieważ usuwa każdy pakiet zależny od dowolnego pakietu usuniętego przez polecenie . Wystarczy spojrzeć na wynik suchego biegu.
Kos
1

OK, moja odpowiedź zakłada, że ​​możesz wykonać kopię zapasową katalogu użytkowników i wszystkiego, co chcesz zapisać. co ogranicza twoje pytanie do tego, jak zainstalować Ubuntu na zdalnym serwerze? Do których istnieje wiele rozwiązań.

W tym celu możesz użyć DRBL, aby zdalnie wdrożyć system operacyjny, z różnymi opcjami uruchamiania. Możesz zajrzeć tutaj: http://drbl.org/installation/

Jest Clobber: http://cobbler.github.io/manuals/quickstart/

Istnieje cloneZilla, która może tworzyć kopie zapasowe i przywracać je przez sieć. Link jest przeznaczony dla systemu Windows, ale te same metody dotyczą Linuksa. Alternatywnie, możesz utworzyć obraz rozruchowy Ubuntu lokalnie i zainstalować go przy użyciu clonezilla. http://opensourceforu.efytimes.com/2013/12/restore-partitions-network-using-clonezilla/

Alternatywnie możesz spróbować użyć dd_rescue lub netcat

Przydatnym wyszukiwanym terminem może być „Provisioning serwera”. Jest więcej opcji niż te.

Istnieją również metody bruteforce.

$ 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

a wasza ŚCIEŻKA wyglądała tak:

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

jeśli twój katalog główny byłby taki, gdybyś napisał / etc i / usr z „czystymi” wersjami, nadpiszesz, prawie każdy kawałek zainstalowanego oprogramowania i pliki konfiguracyjne dla niego. Byłoby co najmniej hackerskie, jeśli nie całkowicie okropny pomysł. Bieganie apt-get purgebyłoby o wiele bezpieczniejsze, a może można by trochę dostroić proces. Możesz także chcieć dołączyć klon starego pliku konfiguracyjnego ssh do / etc / ssh / przed próbą ponownego uruchomienia usług z nowymi plikami konfiguracyjnymi.

Istnieje również narzędzie, które pozwala na zrzucenie działającego jądra i aktualizację bez ponownego uruchamiania. W tym celu możesz sprawdzić Kslpice lub kGraft

Jeśli masz tylko problemy z repozytoriami i zarządzaniem pakietami, nie jestem pewien, dlaczego chcesz zrzucić jądro, mbr, partycję rozruchową itp.

Tak czy inaczej, mam nadzieję, że dałem ci kilka pomysłów do zbadania. Istnieje wiele sposobów zdalnego usuwania serwera z serwera.

j0h
źródło