Wednesday, October 14, 2015

Cкрытые возможности Clonezilla — клонирование и восстановление сохраненного образа жесткого диска на накопитель меньшего объема


Уважаемые читатели блога www.ithabits.ru. Поздравляю всех с наступившим новым 2014 годом и желаю всяческих успехов, благополучия и процветания.
Не сомневаюсь, что в канун Нового года многие выбрали в качестве подарка себе или своим близкимтвердотельные накопители SSD. И это правильно. SSD в компьютере вещь замечательная.
Я тоже не остался в стороне и установил в ноутбуке моей жены твердотельный накопитель вместо традиционного механического HDD. Не перестаю восхищаться тому эффекту, который достигается таким апгрейдом компьютера. Трехлетний Acer с I5 теперь загружается “с нуля” примерно за 20 секунд. Но загрузка — это не главное. Главное с какой изумительной скоростью компьютер стал откликаться на любые запросы пользователя.
В этой связи в качестве темы для первой публикации в новом году я вновь выбрал описание возможных способов быстрого и безопасного “переезда” с одного жесткого диска на другой с помощью утилитыClonezilla live.
Ранее на станицах блога Clonezilla live было посвящено три полноценных публикации, в которых рассматриваются основные аспекты работы данной программы с дисковыми накопителями. Не смотря на это, практически нераскрытой оказалась наиболее актуальная в связи с распространением твердотельных накопителей тема последнего времени. А именно, как с помощью Clonezilla live перенести систему с большего диска на меньший.
Надеюсь, что данная публикация, посвященная клонированию и восстановлению из образа системы на накопитель меньшего чем исходный объема окажется весьма полезной и востребованной.
Постараюсь сделать статью максимально самодостаточной и приближенной к инструкции по пользованию Clonezilla live. Вместе с тем, для того, чтобы избежать явных повторов, по ходу дела я буду давать ссылки на нужные места предыдущих материалов.
Короткий экскурс для тех, кто еще не читал предыдущие публикации.

Назначение и основные возможности программы Clonezilla

Утилита Clonezilla предназначена для создания резервных копий (образов) дисковых накопителей и их отдельных разделов, а так же для восстановления системы из сохраненных образов в случае аварии.
Для работы с образами программа позволяет использовать не только локальные носители, но и сетевые серверы SSHSamba и NFS.
Помимо создания образов утилита позволяет выполнять непосредственное клонирование исходного накопителя на другой.
Программа разрабатывается в лаборатории NCHC (National Center for High-Performance Computing)(Тайвань) как свободное программное обеспечение (СПО) с открытым исходным кодом.
В этом смысле Clonezilla представляет собой бесплатную альтернативу широко известным коммерческим продуктам, таким как Acronis и Norton Ghost.
В основе работы программы лежит набор утилит и пакетная база проекта Partclone .
Программа распространяется в составе Live CD (Clonezilla live) на платформе Linux (DebianUbuntu) в  версиях для 32 и 64-разрядных компьютеров.
В первой статье, как, впрочем, и в последующих, при описании возможностей программы я неоднократно говорил о том, что Clonezilla не умеет работать с целевыми накопителями размером меньше исходного.
В пользу этого до сих пор говорит и фраза “The destination partition must be equal or larger than the source one” раздела “Limitations” на главной странице проекта.
Так вот, самое интересное, что на самом деле это не так. И в сегодняшней статье я попробую разобрать возможные варианты клонирования с большего на меньший накопитель в Clonezilla live.

Создание загрузочной флешки (usb flash drive) с Clonezilla live

