Alter.Org.UA  
 << Back Home EN en   Donate Donate www/www1/www2

Bad Block Copy for Windows

Копирует файл или данные с жесткого диска, не обращая внимания на Bad-Blocks. Если target файл не существует, вместо непрочитанных кусков вставляются нули. Если target файл уже существует, то блоки, соответствующие Bad Block'ам в source не изменяются. Поэтому если есть несколько битых в разных местах копий, то при последовательном применении данной утилиты с одинаковым target-файлом и разными source можно полностью восстановить исходный файл. В качестве target может выступать другой жесткий диск такого же или большего размера.

Работает под всеми версиями Windows (95/98/Me/NT/2000/XP/etc.).

bbcopy похожа на Unix-утилиту dd. Основное отличие состоит в том, что она ориентирована в 1ю очередь на восстановление данных. Поэтому по умолчанию включен режим пропуска нечитаемых блоков, а смещения в source и target-файлах считаются одинаковыми.

Usage:
  bbcopy.exe [-<switches>] <source file> <target file>
    or
  bbcopy.exe [-<dd-style options>]
Switches:
  -b[k] <blocksize>   sets physical block (sector) size for media. 2048 (2k) is default.
  -B[k] <blocksize>   sets I/O block size. 64k is default.
  -o[b|k|m|g] <offset>  offset in bytes (or optionally in blocks, KBytes, MBytes or GBytes)
                      to start recovery from
  -c[b|k|m|g] <count>   number of bytes (or optionally in blocks, KBytes, MBytes or GBytes)
                      to recover
  -r <retry>          number of retry attempts. 3 is default
  -e <max errors>     abort copying after specified number of sequential errors
  -f                  fall-back to physical sector-by-sector mode, when I/O block
                        cannot be read in single request (contains some bad sectors)
  -l <logfile>        log unreliable and bad blocks to <logfile>
  -s                  fill unreadable parts with '** BAD BLOCK ***'
  -S <string>         fill unreadable parts with <string>
                      Do not use fill patterns if you restore from multiple copies
  -n                  use NO CACHE option for file/device I/O
                        This option is automatically enabled for block devices
  -d[i|o] <num>       specify input (i) or output (o) block device <num>
                        this is short form for \\.\\PhysicalDrive<num>
  -?                  display this help
DD-style options:
  if=<source file>    or    ifd=<num>
  of=<target file>    or    ofd=<num>
  bs=<bytes>
  iobs=<bytes>
  ioseek=<blocks>
  count=<blocks>
Note:
  1 KByte = 1024 bytes
  1 MByte = 1024 KBytes = 1024*1024 bytes
  if byte offset or byte count is specified, it will be rounded to blocksize
Examples:
  bbcopy.exe -o 5000000 X:\Video.dat E:\Temp\Restored_Film.dat
    will copy data starting from byte offset 5000000 to end of file
  bbcopy.exe -om 1300 -cm 1000 X:\Video.dat E:\Temp\Restored_Film.dat
    will copy not more than 1000Mb of data starting from byte offset 1300Mb
  bbcopy.exe -f -r 1 -b 512 -Bk 64 -l hdd.log \\.\\PhysicalDrive2 \\.\\PhysicalDrive3
    or
  bbcopy.exe -f -r 1 bs=512 iobs=65536 log=hdd.log ifd=2 ofd=3
    will copy from harddisk2 to harddisk3 with optimal transfer block 64k
    if 64k cannot be read, fall back to 512 bytes blocks for damaged area

Download

Посленняя версия (с исходниками) - bb_copy_v2c.rar/tgz (39.3 Kb/42.9 Kb)

History

Сделана осмысленная выдача сообщений об ошибках при указании неправильных опций.
bb_copy_v2c.rar/tgz (39.3 Kb/42.9 Kb)
2014.01.25

Исправлена обработка опций -o и -c.
bb_copy_v2b.rar/tgz (38.9 Kb/42.5 Kb)
2013.06.18

