Преобразование динамического диска в базовый без потери данных

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

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

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

Сразу оговорюсь, проблемы с файловой системой всё еще вероятны, поэтому стоит перед этими действиями сохранить хотя бы наиболее ценные данные.

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

Из всех вариантов взял тот, что описан на RemontCompa.ru с помощью утилиты TestDisk.
Можете использовать инструкции оттуда, а я просто причесываю и копирую их сюда, на случай, если там статья вдруг помрёт.

Итак – желательно перезагрузиться и не запускать лишних программ.
– Добываем, распаковыаем и запускаем утилиту testdisk_win.exe. (желательно не на тот диск, с которым будут проводится манипуляции)
– Выбираем пункт Create (создаем новый лог файл)
– Выбираем нужный диск из списка (по модели, по объему) с идентификацией придется что-то придумать вам самим. Жмем Proceed.
– Выбираем тип таблицы разделов – Intel
– Жмём Analyze, после этого должны получить ожидаемый список разделов (если делали динамическое перераспределение, вы их увидите как отдельные)
– Жмем backup, тут возможно придётся подождать, пока программа прочтет и сохранит структуру таблицы разделов в свой бэкап.
– Возможно появится экран с вопросом “Should TestDisk search for partition created under Vista or later”, отвечаем Y, но этого экрана может и не быть.
– Теперь TestDisk покажет список найденных разделов и предложит их сохранить в обычном формате. Дополнительно вы можете провести манипуляции с разделаем, типами файловых систем и посмотреть список файлов. Но если вы не понимаете зачем это и почему, лучше не рискуйте и просто жмите Enter.
– Пока всё что вы сделали – виртуальные действия, а вот на текущем шаге вам предложат записать все изменения на диск. Если уверены, что выбрали правильный диск и всё сделали правильно, или просто любите рисковать – жмем Write. Подтверждаем, что мы действительно хотим это сделать Y.
– Программу можно закрывать и нужно перезагрузиться, после перезагрузки, если всё сделано правильно, ваш диск опять станет обычным и душевное равновесие восстановится.

Опять же, на случай если с TestDisk’ом, что-то случится, оставлю тут актуальную на момент написания версию (7.2) программы. Но лучше качать с оригинального сайта и в любом случае не забывайте проверять скачанное антивирусом, хотя бы на virustotal.

Web server ssl config generator

Simple, easy to use and secure config generator for number of web-servers, like:

  • Apache
  • Nginx
  • HAProxy
  • AWS ELB

Mozilla SSL Configuration Generator

Исправление ошибки при установке Visual C++ Redistributable 2015

Итак программы с Visual C++ 2015 добрались и до меня, и захотели установить свои библиотеки. И не получилось. Потому что установились с ошибкой, и программы ругаются на то, что не могут найти файлик api-ms-win-crt-stdio-l1-1-0.dll .

