Как сделать откат системы в линукс

Обновлено: 07.07.2024

Я только что установил новую версию Ubuntu и хочу откатить ее до предыдущей версии.

Как я могу это сделать? Это вообще возможно?

Понижение версии возможно до некоторой степени. С достаточным количеством сражений это может быть сделано (см. Некоторые другие ответы здесь для технических деталей).

Однако результат, который вы получите, не совпадает с тем, что вы имели до обновления. Во время обновления вносятся определенные односторонние изменения, чтобы новые пакеты были довольны, и их понижение не отменяет эти изменения. Невозможно гарантировать, что понижение будет работать вообще, не говоря уже о том, будет ли оно стабильным.

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

Если вы хотите проверить что-то в будущем и боитесь, что у вас могут возникнуть проблемы, всегда делайте следующее:

  • Сначала протестируйте LiveCD. Если у вас возникнут немедленные проблемы с оборудованием, об этом следует сообщить.
  • Сделайте резервную копию, прежде чем делать что-либо. Я знаю, что все и их мать уже сказали вам сделать это, но это действительно важно, если вы думаете, что у вас будут проблемы. Если вы не можете обойтись без своей машины более 20 минут, подумайте о некоторых инструментах клонирования полного диска, таких как Clonezilla, чтобы вы могли просто восстановить предыдущую версию диска. Есть и другие инструменты, которые могут предложить аналогичные результаты.
  • Храните ваши данные отдельно. Имея ваш /home/ в том же разделе, что и ваша установка, - это рецепт головной боли, если вы постоянно обновляете или понижаете производительность. Переместите его на другой диск или, по крайней мере, в другой раздел, чтобы при необходимости переустановки вам действительно нужно было настроить монтирование.
  • Была критическая ошибка для понижения версии, которая была исправлена ​​командой Ubuntu QA. Обязательно прочитайте об этом, так как некоторые люди порекомендуют вам просто вставить старый CD и "обновить" его, но это плохая идея.

На моем языке есть поговорка, которую можно примерно перевести как "Вы не можете превратить мясной фарш обратно в мясо, вращая рукоятку мясорубки в противоположном направлении":)

введите описание здесь

Процедура обновления является односторонней: при установке новых версий программного обеспечения ваши файлы конфигурации и параметры изменяются послеустановочными сценариями пакетов для использования нового формата, который требуется для нового программного обеспечения. По сути, нет противоположной процедуры - сделать новый файл конфигурации совместимым со старым программным обеспечением.

Это возможно на уровне инструментов упаковки (apt). Но получающаяся система может быть не эквивалентна выполнению переустановки, и вы можете получить ошибки по пути. Это связано с тем, что многие пакеты содержат особую поддержку для обновлений (например, обработку изменений в файлах конфигурации), но не для рангов.

Обычно apt предпочитает устанавливать самую последнюю версию пакета. Но вы можете изменить это с помощью закрепления: вы можете объявить, что пакеты из старого выпуска имеют более высокий приоритет, чем установленные пакеты, так что они будут понижены, когда вы это сделаете aptitude dist-upgrade ,

Измени свой /etc/apt/sources.list включить только старый выпуск (отредактируйте файл или используйте ваш любимый графический интерфейс) и запустите aptitude update , Затем отредактируйте /etc/apt/preferences (задокументировано в apt_preferences man page) и добавьте следующие строки (чтобы перейти на lucid):

Тогда беги aptitude dist-upgrade , Каждый пакет имеет приоритет больше 1000, поэтому каждый пакет, который присутствует в 10.04 и установлен в вашей системе, будет понижен. Вам придется удалить пакеты, которых не было в 10.04, вручную; они будут перечислены в разделе "Устаревшие и локально созданные пакеты" в aptitude.

Они говорят "никогда не говори никогда" и "нет ничего невозможного" - и то, и другое верно, но не в вашем случае. Я предлагаю вам либо сделать резервную копию ваших данных и переустановить, либо выложить их. Система должна становиться все более и более стабильной с течением недель.

Вы также можете переустановить поверх существующей установки (она сохранит ваши файлы).

Однако, как правило, старайтесь избегать обновления до версий разработки на производственных системах (особенно, если вы не являетесь тестировщиком / разработчиком).

Вы можете сделать это вручную.

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