Исправлена обработка конца файла, не выровненого на границу блока. В non-cached режиме не читался.
bb_copy_v2a.rar/tgz (38.8 Kb/42.4 Kb)
2012.09.20

Сделано много исправлений. Теперь работает хорошо :)
bb_copy_v2.rar/tgz (38.6 Kb/42.1 Kb)
2011.05.18

  • Сильно улучшена скорость копирования.
  • Исправлена ошибка в обработке опции -c.
  • Добавлены опции, похожие на unix dd.
  • Обнаружил, что при работе о большими файлами необходимо отключать кеширование. Иначе перестают отрабатывать операции чтения/записи по причине INSUFFICIENT RESOURCES - невозможно выделить память под внутренние структуры. Для моей машины (320Мб оперативки) предел составил 150Гб. Поэтому введена опция -n для принудительного отключения кеширования. Также, при работе с блочными устройствами и файлами больше 2Гб под 9x и 100Гб - для семейства NT кеширование выключается автоматически.
    bb_copy_v1i.rar/tgz (37.1 Kb/40.5 Kb)
    2011.03.18

  • Довелось переливать данные с посыпавшегося диска на другой. Так появились опции -e, -B, -f, -di, -do для эффективной работы с блочными устройствами. Работает только в семействе NT.
  • Обнаружил и починил ошибки в обработке опций -c и -o.
    bb_copy_v1h.rar/tgz (34.6 Kb/37.1 Kb)
    2010.08.21

  • По просьбе Jiri добавлены опции -s и -S для заполнения непрочитаных фрагментов файла указаными символьными последовательностями вместо обычных нулей. Не рекомендую использовать эту опцию, если целевой файл уже существует. Такое бывает при восстановлении из нескольких копий или при повторной попытке, а если не прочитается то, что прочиталось в предыдущий раз, то данные перетрутся.
  • Обнаружил и починил ошибки чтения коротких файлов (меньших размера блока).
    bb_copy_v1g.rar/tgz (31.4 Kb/33.4 Kb)
    2007.10.25

    Исправлена ошибка в работе с файлами размером от 2Гб до 4Гб.
    Спасибо Jiri за баг-репорт.
    bb_copy_v1f.rar/tgz (30.9 Kb/32.7 Kb)
    2007.05.11

    Исправлено еще несколько ошибок в текстовых сообщениях.
    bb_copy_v1e.rar/tgz (30.6 Kb/32.4 Kb)
    2004.11.03

    Исправлены мелкие глюки при выдаче текстовых сообщений под Windows 95/98/Me.
    bb_copy_v1d.rar/tgz (30.6 Kb/32.3 Kb)
    2004.10.31

    Ура! По просьбам трудящихся добавлена поддержка семейства операционок Windows 95/98/Me.
    bb_copy_v1c.rar/tgz (29.7 Kb/31.4 Kb)
    2004.10.26

    bb_copy_v1b.rar/tgz (26.1 Kb/27.4 Kb)
  • Добавлены опции для указания начальной позиции считывания и размера блока, подлежащего восстановлению. Например, если плохо читается середина файла, то именно ее можно отправить в интенсивную терапию (много-много считываний). И смещение и количество данных можно указывать в разных попугаях (байты, килобайты, мегабайты).
  • Также добавлена возможность сохранять в файл лог плохих и непрочитавшихся блоков.
    2004.06.30

    Добавлена возможность задать количество попыток прочитать плохой блок. bb_copy_v1a.rar/tgz (24.6 Kb/25.8 Kb)
    2004.03.03

    Дистрибутив (вместе с исходниками): bb_copy_v1.rar/tgz (19.3 Kb/20.1 Kb)
    2003.11.14

    Предложения и исправления слать на Mail to alterX@alter.org.ua (remove X)  

  • Автор: Alter (Александр А. Телятников) Сервер: Apache+PHP под FBSD © 2002-2017