Загрузка программы и способы создания загрузочной флешки Clonezilla live были достаточно подробно рассмотрены в первой статье. В целом все рекомендации остались в силе. Сегодня к ним можно добавить следующие.
С момента прошлых публикаций изменились версии программы. При подготовке материалов данной статьи использовались: “clonezilla-live-2.2.1-25-i686-pae” и “clonezilla-live-20140114-saucy-i386”. Данная информация может быть важной с точки зрения повторяемости результатов. Так что, обязательно скачайте с официального сайта свежую версию программы.
Неожиданно появился аргумент в пользу “Stable releases” (Debian). “Alternative stable releases” после записи на USB Flash Drive перестал показывать экран выбора языка интерфейса. Это, конечно, совершенно не смертельно, но и в процессе работы все время выскакивали ошибки, связанные с локализацией. Уверен, что эта ошибка будет исправлена в следующей версии.
Помимо рекомендованных в первой статье способов создания загрузочной флешки с помощью пакетного файла makeboot.bat, входящего в состав файлов сборки программы, и утилиты Universal USB Installer сегодня нельзя не упомянуть о фирменной утилите Tuxboot, которую можно скачать  отсюда.
tuxboot
Единственное, что можно отметить по поводу Tuxboot, это возможность скачивания актуальных версий образов непосредственно в процессе подготовки. В целом алгоритм создания загрузочной флешки с помощью данной утилиты тривиален.
Помимо непосредственно Clonezilla имеет смысл сразу же скачать образ Gparted-live. Сделать это можно в Tuxboot или отсюда.
Напомню, что программа GParted (GNOME Partition Editor) представляет собой мощный редактор дисковых разделов, позволяющий выполнять самые различные операции: создание, изменение размера, перемещение, удаление, проверку целостности файловой системы.
Программа разработана для платформы Linux. В данном случае речь идет о ее Live CD версии —GParted-live.
В некоторых случаях при операциях клонирования большего накопителя на меньший с помощьюClonezilla GParted-live может быть крайне полезен и даже необходим для предварительного и последующего изменения размеров разделов. К этому мы еще вернемся.
Помимо GParted-live утилита GParted включена в состав многих других Live CD сборок. Например,Boot Repair Disk (ознакомиться и скачать можно отсюда) или Linux-Secure-Remix (забираем тут).
К сожалению не удалось найти ни одной СПО сборки, на которой Clonezilla и GParted присутствовали бы одновременно — GParted-Clonezilla LiveCD, на который есть ссылка в разделе “Related LiveCD” сайта “clonezilla.org” безнадежно устарел и не работает.
Остается только коммерческий Parted Magic, ссылка на который есть в первой публикации.
Будем считать, что все дополнения к подготовительным операциям на этом закончились. Переходим непосредственно к теме сегодняшней публикации.

Создание образа диска в Clonzilla live в режиме «Expert»

Загружаем компьютер с заранее подготовленного usb flash drive или CD с Clonezilla live. Последовательно проходим экраны загрузки системы, выбора языка интерфейса, раскладки клавиатуры и запуска программы. С вашего позволения я пропущу их описание. Тем, кто никогда не работал с программой, имеет смысл посмотреть первую статью, в которой этот процесс подробно рассмотрен.
В отличие от предыдущих публикаций, в которых все описанные действия в программе Clonezillaвыполнялись в режиме «Beginner», то есть с “заводскими” установками, сегодня мы будем работать исключительно в режиме «Expert».
Clonezilla-expert-level
Далее выбираем “savedisk” и имя сохраняемого образа. Оставляем приоритет partclone > partimage > dd (-q2).
Отключение сохранения pagefile в Clonezilla
По сути дела единственное, что стоит изменить в стандартных настройках при сохранении образа, это отключить запись файлов pagefile.sys и hiberfil.sys для Windows (-rm-win-swap-hib). Тем самым будут уменьшены как размер образа, так и время его создания.
Все остальные параметры оставляем по-умолчанию: сжатие –z1p, размер томов, на которые будет делится образ при сохранении (2000 — 2 Гб).
В заключении можно выбрать желаемое действие после завершения создания образа: «ничего не делать», «перезагрузить компьютер» или просто «выключить».
Далее все также, как в режиме «Beginner».

Восстановление сохраненного образа диска на накопитель меньшего объема с пропорциональным изменением размеров разделов