скопируйте папку /home и /etc на резервный носитель.

Переустановите Ubuntu 10.04. Восстановите резервную копию (не забудьте установить правильные права доступа). Затем выполните следующее, чтобы переустановить все программы, которые у вас были раньше.

Обратите внимание, что вам может потребоваться очистить папку /etc и /home для несовместимых настроек.

Вот почему вы не должны обновлять основную установку до выпуска для разработчиков. Если вы хотите протестировать разрабатываемый выпуск, вы должны сделать это в отдельном разделе, чтобы вы могли загрузиться обратно в стабильный выпуск, когда что-то пойдет не так.

На этом этапе, если вы хотите вернуться к 11.04, вам нужно переустановить его и выбрать ручное разбиение. НЕ устанавливайте флажок формата при настройке ваших разделов, и ваши пользовательские файлы должны оставаться неизменными.

Откат может работать нормально для отдельных пакетов изолированно, но я бы никогда не ожидал, что крупномасштабный откат всего дистрибутива не даст вам ничего, кроме ужасно сломанной системы (или системы, которая на первый взгляд выглядит чтобы быть в порядке, но странные вещи продолжают появляться, поскольку вы обнаруживаете, что это все более и более сломано).

APT просто спроектирован так, чтобы максимально избежать откатов, а пакеты, составляющие дистрибутив Ubuntu (и, в данном случае, Debian), не предназначены для плавного отката в качестве цели проектирования.

Если у вас нет надежных резервных копий всей системы, вам действительно нужно сделать резервную копию всего домашнего каталога (и, возможно, также в отдельном разделе), переустановить его с образа компакт-диска выбранной вами версии и запустить восстановление ваших данных из вашей домашней папки. Возможно, вам даже потребуется выборочно восстановить точечные файлы в вашем домашнем каталоге на тот случай, если какие-либо файлы, привыкшие к новой версии, не совсем хорошо работают со старой версией.

Прежде чем вы это сделаете, вы можете просмотреть свои установленные пакеты и записать, на какие из них вы положитесь, чтобы вы могли переустановить их. Существуют инструменты для резервного копирования и восстановления списка установленных пакетов, но я бы не рекомендовал делать это, если вы переходите между версиями, так как необходимые / включенные пакеты могли измениться.

Когда происходит сбой в системе и она перестает загружаться, многие пользователи не знают, что делать. Конечно, лучше вообще не допускать таких ситуаций, но, если уж подобное случилось, нужно воспринять это как данность и разобраться в проблеме.

Для начала стоит рассмотреть, какие вообще бывают нештатные ситуации, после которых система не грузится. Условно их можно разделить на четыре вида:

  1. Сбой файловой системы
  2. Некорректное обновление дистрибутива. Конечно, именитые компании, такие как Canonical или Red Hat, очень стараются не допускать подобных ситуаций, но ведь и на старуху бывает проруха.
  3. Некорректно сконфигурированная графическая подсистема и/или кривые драйверы, чаще всего проприетарные.
  4. Невнимательность пользователя. О, чего тут только нет! Перечислю основные возможности сломать систему:
    • забыть пароль root (как вариант — свой собственный) или загрузчика;
    • перезаписать таблицу разделов;
    • удалить какой-нибудь крайне важный файл;
    • установить программу из неизвестного источника. Справедливости ради надо сказать, что если пользователь компилирует из-под своей учетной записи и ставит программы исключительно в свой домашний каталог (что, впрочем, бывает крайне редко), то максимум, что сможет сделать эта программа, — занять все ресурсы и/или запороть конфиги в домашнем каталоге (необходимо отметить, что это верно именно для криво написанных программ, не для зловредов).

Это, пожалуй, самые распространенные варианты сбоя, после которого может понадобиться реанимировать систему. Рассмотрим теперь, как это делать.

Для Linux способы сброса паролей пользователей разнятся от дистрибутива к дистрибутиву. Далее я опишу самый универсальный метод.

В загрузочном меню GRUB выдели дистрибутив и нажми клавишу . Затем выбери строку, начинающуюся с kernel, и снова нажми (в случае с GRUB2 — linux и повторно нажимать не надо). В конце строки допиши init=/bin/sh . Эта команда запускает вместо init/systemd процесс оболочки, в котором ты можешь изменить пароль. Но перед этим тебе необходимо перемонтировать ФС в режиме чтения/записи, для чего выполни следующую команду:

Уже после этого ты можешь выполнить команду passwd или ее же, но с именем пользователя в качестве аргумента. После этого нужно перезагрузиться — но команды shutdown / reboot в этом режиме не всегда работают. Выход есть: используй клавишу , Люк! А именно — зажимая клавиши и , с интервалом в 3–4 секунды нажми следующие буквы: R E I S S U B. Итогом будет перезагрузка, и после нее ты сможешь заходить под новым паролем.

В FreeBSD ситуация сложнее. Обычно советуют грузиться в однопользовательском режиме и оттуда уже менять пароль. Однако если в файле /etc/ttys консоль отмечена как insecure, то этот метод, очевидно, не подходит, и тут не обойтись без LiveCD (в параметрах ядра, которые могут быть установлены в загрузчике, есть переменная kern.init_path, но сброс, а затем присвоение этой переменной пути к какой-либо оболочке ни на что не влияет). Рассмотрим, как именно сбросить пароль с его помощью.

  • Качаем (и записываем) Frenzy и грузимся с него.
  • Подключаем разделы FreeBSD в режиме чтение/запись.
  • Делаем chroot на подмонтированную ФС.
  • Делаем резервные копии файлов passwd , master.passwd , pwd.db и spwd.db .
  • Задаем команду passwd и ставим пароль.
  • Выходим из chroot, задаем команду sync , отмонтируем и перезагружаемся.

В случае с потерей пароля на GRUB/GRUB2 тебе необходимо загрузиться с LiveCD и поставить другой пароль. Для GRUB2 это делается путем редактирования файла /boot/grub/grub.cfg (после перезагрузки не забудь поставить новый зашифрованный пароль в соответствующий файл в /etc/grub.d/ ):

Для старого GRUB достаточно заменить в файле /boot/grub/menu.lst строку password --md5 password_hash на password newpass.

Та самая строчка, которая влияет на ввод пароля в однопользовательском режиме в FreeBSD

Та самая строчка, которая влияет на ввод пароля в однопользовательском режиме в FreeBSD


Другие статьи в выпуске:

В случае порчи загрузчика сперва нужно определить, какой из них используется в твоей системе. Как правило, в Ubuntu, начиная с версии 9.10, используется вторая версия GRUB. Однако проверить это нетрудно. Прежде всего загрузись с LiveCD и пробрось chroot. О том, как это сделать, написано в одном из следующих разделов. Помни, что в случае, если /boot находится на отдельном разделе, его также необходимо подмонтировать. Наиболее ярким индикатором, что установлен GRUB2, служит присутствие каталога /etc/grub.d/ . Для полной же уверенности проверь также наличие файла grub-mkpasswd-pbkdf2 и отсутствие grub-crypt с помощью команды whereis .

В случае если в качестве загрузчика используется вторая версия GRUB и ты точно уверен, что он установлен, к примеру на /dev/sda , набирай следующую команду:

Если возникли ошибки, могут помочь опции проверки device map '--recheck' и отключения проверки наличия флоппи-дисковода '--no-floppy'.

Для установки GRUB Legacy используй ту же самую команду. Замечу, что опция '--recheck' в версии программы для grub-legacy недоступна.

В системах, основанных на RHEL, даунгрейд можно осуществить сразу несколькими путями. Самый древний метод — использовать опцию '--rollback' RPM. Например, для отката изменений на неделю назад необходимо выполнить следующую команду:

Этот метод, однако, по современным меркам весьма неудобен, особенно если учитывать, что сейчас все пользуются yum . Для даунгрейда пакета с помощью yum можно использовать команду yum downgrade . Например, так:

Замечу, что зависимости не даунгрейдятся, и их нужно указывать вместе с пакетом, который подвергается этой операции.

В системах новее RHEL6 есть еще один метод, основанный на истории действий yum . Для его применения нужно прежде всего задать следующую команду:

Затем посмотреть номер действия, убедиться, что это именно то действие, и откатиться:

История действий yum

История действий yum

Для Ubuntu (и других систем, использующих apt-get ) нужно сначала удалить пакет, а затем установить нужную версию (перед этим обязательно сохраняй конфиги!):

