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

Переустановкой системы можно исправить любой косяк


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

Предвидя возмущение в комментариях, хочу сделать лирическое отступление. Переустановка займёт, допустим, день, а поиск первопричин при моей квалификации продлится не менее недели, поэтому вдумчивый и методичный подход тут не вариант.

А если всё пойдёт не так


Значит, будем проверять и, в случае чего, переустанавливать. Но компьютер, естественно, используется для работы, на нём, естественно, куча нужных и важных файлов, сотрудника, который им пользуется, под рукой, естественно, нет. Да и если бы он даже был — мой горький опыт показывает, что среднестатистический пользователь на вопрос о том, какие файлы сохранить, как правило отвечает «Все!» и спокойно возвращается к своей повседневной жизни. И какие-нибудь из этих файлов обязательно лежат в таком месте, о существовании которого никто даже не подозревал.

Лучше сделать полную копию раздела


Решение этой проблемы лежит на поверхности — надо действительно сохранить все файлы, которые есть на машине. Это можно сделать прямым копированием, но обычно быстрее и удобнее снять образ всего диска, благо в офисных компьютерах они, по нынешним меркам, микроскопические. «Да это же работа для ddrescue!» — подумал я.

Однако более тщательное изучение диска заставило меня усомниться в собственной адекватности. Винчестер, согласно рекомендациям лучших собаководов, был разбит на единственный логический диск, более известный широкой общественности как C. Из 160 гигабайт на нём было занято 22. Согласитесь, копировать 138 гигабайт ради сохранения двадцати двух было бы несколько экстравагантно.

Копию диска, 80 процентов которого ничем не занято, лучше делать ntfsclone


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

Так как в работоспособности диска сомнений практически не возникало, я решил, что это подходящий момент для того, чтобы попробовать какую-нибудь из утилит, предназначенных для создания образов разделов, но, в отличие от dd и его многочисленных продолжателей, учитывающих особенности файловой системы. То есть не делающих побитовую копию устройства, а сканирующих таблицу размещения файлов для копирования только тех областей, в которых действительно есть данные. Непосредственно на загрузочной флешке нашлась ntfsclone, которая является частью пакета ntfsprogs, созданного, как нетрудно догадаться, для работы с файловой системой ntfs.

ntfsclone может создать файл образа в собственном немонтируемом формате


Единственное, на что я рассчитывал после краткого сеанса общения с гуглом — это получить образ размером 22 гигабайта в специфичном для ntfsclone формате. Этот образ я мог бы сохранить на флешку, для того чтобы в спокойной обстановке развернуть его на все 160 гигабайт и натравить на них антивирусник.

Ходят слухи, что образы, сделанные с помощью ntfsclone можно монтировать с помощью утилиты imagemount, но её на флешке не было, поэтому проверку слухов пришлось отложить на потом.

ntfsclone может сделать сжатый образ, монтируемый штатными средствами


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

Из двух оглашённых выше пунктов следует, что образ, сделанный ntfsclone, можно совершенно спокойно смонтировать стандартной утилитой mount, и нет никакой необходимости что-то куда-либо разжимать, а значит, проверку на вирусы можно делать на 22 гигабайтной копии архива, а то и на нём самом!

ntfsclone прекрасно справляется с задачей копирования с исправных носителей


Несмотря на то, что, как понятно из названия, программа работает только с разделами, отформатированными в ntfs, её полезность сложно переоценить! Ничего лучше для бездумного изготовления резервной копии пустого на 80 процентов диска просто не существует! Экономия времени огромна, экономия пространства безмерна, а побочных эффектов просто-напросто нет!

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

ntfsclone понятна и проста в использовании


Кстати, в статье нет ни одного примера. Это потому, что пользоваться программой действительно очень-очень просто! Но без примеров, конечно, нельзя.

Образ диска получается одной командой


ntfsclone -o <файл куда мы сохраним образ> <раздел образ которого делаем>
То есть, для снятия образа диска C: в файл win_c.img нужно написать:
ntfsclone -o win_c.img /dev/sda1
И это всё! Sparse файл будет создан автоматически, если такая фича есть в файловой системе, в которую мы положим файл с образом.

Монтируется образ совершенно обычным способом


mount -o loop win_c.img win_c

Главное — при создании образа не ошибиться с форматом


Будьте внимательны! В интернетах часто встречается рекомендация использовать аргумент -s, он же --save-image. Его использование приведёт к созданию образа в специфичном для ntfsclone формате, и, как следствие, отсутствию возможности монтировать этот образ стандартной mount.