После чтения различных форумов решил вопрос следующим образом.
Установщик Visual C++ Redistributable 2015 при установке пытается поставить некий пакет исправления “KB2999226” (если у вас его еще не стоит). И у него это не получается.

  1. Нужно найти файл “Windows6.1-KB2999226-x64.msu”, он живет где-то в папках внутри “C:\ProgramData\Package Cache\” (или где там у вас ProgramData, скрытая системная папка)
  2. После того как нашли файл, нужно его распаковать. Сделать это можно с помощью команды: wusa.exe Windows6.1-KB2999226-x64.msu /extract:ExtractedData
    (ExtractedData – имя папки, куда распакуется содержимое.  (Документация по WUSA)

    Но, у меня почему-то WUSA работать отказывается, видимо из-за этого и ошибка при установке, помочь может 7zip. С помощью 7zip распаковываем файл.

    Альтернативный вариант, воспользоваться стандартной программой распаковщиком архивов:
    expand -F:* Windows6.1-KB2999226-x64.msu c:\ExtractedData

  3. Выполняем команду установки обновления, с правами администратора (dism.exe живет в %WINDIR%\System32\Dism.exe)
    dism.exe /Online /Add-Package /PackagePath:Windows8.1-KB2999226-x64.cab

Если все прошло успешно, то перезапускаете установщик Visual C++ Redistributable 2015 и выбираете “Исправить” в вариантах действий.

Лучшие варианты для поиска дешевых авиабилетов

Лучшне на данный момент сайты для поиска и бронирования авиабилетов:
skyscanner.ru
avia.yandex.ru

OpenCart 2.0.2.0 hide out of stock items solution

Somehow this basic functionality still missing in current opencart release (2.0.2.0). So I had to look for solution and found one on the opencart forum.
There is also extension available already, so I’ve downloaded it and really disliked idea of replacing original files.
Since we already have built-in customization solution such as OCMOD.
So I’ve took the best part of this code and wrote simple and straightforward modification extension in OCMOD format.
This extension replaces all matches in catalog/model/catalog/product.php file of following string:

p.date_available <= NOW()

with

p.date_available <= NOW() AND p.quantity >= 1

Succesfully removing out of stock products from buyer attention, but leaving it available from admin console.
Extension available for download from opencart.com.

Cisco Anyconnect and Linux issues -> OpenConnect Solution

Собственно вволю помучашись с Cisco Anyconnect под Ubuntu в безуспешных попытках подключиться к рабочей сети (особенную роль тут играют самоподписанные сертификаты).
Набрел на вполне работающее решение: openconnect.
К нему дополнительно нужно добавить vpnc (клиент для cisco), который мы будем использовать как скрипт для прописывания маршрутов и ДНС.

Собственно под убунту/дебиан все просто:
sudo apt-get install openconnect vpnc

После этого делаем скриптик для подключения вроде такого:
sudo openconnect -b --no-cert-check -u --authgroup < выбор группы, если нужно> -s /etc/vpnc/vpnc-script

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

ADF X-UA-Compatible

How to bypass Compatibility View Mode in IE 8/9 browsers and force the target ADF page to the maximum document mode supported by the IE browser (Standard Mode) ?

There is a new feature introduced in ADF 11.1.1.7/11.1.2.4

  • For 11.1.1.6.0, 11.1.2.0.0, 11.1.2.2.0 and 11.1.2.3.0, download and apply patch 14400317 in your JDeveloper/ADF environment
  • For all the above mentioned versions, add, in the web.xml file of your ViewController project, the following context-param to enabled agent version detection using the Trident version over the browser version:


<context-param>
<param-name>
org.apache.myfaces.trinidad.Agent#OVERRIDE_IE_COMPATIBILITY_MODE
</param-name>
<param-value>true</param-value>
</context-param>

Now no compat header should be added and IE should run happily in native mode.

Note 1555476.1

Русские буквы в правилах SpamAssassin’а

С удивлением обнаружил, что такой старый проект как SpamAsassin до сих пор не избавился от детских болезней, типа неподдержки UTF. Причины понятны – perl, производительность, но надо же.

Вариант решения проблемы:
1. Приводим все к UTF. В файле local.cf прописываем
normalize_charset 1
2. Правим файл Mail/SpamAssassin/Plugin/Check.pm после
use warnings;
добавляем
use utf8;
use POSIX qw (locale_h);
POSIX::setlocale(&POSIX::LC_CTYPE,'ru_RU.UTF-8');

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

Решение найдено на opennet.ru

Freebsd, tar, xz?

В очередной раз обновляя порты, обнаружил, что перестал собираться png.

Выглядело это примерно так:

===> png-1.5.16 depends on file: /usr/local/bin/xz - found
tar: Unrecognized archive format: Inappropriate file type or format
tar: Error exit delayed from previous errors.
*** Error code 1

Похоже что текущая версия tar’а не хочет понимать этот тип архива. Лечится это следующим образом:
Пересобираем libarchive, если ловим ошибку с spawn.h, то пересобираем с ключем ac_cv_header_spawn_h=no (не забываем make clean)

make ac_cv_header_spawn_h=no

После этого в /etc/make.conf добавить строчку TAR=/usr/local/bin/bsdtar.
Все, можно жить дальше ^_-

Дешевые (и даже бесплатные) SSL-сертификаты

Случайно наткнулся на ресурс, который решил положить конец оверпрайсингу такой простой штуки, как SSL Certificates.

https://www.startssl.com/

Сертификат класса 1 – бесплатный, подходит для конкретных сервисов, если нужно что-то большее, то
Сертификат класса 2  – всего 60$ – уже с вилдкардами, блекджеком и т.п.

Load more