Что ж, на мой взгляд, при всей большой полезности Linux, его самый большой недостаток - смешанный способ установки приложений. Все библиотеки находятся в одном каталоге. Все файлы конфигурации для другого. И бинарные файлы тоже складываются в кучу. Да, Windows работает более или менее одинаково, но с учетом того, что системное / серверное программное обеспечение установлено в Linux, поскольку большая часть установленного программного обеспечения является зрелой только на 95% в любой момент времени, порча вашей системы дважды в месяц очень вероятно ..
Конечно, мы можем сделать резервную копию системы до и после каждой установки, но это занимает миллион лет. Резервное копирование системы (в отличие от резервного копирования данных / файлов) требует, чтобы вы выключили компьютер и использовали какой-либо загрузочный live CD и носитель с резервной копией. И, если накопитель заполнен более чем на 15%, резервное копирование может занять много времени, даже при использовании современного оборудования.
Итак, как это можно сделать?
Альтернатива - LVM снэпшоты - о LVM снэпшотах можно прочитать здесь: http://www.tutonics.com/2012/12/lvm-guide-part-2-snapshots.html
Одним словом - снэпшоты - это способ заморозки использованных секторов на HardDisk, говорящий системе записывать любые изменения/удаления/дополнения на зарезервированную часть HardDisk, называемый громкостью моментального снимка, тем самым откладывая решение о сохранении/отключении изменений на диске на некоторое будущее время, насколько это позволяет объем памяти моментального снимка. Таким образом, как только вы решите откатить изменения (или сохранить их), вы можете сделать это с помощью одной строки.
Сначала это может показаться сложным, но я могу вас заверить, что после первой попытки, все, что нужно для использования механизма моментального снимка, это всего лишь 2 строчных скрипта (загрузка прилагается!)
Если у вас нет предварительно настроенной группы томов, вам, вероятно, придется установить свежую чистую Ubuntu. Тогда вам придется приложить некоторые усилия, чтобы правильно настроить систему в первый раз, но с этого момента снимки станут легкими. И под "без усилий" я имею в виду одну команду лайнера, используя предварительно сконфигурированные скрипты.
Мы будем очищать жесткий диск! Пожалуйста, сделайте резервную копию всего важного перед тем, как пройти этот этап.
Сначала удалим существующие разделы:
# fdisk /dev/sda
Введите 'd' для удаления - введите для стольких разделов, сколько у вас есть.
> d
<входящий>
...
Введите 'w', чтобы записать изменения
> w
Создайте загрузочный раздел и оставшуюся часть диска в качестве другого раздела
# fdisk /dev/sda
> n
Для создания нового раздела.
> p
Для загрузочного основного раздела.
> 1
Нажмите <включить>, чтобы принять начальный сектор по умолчанию.
Введите:
> +512M
Чтобы дать загрузочному разделу размер 512MB
> n
Для создания (другого) нового раздела.
> p
Должно быть и Первоначальным.
<входящий>
Чтобы принять значение по умолчанию 2 (второй раздел).
<входящий>
Чтобы принять стартовый сектор по умолчанию
<входящий>
Чтобы принять весь диск
> t
Для изменения типа второго раздела на LVM
> 2
Чтобы выбрать второй раздел
> 8e
Чтобы установить тип 'LVM Linux'.
> w
Записывать изменения и выходить.
Чтобы проверить, что изменения сработали хорошо, запустите:
# fdisk --list
Вы должны получить что-нибудь вроде этого:
Система идентификации начала загрузки устройства.
/dev/sda1 2048 524287 261120 83 Linux
/dev/sda2 524288 488397167 243936440 8e Linux LVM
Удалить все предыдущие группы томов / логические тома:
# lvdisplay
Отобразит логические тома, которые вы можете иметь в системе
# lvremove <существующие_логические_том_имя_томов>
Если необходимо удалить установку тома, которая может помешать этой установке.
# vgdisplay
Покажет любую существующую группу томов в системе
# vgremove <существующий_группойтом_томов>.
То же, что и для групп томов...
Создайте группу томов 'vgsnap'
# vgcreate vgsnap /dev/sda2
Должно получиться:
Группа томов "vgsnap" успешно создана.
Создайте Логический том
# lvcreate --extents 100%FREE --name lvroot vgsnap
Корневой логический том, начиная со 100% устройства.
# lvresize --size -30G /dev/mapper/vgsnap-lvroot
Это снимет 30G для объемов подкачки и снимков. Конечно, вы можете выбирайте меньшие размеры для свопа/снимка.
> 'y'.
за показанное предупреждение.
И создайте том подкачки:
# lvcreate --size 15G --name lvswap vgsnap
Примечание: теперь мы оставляем 15G неиспользованного дискового пространства, зарезервированного для будущего снимка.
Установка Ubuntu
Закройте терминал и запустите инсталлятор.
Выберите "Использовать LVM...". (Вы также можете включить шифрование всего диска - но я его не тестировал...)
Выберите "Something Else" и нажмите "Continue". На данном этапе вы найдете распределение /dev/mapper/... заданных томов. Некоторые из них сгенерированы автоматически (lvsnap-*) - пока их можно игнорировать.
Select: /dev/mapper/vgsnap-lvroot том. Выберите "ext4" в качестве формата и монтируйте как '/'
Выберите: /dev/mapper/vgsnap-lvswap том, и выберите "swap area"
Если вы хотите создать зашифрованный диск (понятия не имею, будет ли это работать со снимками?), вы, вероятно, захотите выбрать /dev/sda2 и отметить "том для шифрования". Однако, не тестировал...
Примечание: Неиспользуемые 15G остаются свободными для тома снимка.
Выбор: /dev/sda1 раздел. Отформатируйте его как 'ext2' и смонтируйте как '/boot'
Ниже - выберите: /dev/sda1 раздел как boot
Install!
Следующие шаги покажут, как использовать снэпшот в любой момент:
Mounting the snapshot:
Create the snapshot volume
# lvcreate --size 15G --snapshot --name lvsnap /dev/mapper/vgsnap-lvroot
Создайте каталог монтирования
# mkdir /mnt/vgsnap-lvsnap
Монтаж снимка в режиме только для чтения
# Монтаж -o ro /dev/vgsnap/lvsnap /mnt/vgsnap-lvsnap
Снэпшот включен!
На этом этапе вы можете начать портить свою систему, устанавливать бета-драйверы, и даже (Нет! Это просто неуместно).
С этого момента вы можете в любое время (насколько размер снэпшота обеспечивает...) вернуться в предыдущее состояние, или, если вы удовлетворены новым внешним видом - сохраните его.
Автоматический снимок мониторинга свободного места на диске: Используя подкорректированную версию скрипта, представленную здесь: http://blog.rimuhosting.com/2012/02/20/cron-script-for-checking-disk-space/ Я создал скрипт monitor_snapshot.
Как его использовать/установить? - Как и по ссылке выше:
# cd /etc/cron.hourly
# копировать /home//Downloads/monitor_snapshot
# chmod +x monitor_snapshot
Перед первым запуском лучше отредактировать значения в нем, такие как адрес электронной почты (куда будут отправляться уведомления и т.д.). При правильной настройке, cron-демон будет запускать скрипт каждые X часов/дней - как вы решите - и уведомлять вас, как только снэпшот будет заполнен.
Для проверки запуска скрипта:
# sh /etc/cron.hourly/monitor_snapshot
На снимке будет выведен процент (количество) свободного места.
Важно! По окончании тестов/инсталляций - откат или сохранение изменений - и Размонтирование снимка!
Откат изменений: (См. скрипт rollback_snapshot, со следующими инструкциями, ссылка в конце документа)
# lvconvert --merge /dev/vgsnap/lvsnap
Это тоже сделает снимок, но отбросит все ваши изменения. Также - Вы увидите предупреждение, которое предполагает, что возврат будет происходить только при следующей активации, так что:
# reboot
Примечание: Если вы пропустите слияние, ваши изменения будут зафиксированы после того, как вы Umount snapshot.
Фиксация изменений - аннулирование снимка: (См. скрипт commit_snapshot, со следующими инструкциями - ссылка в конце документа)
# umount /mnt/vgsnap-lvsnap
Будет размонтирован (commit0 the snapshot)
# lvremove /dev/mapper/vgsnap-lvsnap #
# rm -rf /mnt/vgsnap-lvsnap/
# rm /etc/cron.hourly/monitor_snapshot
Удалить сценарий cron daemon (который не используется).
Повторный монтаж снимка: (см. сценарий remount, с указанием - ссылка в конце документа). Как и прежде:
# lvcreate --size 15G - snapshot --name lvsnap /dev/mapper/vgsnap-lvroot
# mkdir /mnt/vgsnap-lvsnap #
# mount -o ro /dev/vgsnap/lvsnap /mnt/vgsnap-lvsnap
Если вы сохранили monitor_snapshot в своем домашнем каталоге, вы можете восстановить его обратно:
# cp /home//monitor_snapshot /etc/cron.hourly/.
# chmod +x /etc/cron.hourly/monitor_snapshot
Вот и все! Следующие инструкции только для увольняющихся ;)
Отбрасывание громкости снимка (если больше не требуется)
# rmdir /mnt/vgsnap-lvsnap
# lvremove /dev/vgsnap/lvsnap
(Вы также можете изменить размер корневого раздела или подкачки, чтобы занять недостающие 15Гб, зарезервированные для подкачки)
Отказ от группы томов - Возможен только путем удаления томов группы томов, что, вероятно, означает удаление установки операционной системы. Но, конечно, нет никакой реальной необходимости удалять группу томов...
Чтобы удалить группу томов:
# vgremove vgsnap
Важное замечание! - форматирование / запуск fdisk и удаление всех разделов НЕ приведет к удалению ни томов, ни группы, так как они записываются на другой части диска.... Поэтому просто используйте инструкции по удалению, приведенные выше, и удалите тома и группу, если потребуется.
Создание cronjob для выполнения резервного копирования с помощью lvcreate -s -L <размер> -n
Здесь имя тома - это имя тома, чей снимок вы хотите сделать. Для более подробной информации вы также можете обратиться к этому учебнику