Нужно учесть, что для ядер это не подходит — новые ядра именно устанавливаются, а не обновляются.

В случае с портами FreeBSD существует утилита portdowngrade , которая, впрочем, сейчас служит в качестве фронтенда к subversion , то есть для ее использования необходимо, чтобы svn был установлен. Использовать ее очень просто — сперва мы ищем ту ревизию, к которой нужно откатиться, затем откатываемся и ставим этот порт:

Откат порта в FreeBSD

Откат порта в FreeBSD

Восстановление удаленных файлов сильно зависит от файловой системы, и гарантии, что ты их восстановишь, нет никакой. Вначале опишу восстановление данных с ext2/3/4 под Ubuntu. Первым делом, если ты обнаружил, что какой-то файл удален, сразу насильно выключай компьютер - и чем раньше ты обнаружишь это, тем лучше. Затем грузись с LiveCD и установи программу extundelete :

Если у тебя есть раздел, куда восстанавливать, подмонтируй его, перейди в соответствующий каталог и набери следующую команду:

Если же у тебя нет раздела, в который можно помещать восстанавливаемые файлы… тогда вместо --restore-all напиши --restore-file. Например, так:

Отмечу, что путь к файлу задается относительно его корня — то есть если у тебя отдельный раздел /boot и ты случайно удалил файл /boot/grub/grub.cfg , то в качестве восстанавливаемого файла будет фигурировать /grub/grub.cfg .

В случае с Btrfs в версиях выше, чем 0.20, имеется команда btrfs restore . К сожалению, по умолчанию она не может восстанавливать конкретные файлы – для этого необходима сборка btrfs-progs от josefbacik. Пример использования:

Что до FreeBSD, то ситуация с ней сложнее. Для восстановления удаленных данных в стандартной поставке ничего нет, поэтому берем какой-нибудь LiveCD — да тот же Ubuntu — и ставим пакет testdisk , в составе которого имеется photorec . К сожалению, эта программа (пока?) не понимает формата разделов и слайсов FreeBSD и его файловую систему. Тем не менее это не мешает им пользоваться. Запустим ее для раздела sda3:

В появившемся меню нажмем — поскольку мы уже выбрали раздел — и затем выберем Options". Там включаем опции по вкусу, выйдем из меню и вперед — жмем Search. Перед поиском photorec попросит указать каталог, куда сохранять. Разумеется, процесс это небыстрый, поэтому запасись терпением.


В пакет testdisk, помимо photorec, входит собственно сам testdisk — утилита, позволяющая восстанавливать случайно удаленные разделы из таблицы разделов.


Помимо этих методов, есть еще один метод, почти универсальный для *nix-систем. Этот метод не требует немедленного отключения питания. Но не спеши радоваться, он доступен только в том случае, если ты удалил файл, открытый в другом приложении. Для восстановления файла тебе нужно узнать PID приложения, перейти в каталог /proc/

/fd , найти ссылку на удаленный файл и с помощью cat его восстановить.

Photorec в работе

Photorec в работе

В случае работы с поврежденными ФС необходимо быть чрезвычайно осторожным. Трижды убедись, что ты понимаешь, что делаешь.

Повреждение может возникнуть как из-за сбоя питания, так и, опять же, некорректных действий пользователя и/или программ, например, при установке нового дистрибутива ты случайно удалил не тот раздел, или программа установки затерла суперблок.

Рассмотрим первую ситуацию (сбой питания) для ext4. В общем-то, эти методы работают при любой вышеперечисленной ситуации. Если система вообще не стартует, нужно загрузиться с LiveCD и по возможности скопировать образ раздела. Затем набираем в консоли следующую команду (предполагается, что ФС находится на sda7):

Если все хорошо, то fsck будет задавать вопросы. Все нормально. Главное, чтобы их не было слишком много. Но если fsck ругается на некорректный суперблок… то и тут не стоит отчаиваться. Для начала узнаем, в каких блоках находятся резервные суперблоки, для чего используем стандартную команду mkfs.ext4 :

Команда эта, как правило, создает новую файловую систему и во время этой процедуры пишет местонахождение резервных суперблоков. Нам, разумеетcя, не надо создавать ФС. Но запуск с опцией -n ее и не создает, а всего лишь показывает процесс создания — а заодно и выводит список резервных суперблоков (он, в свою очередь, зависит от размера блока). Допустим, размер блока у нас равен 4 Кб. Тогда мы снова задаем команду fsck.ext4 :