ntfsclone — незаменимый инструмент при создании образов разделов отформатированных в ntfs


По сравнению с ddrescue ntfsclone обладает двумя важными преимуществами:

  1. ntfsclone скопирует только реально используемые куски диска, никакого бесполезного багажа.
  2. Образ, созданный ntfsclone, без ключа --save-image, можно монтировать штатными средствами операционной системы.

В общем ntfsclone сильно облегчает жизнь, пользуйтесь им когда ситуация это позволяет.

Комментарии (58)


  1. Evengard
    18.05.2015 14:06
    +5

    Смешанные чувства от прочтения статьи. Звучит очень рекламно, но… Смысл рекламировать бесплатную утилиту под свободной лицензией?..


    1. poxu Автор
      18.05.2015 14:32
      +4

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


      1. eta4ever
        18.05.2015 14:40

        Ну, некоторые продукты Acronis дома хорошо заменяются свободным софтом. Clonezilla, gparted и прочие. А вот чем без бубна заменить True Image для регулярного автоматического резервного копирования с инкрементальными копиями?


        1. poxu Автор
          18.05.2015 14:49

          Ну я бы посмотрел в сторону btrfs и zfs. Они умеют инкрементальные копии, а регулярность можно устроить каким-нибудь кроном. А вот чтобы для любой файловой системы такое сделать — ну может класть образы в ту же zfs, а потом делать инкрементальный снапшот. Но это уже, конечно, не совсем без бубна.


          1. eta4ever
            18.05.2015 14:54

            Я говорю про Windows. Будет у меня дома небольшой «сервер» — хоть Bacula подниму. А сейчас простенький NAS, на который честно купленный True Image делает все так, как надо, и без бубна. Но хотелось бы нахаляву.


            1. reff
              18.05.2015 14:57
              +2

              Например, Veeam Endpoint Backup Free. Конечно, он не безгрешен, но явно неплох. Хочет как минимум Windows 7.


              1. eta4ever
                18.05.2015 15:00

                Спасибо, гляну. А в чем «небезгрешность»?


                1. reff
                  18.05.2015 15:07

                  В отличие от продуктов Акронис, у него лишь одно задание, один «профиль» с настройками.


                  1. Grox
                    18.05.2015 16:56

                    Так может потому что он в версии Free?


                    1. reff
                      18.05.2015 19:24

                      Возможно. Дело в том, что иных версий у этого продукта пока нет.
                      К слову, здесь же, на Хабре, нашел упоминание про Arcserve Unified Data Protection Workstation Free.


                1. Zagrebelion
                  18.05.2015 21:31

                  у меня на рабочем компе veeam создавал ежедневный инкрементальный бакап домашнего каталога 7-8 часов, независимо от дня недели (то есть, объёма изменений); даже если это суббота, и изменившихся файлов — только база аутлука.

                  Встроеный в винду управляется минут за 30.


                  1. Zagrebelion
                    18.05.2015 21:37

                    У веема даже на сайте есть скриншот, как оно 30 мегабайт инк.бакапа делало 9.5 часов.
                    img.veeam.com/product_pages/endpoint/temp/control_panel.png


            1. Anisotropic
              18.05.2015 15:03

              А чем не устраивает встроенный в windows бекапер?


              1. poxu Автор
                18.05.2015 15:07

                Тем, что не создаёт образы, которые можно просмотреть штатным линуксовым mount, тем что требует запущенного Windows и, last but not least, тем что не свободный софт.


              1. eta4ever
                18.05.2015 16:14

                Вы меня, честно говоря, в тупик поставили :) Не помню. Была какая-то проблема, с которой я не смог справиться. По-моему, она касалась инкрементального копирования на сетевое хранилище.


                1. Anisotropic
                  18.05.2015 22:47

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


                  1. eta4ever
                    19.05.2015 00:43

                    Я попробую воспроизвести проблемную ситуацию, отпишусь.


  1. eta4ever
    18.05.2015 14:16
    +2

    Я так и не понял, чем оно лучше штатного семерочного бэкапа.


    1. poxu Автор
      18.05.2015 14:34

      Прежде всего тем, что работает не только для семёрки. Плюс врядли штатный бекап монтируется линуксовым mount. А в качестве антивирусника я использую Live CD от Касперского. Но и попутно не надо разбираться в том, как делается штатный семёрочный бекап.


      1. eta4ever
        18.05.2015 14:36
        +1

        Делается в три клика, через мастер. Ну, а в качестве универсального бесплатного средства я предпочитаю Clonezilla.


        1. bazilxp
          18.05.2015 14:38

          После использования различных сторонних утилит, для клонирования или бекапа дисков…

          Был впечатлен возможностями Маковой “Disk Utility" :) хотя надо будет взглянуть на NTFS Clone


          1. poxu Автор
            18.05.2015 15:02

            Disk Utility умеет снимать образы с ntfs разделов, в которые не пишется дисковое пространство, реально не содержащее файлов?


            1. bazilxp
              18.05.2015 15:26

              я в смысле функционала, NTFS — readonly если не ставить примочек на маке. За статью спасибо


              1. poxu Автор
                18.05.2015 15:31

                Всегда пожалуйста :). Я смотрел на Disk Utility и выяснил как раз то, о чём вы говорите. Думал, может я чего-то упустил тогда.


        1. poxu Автор
          18.05.2015 14:39

          Я тут поредактировал предыдущий ответ. Добавил, что ещё врядли штатный бекап монтируется линуксовым mount.
          Что касается Клонзиллы — она общего назначения и не всё может. Если у меня очень узко очерченная задача, которая решается ntfsclone, которая есть везде — я предпочитаю ntfsclone.


          1. eta4ever
            18.05.2015 14:42

            … которая есть везде — это касается только Linux же?


            1. poxu Автор
              18.05.2015 14:45

              Ну в большей части дистрибутивов линкуса — включена по умолчанию, плюс есть в системах семейства BSD.


              1. eta4ever
                18.05.2015 14:48

                Если мы работаем с Windows-разделами, то для меня логично было бы создавать копии, доступные под Windows. С помощью того же disk2vhd, упомянутого ниже, например. Или штатным бекапом, или акронисом.


                1. poxu Автор
                  18.05.2015 14:58

                  Копии разделов логично создавать так, чтобы они были доступны для той системы, которой вы собираетесь их читать. Для вас это Windows.
                  До того, как я слез с акронисовой иглы, у меня система изготовления бекапов определяла систему, в которой я буду их просматривать, что, по моему мнению, не совсем правильно. ntfsclone — это мой способ развернуть ситуацию правильной стороной.


                  1. bazilxp
                    18.05.2015 15:48

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


                    1. poxu Автор
                      18.05.2015 17:19

                      Гораздо сложнее представить сколько придётся возвращать обратно накопленные за 3 года мелкие модификации в системе, которые будут потеряны после восстановления бекапа.


  1. lair
    18.05.2015 14:20
    +1

    А чем вам dsk2vhd не угодил?


    1. poxu Автор
      18.05.2015 15:12

      Требует для работы Windows и не делает образов, которые монтируются штатными средствами линукса.


      1. lair
        18.05.2015 15:35

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

        Вы требования-то указывайте заранее.


        1. poxu Автор
          18.05.2015 16:29

          Образа мне нужны для того, чтобы в случае неудачи развернуть из них систему как было и чтобы осуществлять проверку на вирусы. Чтобы развернуть бекап Windows не нужен, проверку на вирусы я осуществляю с помощью live cd касперского, который работает на линуксе. То бишь Windows мне скорее мешает, чем помогает. Мешает потому, что запускать штатные средства бекапа на системе забитой вирусами и троянами — удовольствие сомнительное. Возможно это надо было написать отдельно, но я побоялся перегрузить статью, которая планировалась как краткий обзор конкретного юскейса для ntfsclone.


          1. lair
            18.05.2015 16:39

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


  1. bazilxp
    18.05.2015 14:34

    В Принципе с Windows есть такая практика

    1) допустим сегодня 1 Мая 2014 года, устанавливается чистая система накатываются драйвера делается снимок раздела.И Система живет активной жизнью некоторое время 1 года.

    2) Сегодня 1 Мая 2015 года. Данные важные бекапаться. накатывается старый образ, Винда докачивает патчи делается образ. и опять год живет…

    Сама идея «переделывать» образы через определенный промежуток времени.
    Утилита как бы не столь принципиальна, плюс специфическая разбивка и можно Documents Settings перенести на другой раздел.


    1. poxu Автор
      18.05.2015 14:43
      +1

      Думаю это хорошая практика. Но в моем случае ей, увы, не следовали.


    1. ekungurov
      26.05.2015 10:03

      Чем делаете снимок раздела?


      1. bazilxp
        30.05.2015 08:32

        Symantec Norton Ghost


  1. Shrim
    18.05.2015 15:00
    +1

    Пару лет назад делал свой велосипед по резервному копированию: ночью сервер через WOL будил компьютеры, через PXE загружался debian у которого в init был прописан скрипт резервного копирования, сохранялась вся структура диска и все разделы, им же можно было восстановить резервную копию. Идея не прижилась, сервера давно уже нет, но скрипт остался, может кому пригодится (качество кода конечно хромает). Без переделки вряд ли запуститься, но если есть желание поразбираться — в нём достаточно много интересных решений.
    Сейчас делаю разностное резервное копирование на теневых копиях и хардлинках — экономия места значительная и удобный быстрый доступ к любому файлу от любого числа.


  1. ValdikSS
    18.05.2015 15:12
    +1

    Есть partclone, который поддерживает не только NTFS, но еще и btrfs, ext2, ext3, ext4, reiserfs, reiser4, xfs, jfs, FAT, EXFAT, HFS plus, UFS2, VMFS и MINIX.


    1. poxu Автор
      18.05.2015 15:15
      +1

      Таки да. Но partclone обычно не установлен по умолчанию в большинстве дистрибутивов линукса. И не может делать образа, которые можно смотреть с помощью mount. Вернее может, но это непросто организовать. Поэтому, если речь идёт об ntfs — знать об ntfsclone очень полезно.


  1. xsemperx
    18.05.2015 15:47

    Возможно, я что-то упустил, но всегда делал подобное чем-то вроде:
    dd if=/dev/sda1 bs=4096 | gzip -9cf > sda1.dd-image.gz
    +
    gunzip -c sda1.dd-image.gz | dd of=/dev/sda1 bs=4096

    Чем описанный софт лучше?


    1. poxu Автор
      18.05.2015 16:18

      Диск объёмом 160 гигабайт был заполнен данными на 20 процентов. ntfsclone не читает сектора диска, которые не содержат файлов. Это экономит время на создание бекапа и экономит место на диске, ибо gzip эти сектора будет интерпретировать как ценные данные и в нуль не сожмёт.


      1. xsemperx
        18.05.2015 16:24
        -3

        Согласен, в ноль не сожмёт, но результат будет примерно сопоставимым.
        То есть из преимуществ только возможность примонтировать такой образ и скорость создания. Я вас правильно понял?


        1. poxu Автор
          18.05.2015 16:44
          +3

          Если свободное пространство на низком уровне заполнено не нулями, а случайными значениями, то результат будет отличаться в тысячи раз. То есть gzip coжмёт свободное просторанство допустим в 10 раз — получается примерно 13 гигабайт. В случае с ntfsclone вместо 13 гигабайт будет просто 0. Но я сильно сомневаюсь, что gzip сожмёт случайные данные в 10 раз.
          Eсли в же незанятых секторах бинарные нули, то можно смело делать образ с помощью ddrescue с ключом --sparse — это безопаснее, чем голый dd, хотя и не так быстро, как ntfsclone. Об этом подробно написано в моей первой статье
          Сухая выжимка из преимуществ — возможность примонтировать образ, скорость создания и место на диске. Все эти преимущества имеем за счёт того, что в файловой системе много свободного места. Если бы свободного места было мало — ваш вариант обеспечил бы экономию дискового пространства, а ntfsclone не имел бы никаких преимуществ даже перед dd, не говоря уже о ddrescue.


  1. gluko
    18.05.2015 22:11
    +1

    У Майкрософт есть отличная утилита disk2vhd. Она делает тоже самое, бесплатная и компактная. Официальное решение так сказать.
    Полученный VHD диск потом можно без проблем запускать на Hyper-V или монтировать через стандартные средства Windows.


    1. poxu Автор
      19.05.2015 09:13

      Дело в том, что я собираюсь запускать образ не на Hyper-V, а на live cd касперского, который построен на линуксе и, соответственно, мне нужно, чтобы образ монтировался утилитой mount. Ну и плюс что бы ты не запускал на умирающей от троянов и вирусов семёрке — оно работает со скрипом. Особенно когда оперативной памяти там — как раз, чтобы семёрка завелась.


  1. ol_x
    19.05.2015 10:55

    А wim уже не в моде? )


    1. poxu Автор
      19.05.2015 11:59

      Если на диске свободно 138 гигабайт, а занято 22 гигабайта, wim создаст образ на 22 гигабайта?


      1. lovecraft
        19.05.2015 12:16

        Да, мало того, там еще и встроенная LZX-компрессия есть. Но мне больше нравится стандартная утилита для бэкапа в Win7, которая создает сразу vhd-образа разделов. Образа можно смонтировать и в Linux, если есть qemu-img.


  1. Sergey-S-Kovalev
    19.05.2015 12:27

    В домашних условиях, когда сильно нужно делать образы — ваяю с помощью древнего Symantec Ghost 11. Это тот самый универсальный молот, который у мастеров кузнецов передается из поколения в поколение.

    В комплекте личных утилит уже все поменялось не один раз, но только он остается неизменным. Даже до сих пор корректно снимает файловые образы с NTFS, не смотря на то, что утилите более 10 лет уже. А если сильно хочется, всегда можно снять битовый образ диска с игнорированием ошибок чтения — восстановить на заведомо рабочий жесткий диск и вытащить, то что можно было спасти.
    Ключей запуска — на все случаи жизни, сжатие Z9 до сих пор не уступает ни одному продукту по бэкапам, в систему ничего не устанавливает, магическим образом видит диски за рэйдконтроллерами чуть чаще чем всегда.

    Загрузился с флешки/диска через WinPE, запустил ghost32.exe и бед не знаешь.
    Полученный образ всегда можно посмотреть через ghost explorer — ghostexp.exe

    ntfsclone просто менее удобный вариант старого досовского Symantec Ghost 11


    1. poxu Автор
      19.05.2015 13:15

      Ну, я любитель дубовых решений. Мне нравится пользоваться программами, которые делают что-то одно и делают это так, чтобы результаты можно было использовать в других программах. ntfsclone может снимать образы, которые видит mount, которым пользовались ещё охотники на мамонтов, соответственно мне беспроблемно доступны все решения, накопленные человечеством с тех времён, и это очень приятно осознавать.
      Может ли Symantec Ghost 11 создать образ, который можно монтировать с помощью mount? Если может, то будет ли этот образ включать только реально используемые данные, без свободного пространства?
      Если может, то лично мне это интересно. Если нет — то софта, умеющего делать образа, которые можно смотреть в основном с помощью этого софта — его в общем много, можно выбирать на вкус и цвет.
      В соседнем комментарии вот говорят, что vhd образа можно монтировать с помощью quemu-img, а Symantec Ghost 11, насколько я понимаю, умеет делать vhd, так что пользоваться им наверное можно. Но он таки стоит денег и распространяется отдельно, а ntfsclone есть в умолчальной поставке большинства дистрибутивов линукса совершенно бесплатно.
      Правда вот сжатие кусков диска, занятых реальными данными, так, чтобы можно было монтировать итоговые образа mount, дубовыми решениями не получается, надо использовать файловую систему с поддержкой компрессии.


      1. Sergey-S-Kovalev
        19.05.2015 13:49

        Symantec Ghost 11 — есть DOS, есть Windows версия. Работает на всем, включая Windows 10 х64.
        Если нужно посмотреть содержимое — есть Ghost Explorer, диском конечно, не подключает, но нужные файлы извлечь без проблем дает, позволяет удалять и добавлять файлы в образ.
        Образ по умолчанию включает в себя только реально используемые данные, но может и битовую копию всего диска/раздела.
        По поводу сжатия образов, к примеру:
        Виртуальная машина с Windows 7 Pro x64 + Office 2007 + все обновления по март 2015 до sysprep занимает 20.0 гигабайт
        Она же после внутренней чистки от старых обновлений, sysprep'а, обнуления не используемого пространства — VHD занимает 17.2 гигабайта
        Образ снятый с этого VHD с помощью Ghost 11 с максимальным сжатием занимает в формате GHO — 7.8 гигабайта — что позволяет держать на загрузочной флешке парочку образов для быстрого развертывания физических машин. Идеальный вариант для восстановления работоспособности, когда под рукой ровным счетом ничего кроме флешки нет.

        Попробуйте, утилита проста и удобна и выручала меня, без преувеличения, 1000+ раз.

        Образы сохраняются в свой формат GHO, в VHD не умеет. Она очень стара… и надежна.


        1. Sergey-S-Kovalev
          19.05.2015 14:00

          ghost32.exe занимает 5 283 464 байт, т. е. пять мегабайт. это версия 11.0


        1. poxu Автор
          19.05.2015 18:22

          Если бы задача создания образов для последующего накатывания стояла у меня, я бы после процедут с sysprep сделал образ ntfsclone и сжал бы его каким-нибудь суровым компрессором. Подозреваю, что нашёл бы компрессор лучше, чем вбитый в Ghost 11. И накатывал бы обратно, разжимая на лету.
          А за рекомендацию спасибо, буду иметь в виду. Как я заметил, статьи писать имеет смысл в первую очередь для того, чтобы почитать комментарии. Из них можно узнать много нового.


          1. Sergey-S-Kovalev
            20.05.2015 11:27

            Здесь уникальное место, где комментарии к статье могут быть ценнее чем сама статья.