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


10

Оскільки я занадто сильно розігрувався з запропонованим сховищем (14.04), я хочу повернутися до кроку 1: видаліть кожен пакет із системи, за винятком тих, які я встановив вручну та перевстановіть базову систему, не переживаючи клопоту з перевстановленням. .

В основному, чи можна безпечно і віддалено над ssh:

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

NB: Навмисно я сподіваючись отримати відповіді, які не мають конкретної конкретної версії.


Здається, я не описав те, що хочу досить просто, я думаю, що ці два моменти допоможуть сказати вище:

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

І я здогадуюсь, якщо залежності встановлених вручну пакетів все-таки видалять, apt-get -fдопоможе мені в цьому.


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 Гб)

Зараз:

  • Візьміть доречне резервне копіювання
  • Пройди своє /var/log/apt/history*
  • Створіть свій власний автоматичний сценарій, який виконує apt-get purgeз усіх речей, які ви дійсно не хочете / більше не потребуєте з даних попереднього кроку
  • Виконайте сценарій, молячись про Лінуса Торвальда
  • Оновіть свої сховища так, як ви хочете, щоб вони були (як видалення trusty-proposed)
  • Перезавантажтесь під час молитви до Річарда Сталлманів
  • Якщо все виходить, реалізуйте рішення IPKVM-комутатора вище.

Немає автоматичної команди видалити все, крім this that? :( Чи є перемикач IPKVM з динамічною функцією DNS? Не важливо інакше в цьому випадку.
Oxwivi

Наведене вище - це найбільш автоматичне, що ви отримаєте. Повністю автоматичний, як точка відновлення Windows: ні, ось для чого створюються резервні копії системи для ... Перемикачі IPKVM можуть використовувати DHCP, тому за допомогою зовнішньої служби Dynamic DNS: "так, свого роду" ...
Fabby

Ні, я ненавиджу точку відновлення Windows. Поняття не маю, що там йде. (Більше того, я ненавиджу всю лінійку продуктів Frickin '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/

Є Clobber: 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

і ваш PATH був таким:

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 config в / etc / ssh / перед тим, як спробувати перезапустити служби з новими файлами конфігурації.

Також є інструмент, який дозволяє скинути запущене ядро ​​та оновити без перезавантаження. Для цього ви можете перевірити Kslpice або kGraft

Якщо у вас виникли проблеми - це репост і управління пакетами, я не впевнений, чому ви хочете скинути ядро, mbr, завантажувальний розділ тощо.

Так що будь-як, я сподіваюся, що я дав вам кілька ідей для розгляду. Існує багато способів віддалити сервер віддалено.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.