Опция -b указывает резервный суперблок, список которых мы получили из вывода предыдущей команды.

Просмотр списка резервных суперблоков с помощью mkfs

Просмотр списка резервных суперблоков с помощью mkfs

Если же и это не помогает (или хочется ручками попробовать восстановить), тогда пришло время для тяжелой артиллерии. В качестве таковой выступает связка утилит dumpe2fs , tune2fs и debugfs . Их описание выходит за рамки данной статьи, но не упомянуть их я не могу. Кроме того, у команды mkfs.ext4 есть ключ '-S', который инициализирует только суперблок и группы блоков, но не таблицы инодов. После этого нужно запустить fsck . При использовании этого способа помни — размер блока должен совпадать со старым, иначе шансы на восстановление значительно уменьшатся.

В случае с Btrfs набор утилит для восстановления очень и очень скуден. Тем не менее некоторые средства все же имеются. Опишу опции монтирования, относящиеся к восстановлению:

  • опция монтирования recovery (доступна начиная с ядра 3.2) позволяет Btrfs при сбое сканировать предыдущие корни бинарных деревьев и по возможности использовать первый неповрежденный;
  • degraded — для систем на нескольких устройствах (RAID-массив средствами Btrfs). Если одно устройство по каким-то причинам недоступно, эта опция позволяет смонтировать ФС и добавить новое устройство;
  • skip_balance (доступна с ядра 3.4) отключает балансировку данных и метаданных. Использование этой опции имеет смысл, если питание было отключено внезапно и у тебя опять же ФС на нескольких устройствах — для ФС на одном устройстве операция балансировки не имеет смысла.

В FreeBSD fsck_ufs для указания резервного суперблока принимает тот же параметр -b', что и в Linux. А вот у утилиты newfs , в отличие от ее аналога mkfs.ext4 , для просмотра информации о создаваемой ФС без фактического ее создания используется ключ '-N'. Ключа, аналогичного описанному выше '-S', нет вообще. Для ручного восстановления используй аналогичную связку из утилит dumpfs , tunefs и fsdb .

Для ZFS ситуация с утилитами восстановления хотя и более печальная, чем в случае с классическими ФС, но с Btrfs несравнима. И это при том, что субъективно Btrfs куда более сырая. Команды fsck в ней нет, но ее ближайшим аналогом служит команда zpool scrub , которая проверяет контрольные суммы всех занятых блоков пула. Для просмотра информации в уберблоке (примерном аналоге суперблока) используется утилита zdb . В случае критического повреждения пула используй команду zpool clear -F .

Просмотр возможностей файловой системы с помощью debugfs Аналог debugfs в FreeBSD

Действия в этой ситуации зависят от того, как именно ты ставил это ПО и загружается ли система вообще. Если система не загружается, в случае Ubuntu имеет смысл загрузиться с LiveCD и, подмонтировав корневую ФС, сделать chroot:

Затем просмотреть, если ты ставил это неизвестное ПО с репозитория, список пакетов, которые недавно были установлены, для чего открыть файл /var/log/apt/history.log и с помощью apt-get удалить данный пакет. Если же ты устанавливал из исходных кодов, а система не загружается даже в однопользовательском режиме, скорее всего, ты установил какой-то модуль ядра, который прописался в initramfs . Чтобы от него избавиться, посмотри каталог /etc/initramfs-tools/ , в частности файл modules . После устранения подозрительных строк обнови initramfs :

Если система все же загружается в однопользовательском режиме, значит, дело в каком-то init-скрипте. Для просмотра свежесозданных файлов в каталоге /etc/init.d/ используй команду ls -t , затем, после обнаружения службы, отключи ее с помощью команды update-rc.d имя_службы purge . Затем перейди в каталог сборки и попробуй дать команду make uninstall . Не факт, что сработает, но попытаться стоит.