Начинаем с самого интересного. Попробуем в режиме «Expert» записать сохраненный с помощьюClonezilla образ жесткого диска, который предварительно никоим образом не модифицировался, на накопитель меньшего объема.
Для тестирования возьмем HDD с операционной системой Windows 7 с такой разметкой разделов:
Исходный HDD — 250 ГБ, разделен на три раздела:
  1. Системный том — “Зарезервировано системой”, NTFS, 100 МБ;
  2. Загрузочный том С:\ – основные файлы операционной системы + профили пользователей, NTFS, 95 ГБ;
  3. Дополнительный том (буква любая) – раздел в оставшейся части накопителя, 155 ГБ.
Попробуем клонировать исходный диск на значительно меньший целевой:
Целевой SSD (или HDD) — 100 ГБ.
Создаем с помощью Clonezilla live образ исходного диска так, как это было описано выше. Затем устанавливаем в компьютер новый накопитель и восстанавливаем на него образ в режиме «Expert» следующим образом (я пропускаю описание начальных шагов):
Clonezilla-expert-skip-shk-dest-disk-size
Устанавливаем главный для рассматриваемых вариантов параметр “Skip checking destination disk size before creating partition table” (-icds). По какой-то причине этот пункт остался без перевода на русский язык. Сделаем это самостоятельно – “Пропустить проверку размера целевого диска перед созданием таблицы разделов”.
Если не установить данный параметр, то на этапе создания partition table программа просто остановится.
Создание таблицы разделов в Clonezilla
На следующем шаге выбираем “Создать таблицу разделов пропорционально” (-k1).
После выбора указанных параметров начнется процесс восстановления образа с одновременным изменением размеров разделов в соответствии с объемом нового диска.
Результат данной операции для Windows 7 превзошел все самые смелые ожидания – после первого старта с нового SSD система запустила проверку разделов (chkdsk), которая была успешно пройдена, после чего загрузилась без каких бы то ни было проблем. Но это не все. Размеры разделов оказались действительно измененными пропорционально, всех, кроме первого “Зарезервировано системой”. Он остался 100 Мб (!).
Вот так выглядит разметка исходного (Диск 1) и нового (Диск 0) носителей:
Win7-disks
Результаты восстановления образа большего накопителя на меньший для других операционных систем получились такие:
  • Windows XP – работает без проблем;
  • Windows 8.1 – образ был восстановлен, но с ошибками. В отличие от Windows 7 в данном случае Clonezilla пропорционально изменила и размер первого раздела (350 Мб) и по какой-то причине не смогла на него правильно записать данные (в процессе было сообщение об ошибке). После такого переноса система не запустилась, но ее легко удалось реанимировать с помощьюBcdBoot.
  • Linux – восстановление образа с изменением размеров разделов не получилось.
Кроме того, ни для одной операционной системы не получилось выполнить клонирование с изменением размеров разделов непосредственно с диска на диск.
Описанный выше способ переноса системы в Clonezilla live представляется весьма интересным и перспективным. Не смотря на то, что работает он не всегда и не для всех операционных систем, по крайней мере для Windows XP и Windows 7 его уже можно применять.
В этой связи рассмотрим еще один способ переноса, который работает как при непосредственном клонировании с накопителя на накопитель, так и при восстановлении из сохраненного образа.

Клонирование или восстановление сохраненного образа диска на накопитель меньшего объема с предварительным изменением размеров разделов