Эти проблемы относятся к проприетарным драйверам. Разумеется, сейчас они возникают довольно редко, но все же возникают. Рассмотрю, например, ситуацию, когда вместо нормального изображения драйвер NVIDIA после запуска показывает по центру монитора полосу примерно в половину ширины экрана с прерывистыми диагональными линиями на ней. Если после ее появления переключиться на консоль и обратно, изображение нормализуется. Для исправления этой ситуации нужно принудительно выставить графический режим путем добавления параметра ядра. В файле /etc/default/grub добавляем в переменную GRUBCMDLINELINUX_DEFAULT параметр vga=0x314. Должна получиться следующая строка:

Не забываем перегенерировать грабовский конфиг:

Еще одна проблемная ситуация может возникнуть, если драйвер неверно определяет разрешение монитора. Для ее решения есть два пути. Первый — добавить следующие строчки в файл /etc/X11/xorg.conf в секцию Screen:

Разрешение, естественно, нужно подставить желаемое. Но файл xorg.conf считается устаревшим, поэтому рекомендую использовать комбинацию ~/.xprofile и команды xrandr . Создай файл ~/.xprofile со следующим содержимым:

Конечно, в твоем случае опция --output (как и разрешение) может отличаться. Чтобы узнать точно, куда подключен монитор, набери xrandr без параметров.

LiveCD для восстановления системы

Cуществует несколько LiveCD-дистрибутивов для восстановления системы. Кратко опишу два из них.

Grml — LiveCD, основанный на Debian. Поддерживает как x86-, так и x64-системы. Может быть установлен на флешку. Из особенностей:

  • По умолчанию в качестве оболочки используется ZSH, а в качестве WM — Fluxbox.
  • USB-установка поддерживает сохранение конфигов (на флешке при этом нужно создать два раздела).
  • Есть пакет sleuthkit, предназначенный как для восстановления данных, так и для компьютерных криминалистов.

SystemRescueCD основан на Gentoo. Последняя его версия, 3.8.0, выпущенная в сентябре этого года, имеет следующие особенности:

  • Ядра как x86, так и x64, причем двух версий — Standard (3.4.62) и Alternative (3.10.12).
  • В качестве рабочего стола используется Xfce.
  • Помимо Linux, в меню загрузки имеются также некоторые образы дискет, например MHDD.

Все это добро умещается на 420 Мб.

В этой статье я попытался описать самые частые и наиболее пугающие проблемы, которые могут возникнуть при работе в современных дистрибутивах Linux и FreeBSD. По сравнению с тем, что было раньше, этот список заметно поубавился. Тем не менее я не описал проблем, связанных с железом (видеодрайверы не в счет), — во-первых, потому, что оно у всех разное, а во-вторых — их нужно по возможности предотвращать, иначе, когда они себя проявят, уже будет поздно.

В статье в краткой форме описано как можно откатить операционную систему на базе Linux к рабочему состоянию. Например после неудачного обновления. Стоит заметить — файловая система у нас Btrfs. А для бекапа мы используем пакет apt-btrfs-snapshot, который создает снимок системы.

Установлена Ubuntu 12.10 на /dev/sda1 без отдельных разделов /boot.

Заходим под администратором:

Проверяем его работоспособность:

В ответ должны получить — Supported.

Давайте сделаем что нибудь с apt-get чтобы проверить откат:


В процессе вы увидите, что apt-btrfs-snapshot сделал автоматический снимок системы (called @apt-snapshot-yyyy-mm-dd_time). Однако можно проверить:

Теперь предположим, что последние операции обновления оказалась неудачными и ваша система упала в ужасное состояние. Решено восстановить предыдущее состояние системы, т.е. сделать откат.

Монтируем файловую систему Btrfs в отдельную папку, например /mnt:

Теперь можно проверить:

@apt-snapshot это снимок рабочей корневой файловой системы (@). Для того чтобы сделать загрузку системы с снимка, а не из текущего корня, нужно переименовать @ на что-то другое, а затем @apt-snapshot переименовать на @:

Удаление неудачного корневого каталога:

Комментариум ( 16 )

По правде я не вижу смысла во всех этих снапшотах. Просто так система у меня ещё ни разу не падала, ну а для экспериментов можно на крайняк и слепок системы командой dd сделать. Ничего против BtrFS не имею, просто она все еще сырая и подающая немалые надежды. Имел ввиду, что ставить на неё систему в действующем состоянии разработки BtrFS нецелесообразно. Сам использую бтр на /home разделах и файлопомойках=) Хотя больше всего интересует zfs и када её портируют в линух.