Частично мы уже рассматривали этот вариант в предыдущей статье.
Смысл данного метода достаточно очевиден и заключается в предварительном изменении размеров разделов на исходном носителе. Размеры разделов должны быть изменены таким образом, чтобы их суммарный объем не превышал объема нового накопителя.
Напомню, что начиная с Windows 7 сжать/увеличить разделы можно непосредственно в “Управление компьютером” –> “Управление дисками”.
Для более сложных манипуляций с разделами, таких как перемещение и копирование, и для разделовLinux может быть с успехом использована уже упомянутая выше утилита Gparted.
О том, как изменить размер разделов в графическом интерфейсе Windows 7 / Windows 8 и с помощью консольной утилиты Diskpart можно посмотреть в предыдущей статье. Интерфейс программы Gpartedбыл представлен здесь.
В Linux, скорее всего, с помощью Gparted придется не только уменьшать, но и передвигать некоторые разделы вперед. В противном случае не получится сжать extended раздел и, соответственно, перенести его на новый диск.  
После того, как тем или иным способом разделы на исходном носителе будут уменьшены до нужных значений, можно приступать к переносу (клонированию). В зависимости от ситуации перенос системы на новый накопитель можно осуществить как через создание образа, так и непосредственно с исходного диска на новый.
Думаю, что владельцы ноутбуков в подавляющем большинстве предпочтут перенос через образ на внешнем носителе.
Загружаем компьютер с носителя с Clonezilla live. Я вновь пропущу неоднократно описанные в предыдущих публикациях шаги. В целом они достаточно тривиальны даже для тех, кто программой ранее не пользовался.
Выбираем предпочтительный вариант работы – “device-image” или “device-device” и режим “Expert” запуска мастера.
На главном экране выбора расширенных параметров, который мы уже рассмотрели выше, нужно вновь отметить “Skip checking destination disk size before creating partition table” (-icds).
Перед началом клонирования или восстановления созданного ранее образа выбираем метод создания разделов по-умолчанию — “Использовать таблицу разделов с исходного диска”.
Использование таблицы разделов исходного диска в Clonezilla
Запускаем процесс клонирования или восстановления из образа, дожидаемся завершения, перезагружаем компьютер с нового дискового накопителя и радуемся полученному результату.
После того, как система успешно загрузится, если расчет новых размеров разделов был сделал с запасом, нужно растянуть их на величину незанятого пространства на новом носителе.
Успехов. И обязательно поделитесь результатами – что получилось сделать, что не получилось, в чем вероятная причина.

Клонирование жестких дисков в программе Clonezilla live — способ простого переноса системы на SSD

Здравствуйте уважаемые читатели блога www.ithabits.ru. Сегодня мы разберемся с возможностями программы Clonezilla live клонировать жесткие диски. По ходу дела уделим внимание твердотельным накопителям – SSD (solid-state drive), которые приобретают последнее время у пользователей все большую популярность.
Причина популярности SSD понятна – эффективность апгрейда компьютера заменой механического диска на твердотельный чрезвычайно высока. Можно даже сказать, что после такой перестановки получается, как бы, новый, на порядок более быстрый, компьютер.
В силу того, что отнюдь не все счастливые обладатели SSD хотят или имеют возможность сделать свежую установку операционной системы, тема клонирования дисков, или отдельных дисковых разделов, является сегодня весьма актуальной.
Вопросы, связанные с установкой SSD в компьютер, рассматривались на страницах блога достаточно подробно в цикле статей с общим названием “Перенос Windows 7 на твердотельный диск небольшого объема”. На текущий момент времени эти статьи являются одними из наиболее популярных.
Они были написаны “по горячим следам” с сильным акцентом на маленький объем SSD. В них освещены практически все важные моменты, такие, как уменьшение занятого операционной системой места на жестком диске (часть 1), перенос профилей пользователей Windows на второй диск (часть 2часть 3) и, наконец, настройка и оптимизация системы на твердотельном накопителе (часть 4).
А вот сам процесс клонирования жесткого диска в процессе переноса операционной системы на новый hdd или ssd, как таковой, оказался в тени. Это совершенно не оправдано и сегодня мы постараемся восполнить этот пробел с помощью программы, вернее, Live CD Clonezilla live.

Слово “простой” в заголовке имеет следующий смысл:
– клонирование дисков или разделов не будет сопровождаться никакими предварительными переносами каталогов и файлов, будь то профили пользователей или системные папки, на несвойственные им места, и прочими ухищрениями с целью освободить место на системном носителе;
— “простой” в смысле несложный в реализации и не затратный.
Настоятельно рекомендую прочитать предыдущую статью в которой описывается порядок создания резервных копий носителей с помощью Clonezilla live. В ней подробно разбираются особенности и интерфейс программы.
Нам понадобится загрузочное устройство с Clonezilla live. Как сделать загрузочную флешку описано, опять же, в предыдущей статье или можно посмотреть здесь.
Если перенос осуществляется с большего HDD на меньший, то очень желательно, но не обязательно, иметь еще одно устройство, на которое можно сделать бекап исходного диска.
Разберем следующие возможные варианты клонирования:
  • на целевой диск такого же или большего размера;
  • на целевой диск с объемом меньше исходного.
Если Вы прочитали предыдущую статью, то уже знаете, что Clonezilla не умеет разворачивать свои образы дисков на целевые диски меньшего объема. Прямое клонирование диска на диск меньшего размера также не поддерживается. Но это, как мы увидим, не такая уж серьезная проблема.  
Внутри этих двух вариантов:
  • клонирование накопителя целиком;
  • клонирование отдельных разделов.
Для простоты изложения предположим, что исходный HDD имеет объем 250 ГБ, целевые, соответственно, 250ГБ, 350ГБ и, например, 120ГБ (будем условно считать, что это SSD).
Примем такую, достаточно типовую для “компьютера из магазинная” конфигурацию разделов на исходном накопителе с Windows:
  1. Системный раздел — “Зарезервировано системой”, NTFS, 100МБ (Windows 7) – 350МБ (Windows 8);
  2. Загрузочный раздел С:\ – основные файлы операционной системы + профили пользователей, NTFS, 125 ГБ;
  3. Дополнительный раздел (буква любая) – раздел в оставшейся части диска, 125 ГБ.
Конфигурация разделов на компьютере с Linux может быть, например, такой:
  1. Системный раздел, смонтированный в корень Linux “/”, Ext4, 15…35ГБ;
  2. Раздел под домашний каталог “/HOME”, Ext4, 205ГБ;
  3. Раздел подкачки “SWAP”, 10ГБ.
Клонирование дисков с Linux все же не так актуально, как Windows, в силу того, что он проще устанавливается, а пользовательские данные со всеми настройками программ переносятся вообще на раз и два.
Если соберетесь устанавливать Linux до того, как я наконец опубликую запланированную на эту тему статью, обязательно выделите под “/HOME” отдельный раздел.
В этой статье разберемся с клонированием всего содержимого накопителя, то есть без выделения дисковых разделов, а в следующей займемся клонированием отдельных разделов.

Клонирование исходного диска на целевой диск

Клонирование диска на диск равного размера

Такой вариант может иметь место, если винчестер начал подавать первые признаки умирания, если есть несколько одинаковых компьютеров и надо быстро установить на них систему, наконец, если объем SSD совпал с объемом исходного HDD (сомнительно, конечно, что последнее может произойти).
Монтируем целевой диск в компьютер (его в этом случае специально подготавливать не нужно), устанавливаем загрузочное устройство с Clonezilla live и загружаем компьютер с него.
С вашего позволения я не буду повторять сделанных в прошлый раз описаний всех шагов загрузки. За исключением второго экрана — “Choice language”, на котором нужно выбрать предпочтительный язык интерфейса, все остальные проходятся простым нажатием на клавишу “Enter”.
1 – 4.
5. На пятом шаге нужно сделать выбор в пользу работы непосредственно с устройства на устройство:
Выбор работы с целевым диском в Clonezilla
Выбираем “device-device работать непосредственно с диска на диск или с раздела на раздел”;
6. Соглашаемся с уровнем “Beginner” (как мы уже выяснили в прошлый раз, ничего обидного в этом определении нет);
7.Выбор вариантов клонирования в Clonezilla
В соответствии с поставленной в данном случае задачей, выбираем “disk_to_local_disk клонировать локальный диск на локальный диск”;
8. На этом шаге выбираем исходный диск. С их обозначением в операционной системе Linux мы разобрались в прошлый раз;
9. Выбираем целевой диск.
Хорошо бы тут ничего не перепутать.
Помнится, когда-то очень давно, я поздним вечером в одной из организаций закончил инсталляцию одного нового компьютера, а к утру их, как обычно, должно было работать уже несколько.
Оставалось выполнить клонирование готового жесткого диска на диски других компьютеров партии и … я бодро катанул чистый винчестер на только что подготовленный. Устал уже к этому моменту сильно. Обидно было… Нет слов. До сих пор помню.
Больше я себе такого не позволял никогда. И это точно была не Clonezilla – ее тогда еще и в помине не было.
10 . Проверку целостности исходного диска пропускаем. Убеждаемся еще раз, что все было выбрано правильно и два раза изъявляем  желание начать операцию клонирования нажатием “y”.
Утвердительно отвечаем на вопрос нужно ли клонировать загрузчик на новый диск — в противном случае без дополнительных манипуляций система с клонированного накопителя не загрузится.
Еще раз подтверждаем серьезности намерений и если с исходным и целевым дисками все в порядке процесс начинается. Остается дождаться его завершения, выключить компьютер и удалить из него исходный накопитель.
Вот так все просто.

Клонирование диска на целевой диск большего размера

Клонирование целого диска на целевой диск большего размера по технологии совершенно ничем не отличается. В результате такого клонирования на целевом носителе будут созданы разделы в полном соответствии с исходными, а в конце появится незанятое место.
Так если исходный накопитель был объемом 250 ГБ, то на целевом объемом 350 ГБ появится “лишние” 100 ГБ. Как с ними поступить зависит от конечной цели – можно создать новый раздел, или увеличить размер последнего.
Увеличить размер раздела за счет нераспределенного места на жестком диске можно так.
В Windows проще всего для этих целей воспользоваться графическим интерфейсом программы “Расширенное управление дисками” (“Управление компьютером” –> “Управление дисками”).
Управление дисками в Windows
Так как иллюстрации делались в гостевой машине Windows 7 VirtualBox, размеры дисков уменьшены в 10 раз, по сравнению с условными соглашениями в начале статьи (за исключением первого раздела 100 МБ).
Все операции можно осуществлять в клонированной системе. В данном случае исходный “Диск 0” оставлен для наглядности.
Предположим, что мы хотим за счет незанятой части накопителя увеличить раздел DATA (H:). Через меню “Действие” или из контекстного меню (по правой кнопке мыши на DATA (H:)) выбираем “Расширить том”. Запустится “Мастер расширения тома” в котором все достаточно очевидно – надо лишь выбрать на сколько увеличить раздел. Увеличиваем на весь объем “Не распределен”.
Раздел после изменения размера
Так будут выглядеть разделы целевого «Диск 1» после завершения работы мастера.
Аналогичного результата можно достичь в командной строке Windows с помощью утилиты Diskpart. Ее нужно запустить в командной строке от имени администратора.
diskpart
list disk
— выводим список дисков компьютера;
sel disk M— выбираем номер нового диска M (в нашем случае -1). Если диски разной емкости, то выбрать нужный диск несложно;
list part— находим номер раздела, который нужно расширить;
sel part N— выбираем номер нужного раздела (в нашем примере — 3);
extend
После сообщения о том, что том успешно расширен:
exit
Для работы с разделами в среде Linux существует довольно продвинутая программа GParted.
Те, кто не имеют установленной системы Linux, могут, тем не менее, воспользоваться GParted с Live CD Parted Magic, о котором я упоминал в прошлый раз.
Эта программа может оказаться незаменимой если, например, нужно задать правильное смещение для уже существующего раздела Windows.
Выбор целевого диска в программе Gparted в Linux
Работу с разделами в GParted нужно начать с выбора нужного накопителя (если их несколько, как в нашем примере).
Выбираем раздел, размер которого предполагается изменить за счет свободного места (/dev/sdb3), нажимаем “Resize/Move”, устанавливаем максимально возможное значение “New size (MiB)”, соответственно, значение “Free space following (MiB)” должно стать равным нулю. Нажимаем “Resize/Move” в этом окне и затем “Apply” в основном.
Через некоторое время процесс будет завершен и из программы можно выйти.

Клонирование целого накопителя на целевой накопитель меньшего размера

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

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

В заключении необходимо коротко упомянуть о том, что Clonezilla позволяет выполнять клонирование накопителей по сети.
Не могу с ходу сообразить, кому это может понадобиться, но в практике всякое бывает. Например, есть быстрая сеть, и нужно клонировать накопитель на сильно удаленный компьютер.
Для этого нужно загрузить исходный компьютер с Live CD Clonezilla и на соответствующем шаге выбрать вариант:
Выбор удаленного клонирования диска в Clonezilla
«disk_to_remote_disk клонировать локальный диск на удаленный диск«.
Далее последует выбор исходного (клонируемого) накопителя и переход в ожидание сетевого соединения.
Целевой компьютер также нужно загрузить с носителя Clonezilla live, но не запускать на нем программу, а сразу перейти к командный режим.
Далее на целевом компьютере нужно выполнить команды, представленные на экране исходного компьютера.
В случае успешного сетевого соединения можно запустить процесс удаленного клонирования. Времени на такое клонирование потребуется больше, чем в случае операций с локальными носителями. Оно будет целиком зависеть от скорости сетевого соединения. Но, возможно, в ряде случаев это окажется вполне оправданным.
__________________________________
В следующий раз мы рассмотрим клонирование отдельных разделов жесткого диска, в том числе, с уменьшением их размеров, при необходимости. Этот вариант в большей степени подойдет для переноса операционной системы на твердотельный накопитель, так как емкость целевого SSD, как правило, меньше емкости исходного механического HDD.

Tuesday, October 13, 2015

Adminer — веб-интерфейс для баз данных размером в один .php файл




В свете недавнего поста про сравнение PostgreSQL и MySQL, в комментариях возникла проблема выбора удобного интерфейса для работы с постгресом. Я сам столкнулся с такой проблемой, решив поискать альтернативы всем известному phpMyAdmin / php*Admin, который считается стандартом у веб-мастеров.

А так как по жизни я люблю минимализм и скорость, то меня гложило изнутри чувство, что ради просмотра структур таблиц, данных в БД, выполнения SQL-запросов я тащу огромнейшую кучу файлов, в архиве занимающих 5МБ, то я занялся поисками. И был найден www.adminer.org

Бесплатная веб-морда с открытым исходным кодом, предельно напоминающая по интерфейсу phpMyAdmin в виде одного *.php файла размером в 189 КБ (в минимальной комплектации). Функционал покрывает нужды 95% разработчиков:
  • Поддержка MySQL, PostgreSQL, SQLite, MS SQL, Oracle, SimpleDB, Elasticsearch, MongoDB
  • Поддержка мультиязычности
  • Бесплатна для любого использования
  • Просмотр, создание, изменение данных
  • Работа со структурами таблиц и баз
  • Работа с индексами
  • Дамп и импорт
  • Механизм аутентификации с сохранением сессий
  • Поддержка тем оформления (+1 .css файл, я использую этот)
  • и т.д.


Быстрее всего будет ознакомиться c демкой и со скриншотами на сайте.

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

Emcssh – простое управление цифровыми ключами

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



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

«Мечта об исправно работающей PKI стара, как сама идея криптоключа, – сказал как-то автор одного PKI решения. — Сделать основанные на криптографии инструменты простыми и доступными каждому пользователю — это еще одна сложная задача, которую разработчики общедоступной инфраструктуры поддержки и использования криптоключей давно пытаются решить и, похоже, им это начинает удаваться.»

Какое решение предлагает emcssh от EmerCoin?


Автор и разработчик программы Олег Ховайко рассказал блогу Hashflare о практических свойствах и значении своей разработки. (Напомним, что ранее мы уже писали о новой криптовалютной сети Эмеркоин, в рамках которой функционирует несколько инновационных разработок):

Предположим, что вы — системный администратор довольно крупной распределённой сети. Под вашим управлением — десятки и сотни компьютеров, к которым нужно обеспечивать доступ пользователей через ssh (secure shell). В нашей сети существуют также групповые адреса-роли, к которым имеют доступ сразу несколько пользователей.

Один из примеров управления сетью – это система pubmed.gov, над которой я когда-то работал. Для администрирования сети из 500 компьютеров, и нескольких десятков групповых аккаунтов, к которым имеют доступ десятки человек, необходим удобный способ управления этими данными.

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

Олег пояснил, что ранее для решения проблемы управления публичными ключами применялись только PKI-решения корпоративного уровня с выделенными серверами авторизации: домен-контроллерами (на которых работал LDAP/Kerberos).Подобные решения требуют многократного дублирования (на случай падения сервера) и решения проблемы репликации данных между серверами авторизации. В результате, получается отдельная сеть в сети, требующая дополнительного обслуживания и соответствующих расходов. Коммерческие предложения по домен контроллерам от OracleIBMHP стартуют от $5000. Создать глобальную систему достоверной аутентификации на базе таких решений никто ранее не пытался. Но на базе блокчейна сделать это оказалось возможным.

Emcssh — это инфраструктура публичных ключей общемирового масштаба, World Wide Public Key Infrastructure. Она решает проблему управления ключами, используя то свойство блокчейна, что он достоверен и не может быть фальсифицирован. Достоверность поддерживается постоянной работой майнеров.

Как работает emcssh?


Индивидуальный пользователь генерирует пару ключей, и в своём кошельке регистрирует публичный ключ из пары в EmerCoin NVS.

В качестве имени ключа используется произвольная текстовая строка с сервис-префиксом «ssh:», например: ssh:geek.
После регистрации этот ключ попадает в блокчейн и становится доступным каждому кошельку сети. Любой сервер, участвующий в emcshh, держит запущенным EMC-кошелёк, из которого может, при необходимости, быстро извлечь тот или иной публичный ключ. При логине пользователя на сервер, поддерживающий emcshh, запускается программа emcssh, которая читает локальный файл, содержащий имена ключей с разрешенным доступом.

Предположим, имеется групповой акаунт netadm, к которому разрешён доступ emcshh -пользователям kamillo и emergator. Тогда файл emcshh_keys будет содержать две строки-имени:
kamillo
emergator

Если администратор решил дать доступ к этому аккаунту пользователю geek, то это имя он просто добавляет в файл.

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

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

Допустим, администратор решил дать доступ к групповому акаунту netadm всем сотрудникам проекта EmerCoin. Для этого он должен добавить в свой файл emcssh_keys ссылку на NVS-запись EmercoinTeam. Cсылку можно добавить, присоединив символ '@' к имени.

Тогда файл emcssh_keys будет иметь вид:
kamillo
emergator
geek
@ EmercoinTeam

При обработке такого файла emcssh найдёт ключи для пользователей (kamillo, emergator, geek), а ссылку @EmercoinTeam обработает как список, имён пользователей, и уже для них найдёт соответствующие ключи. Списки могут быть вложенными, и обрабатываются рекурсивно. Например, может существовать список corp_team, который ссылается на списки
@ support, @ admins, @ tech. А те, в свою очередь, могут содержать как ssh-ключи, так и ссылки на другие имена и списки.

Таким образом, преимущество emcssh заключается в том, что стоит один раз при установке сервера включить EmerCoin клиент – и все администрирование доступа будет сведено к управлению именами в вашем кошельке.

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

В качестве еще одного примера практического применения этой разработки, Олег приводит опыт компании HashCoins:

HashCoins с успехом применяет технологию emcssh для управления доступом к массиву майнеров, расположенных в нескольких дата-центрах. Это решение позволило радикально снизить затраты на администрирование распределённой вычислительной сети. Причём emcssh, помимо стандартного применения (храненине ssh-ключей), использован и для управления списками SerialID SSL-сертификатов подсистемы WEB-доступа EMCSSL.

Каковы жизненные циклы ключей в сети Эмеркоин и в рамках emcssh?


Публичные ключи ssh не имеют срока давности, поэтому действуют до тех пор, пока не будут заменены хозяином, или же запись в NVS не истечёт.

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

wild_one#
Хорошо. То есть, Вы предполагаете, что у группового аккаунта в хост-системе будет для всех пользователей один и тот же UID? Вообще говоря, держать такие аккаунты никогда хорошей практикой не было. В чем сложность работы через группы/extended ACL опять же?

Если у Вас крупная сеть, то это значит, что в том или ином виде будет развернута система управления конфигурацией (Ansible, Puppet… далее на выбор) — в чем сложность «разливать» SSH ключи через нее?

В общем да, у каждого подхода есть свои плюсы и минусы — но здесь я явно вижу только упрощение работы с некоей bad practice в виде групповых аккаунтов.