А мне кажется снимки системы довольно удобная и простая в обращении вещь, например перед апгрейдом версий дистрибутива лишним не будет, сколько раз этим занимался, столько и матерился, а тут в случаее-печальном поможет легко вернуться, или мало-ли кто начудит, можно быстрый откат организовать. Так-то да как таковых крашей не бывает, если не заниматься препарированием на рабочей системе.

А чем снимок через dd хуже? Ну про апгрейд я промолчу, на каждой машине по три оськи и перетусовываются они частенько. Апгрейд для меня нечто нецензурное=)) Стабильными завсегда остаются только хомяк и помойка=))

Нарушение работы операционной системы может повлечь за собой много проблем. Это и потерянная информация, на восстановление которой уходит время, и невозможность работы за компьютером. А также испорченное настроение, и нередко — потраченные нервы. Что делать, если плохо работает Windows, известно многим. С операционными системами на базе Linux ситуация сложнее и интереснее. Итак, что предпринять, если срочно потребовалось восстановление Ubuntu? Давайте изучим этот вопрос.

Восстановление системы в Ubuntu

Обзор ситуаций

Возможно, после запуска компьютера вас встретил экран, заявляющий о серьёзной неполадке. Или вы столкнулись с ошибкой уже во время работы — это не так важно. Изучить источник проблемы действительно необходимо. Чтобы восстановить Ubuntu, обратите внимание на каждую из приведённых ситуаций. Возможно, одна из них напоминает вашу?

В некоторых случаях реанимировать систему будет сложнее, в других — найдутся свои способы быстрого решения. Перейдём к рассмотрению конкретных решений.

Неправильно подобранные драйверы

Типичные проблемы такого рода связаны с драйверами видео. На данный момент это не слишком распространённые проблемы. Но столкнуться с ними может каждый. Для исправления некоторых ситуаций (допустим, артефактов на экране) поможет принудительная смена режима видео.

После операции останется только обновить конфигурацию с помощью команды:

Команда sudo update-grub

xrandr —output VGA-0 —mode 1920×1200 —rate 60.

Проблемы после обновления системы

Такая ситуация вызывает дополнительные неприятности. Проблема в том, что её не видно сразу. Восстановление Ubuntu после неудачного обновления может быть необходимо в любой момент пользования дистрибутивом. Создатели версий с долговременной поддержкой стараются сделать так, чтобы совместимость была обратной, то есть при желании вы могли вернуться на старую версию ОС. Но в реальности не всё так просто.

Самый правильный способ разобраться с неполадкой — тщательное изучение log-файлов и правка конфигурации своими руками. Но если по каким-то причинам этот путь затруднён, остаётся только даунгрейд, то есть откат до более старой версии ОС.

Нужно сначала удалить пакеты, установленные по ошибке или мешающие работе. Это могут быть пакеты программ, записанных уже в новую версию системы. Например, удалить поддержку новой версии PHP можно так:

Перед такими действиями очень важно сохранять конфигурационные файлы. Такой метод не подходит для обновления ядра.

Если был удалён важный файл

Можно ли восстановить Ubuntu, не работающую из-за отсутствия файлов, зависит от файловой системы. Если вы обнаружили пропажу важного для системы файла, следует сразу отключить компьютер. Необходимо иметь раздел, куда можно загрузить файлы при реанимации. Далее:

$ sudo extundelete —restore-all /dev/sda3.

  • Если же раздела под восстановление у вас нет, тогда можно использовать:

$ sudo extundelete —restore-file /etc/shadow /dev/sda3.

Проблемы после установки ПО

Нужные действия в такой ситуации зависят от того, как ПО было установлено. Ubuntu загружается? Если нет, то восстановить её можно при помощи LiveCD. Если да, это значительно облегчает ситуацию. Вот что нужно сделать, если восстановить систему в штатном режиме нельзя:

  1. Загрузитесь с LiveCD
  2. Выполните монтирование корневой ФС.
  3. Выполните команды:

В завершение

Мы рассмотрели несколько способов, в которых описано, как восстановить Линукс Убунту. Если вы не уверены, что делаете всё правильно, или же предложенные варианты у вас не работают — советуем обратиться к компьютерному мастеру или системному администратору. И конечно же, читайте советы постоянных посетителей на страницах нашего сайта.

Читайте также: