Мы — долго запрягаем, быстро ездим, и сильно тормозим.

FreeBSD
  настройка
  подсчёт трафика
  программы
  почтовые системы
  Шелезяки
  Мелочи
  Русификация
  COM-порт
  Монтирование образов
  dd
  burncd
  Консоль
  polling
  redirect_port
  wolf3d
  W.O.L.
  HDD->HDD
  bsdstats
  pdf в html
  monitord
  monit
  dvd в avi
  LAM
  Контроль провайдера
  pppd
  ru man
  geom_uzip
  colorize
  nettop
  немного о ssh
  установка по сети
  ClamAV mirror
  BlueTooth
  WiFi WPA
  iftop
  iPod
  2 CD -> 1 DVD
  ipcalc
  LACP и VLAN
  FFS из-под WinXP
  queues
  NFS & Win2k3
  Dynamic DNS
  ProFTPD+iconv
  deltup, xdelta, bdelta
  Приглашение csh/tcsh
  настрока bash
  Lan over Bluetooth
  pppoe
  метаданные exif
  dd : бэкапируем windows
  mozilla autoconfig
  Proxy Auto Configuration
  NNTP сервер
  Rinetd
  ISO DVD FreeBSD
  my disc1
  sftp+chroot
  SendXMPP
  APCUPSD
  Видеонаблюдение
  Настройка аудиоплеера на ximp3
  HDD(mbr) -> HDD(gpt)
  mc 4.6.2
  Динамический DNS
  axel
  LiveCD
  NAS на MPD
  backup конфигов на почту
  Файловая система
  WWW
  Security
  system
  Games Servers
  X11
  Programming
Очумелые Ручки
OpenBSD
Cisco


www.lissyara.su —> статьи —> FreeBSD —> Мелочи —> dd

Использование утилиты dd

Автор: lissyara.


    В составе FreeBSD (и не только во фряхе, но и в linux) есть штатная утилита dd - она копирует стандартный ввод, в стандартный вывод. Таково её определение в man`е. Тока может она немного больше. Примеры приведены в том же мане, а также кое-что здесь.
   Для начала - с её помошью можно делать образы дисков или отдельных слайсов:
/usr/home/lissyara/>df -h
Filesystem     Size    Used   Avail Capacity  Mounted on
/dev/ad0s1a    248M    100M    128M    44%    /
devfs          1.0K    1.0K      0B   100%    /dev
/dev/ad0s1d    989M    1.4M    909M     0%    /tmp
/dev/ad0s1e     14G    5.0G    7.5G    40%    /usr
/dev/ad0s1f    3.5G    331M    2.9G    10%    /var
/dev/ad8s1      73G     62G    5.0G    93%    /usr/local/smb
/usr/home/lissyara/>dd if=/dev/ad0s1a of=test.img
524288+0 records in
524288+0 records out
268435456 bytes transferred in 231.665702 secs (1158719 bytes/sec)
/usr/home/lissyara/>
/usr/home/lissyara/>mdconfig -a -t vnode -f test.img -u 0
/usr/home/lissyara/>bsdlabel -w md0 auto
/usr/home/lissyara/>mount /dev/md0c /mnt
/usr/home/lissyara/>ls /mnt/
.cshrc          boot            entropy         proc            tmp
.profile        cdrom           etc             rescue          usr
.snap           compat          lib             root            var
COPYRIGHT       dev             libexec         sbin
bin             dist            mnt             sys
/usr/home/lissyara/>df -h
Filesystem     Size    Used   Avail Capacity  Mounted on
/dev/ad0s1a    248M    100M    128M    44%    /
devfs          1.0K    1.0K      0B   100%    /dev
/dev/ad0s1d    989M    1.4M    909M     0%    /tmp
/dev/ad0s1e     14G    5.0G    7.5G    40%    /usr
/dev/ad0s1f    3.5G    331M    2.9G    10%    /var
/dev/ad8s1      73G     62G    5.0G    93%    /usr/local/smb
/dev/md0c      248M    4.0K    228M     0%    /mnt
/usr/home/lissyara/>
/usr/home/lissyara/>umount /mnt
/usr/home/lissyara/>mdconfig -d -u 0

Вот так. Можно сделать образ слайса в виде файла, утащить его куда надо и там раскатать - выглядеть это будет также (это уже другая машина):
/usr/home/lissyara/>df -h
Filesystem    Size   Used  Avail Capacity  Mounted on
/dev/ad0s1a   252M    36M   196M    16%    /
/dev/ad0s1e  1008M    18K   927M     0%    /tmp
/dev/ad1s1e    37G   8.2G    26G    24%    /usr
/dev/ad0s1f   4.7G    25M   4.3G     1%    /var
procfs        4.0K   4.0K     0B   100%    /proc
/usr/home/lissyara/>dd if=/dev/ad0s1a of=/usr/ad0s1a.img
524288+0 records in
524288+0 records out
268435456 bytes transferred in 160.064442 secs (1677046 bytes/sec)
/usr/home/lissyara/>ls -lah /usr | grep img
-rw-r--r--   1 root  wheel       256M Dec 26 15:44 ad0s1a.img
/usr/home/lissyara/>
/usr/home/lissyara/>dd if=/usr/ad0s1a.img of=/dev/ad0s1a
dd: /dev/ad0s1a: Device busy

Не даёт. Логично - / по любому занят... Плохо что корневой раздел нельзя отмонтировать с ключиком -f - можно было бы попробовать... А так придётся делать другой опыт, на другом разделе:
/usr/home/lissyara/>df -h
Filesystem    Size   Used  Avail Capacity  Mounted on
/dev/ad0s1a   252M    36M   196M    16%    /
/dev/ad0s1e  1008M    18K   927M     0%    /tmp
/dev/ad1s1e    37G   2.2G    32G     7%    /usr
/dev/ad0s1f   4.7G    25M   4.3G     1%    /var
procfs        4.0K   4.0K     0B   100%    /proc
/usr/home/lissyara/>dd if=/dev/ad0s1e of=/usr/ad0s1e.img
2097152+0 records in
2097152+0 records out
1073741824 bytes transferred in 612.327543 secs (1753542 bytes/sec)
/usr/home/lissyara/>
/usr/home/lissyara/>dd if=/usr/ad0s1e.img of=/dev/ad0s1e
dd: /dev/ad0s1e: Device busy
/usr/home/lissyara/>umount -f /tmp
/usr/home/lissyara/>df -h
Filesystem    Size   Used  Avail Capacity  Mounted on
/dev/ad0s1a   252M    36M   196M    16%    /
/dev/ad1s1e    37G   3.2G    31G     9%    /usr
/dev/ad0s1f   4.7G    25M   4.3G     1%    /var
procfs        4.0K   4.0K     0B   100%    /proc
/usr/home/lissyara/>
/usr/home/lissyara/>dd if=/usr/ad0s1e.img of=/dev/ad0s1e
/usr/home/lissyara/>dd if=/usr/ad0s1e.img of=/dev/ad0s1e
2097152+0 records in
2097152+0 records out
1073741824 bytes transferred in 789.388632 secs (1360220 bytes/sec)
/usr/home/lissyara/>mount /tmp
mount: /dev/ad0s1e: Operation not permitted
/usr/home/lissyara/>df -h
Filesystem    Size   Used  Avail Capacity  Mounted on
/dev/ad0s1a   252M    36M   196M    16%    /
/dev/ad1s1e    37G   3.2G    31G     9%    /usr
/dev/ad0s1f   4.7G    25M   4.3G     1%    /var
procfs        4.0K   4.0K     0B   100%    /proc
/dev/ad0s1e  1008M    18K   927M     0%    /tmp
/usr/home/lissyara/>

Тоже самое можно сделать и с корневым разделом - но если образ можно снять и с работающей системы, то "раскатывать" его придётся загрузившись с "LiveCD" FreeBSD или какого линуха...
   Также мне понравился один пример из man dd:
/usr/home/lissyara/>su
/usr/home/lissyara/>df -h
Filesystem    Size   Used  Avail Capacity  Mounted on
/dev/ad0s1a   252M    36M   196M    16%    /
/dev/ad0s1e  1008M    18K   927M     0%    /tmp
/dev/ad1s1e    37G   3.2G    31G     9%    /usr
/dev/ad0s1f   4.7G    25M   4.3G     1%    /var
procfs        4.0K   4.0K     0B   100%    /proc
/usr/home/lissyara/>dd if=/dev/ad0 of/dev/null bs=1m
dd: unknown operand of/dev/null
/usr/home/lissyara/>dd if=/dev/ad0 of=/dev/null bs=1m
6187+1 records in
6187+1 records out
6488294400 bytes transferred in 424.050846 secs (15300746 bytes/sec)
/usr/home/lissyara/>

Такая вот проверка диска на бэд-блоки :) Ещё одна интересная тема - вместо "сверхпопулярной" :) команды rm -Rf / можно применить dd - причём будет гораздо более надёжно, т.к. весь диск затрётся нулями:
/usr/home/lissyara/>df -h
Filesystem     Size    Used   Avail Capacity  Mounted on
/dev/ad0s1a    1.8G    1.0G    668M    60%    /
devfs          1.0K    1.0K      0B   100%    /dev
/dev/ad1s1d    9.5G    630M    8.1G     7%    /disk_1
/usr/home/lissyara/>dd if=/dev/zero of=/dev/ad1
dd: /dev/ad1: Operation not permitted
/usr/home/lissyara/>umount -f /disk_1
/usr/home/lissyara/>dd if=/dev/zero of=/dev/ad1
^C87183+0 records in
87182+0 records out
44637184 bytes transferred in 130.484121 secs (342089 bytes/sec)
/usr/home/lissyara/>

Ждать не захотел, т.к. при такой скорости на это ушло б много времени. (скорость такая маленькая потому что на виртуальной машине делал - а Вы думали я на настоящей изгаляюсь с такими деструктивными командами? - изгаляюсь, и на настоящей - на тестовой, но и её жалко - т.к. перестановка ОС - это время.)
   Точно также легко и непринуждённо создаются образы с CD-ROM (в примере защищённый диск с данными):
/usr/home/lissyara/>dd if=/dev/acd0 of=map.iso bs=2048
355964+0 records in
355964+0 records out
729014272 bytes transferred in 445.316083 secs (1637072 bytes/sec)
/usr/home/lissyara/>
/usr/home/lissyara/>ll | grep iso
-rw-r--r--   1 root      wheel  729014272  2 май 13:20 map.iso
/usr/home/lissyara/>

   Вот такая полезная программка.



размещено: 2005-12-26,
последнее обновление: 2006-05-02,
автор: lissyara

оценить статью:

Ramzes, 2007-05-23 в 4:19:43

Имхо намного веселее юзать не dd, а стрелочки и cat +)

# cat /dev/ad1 > ad1.img

Очень классно слушать так музыку с компакта:
# cat /dev/acd0t1 > /dev/dsp
(не забыть только про kldload snd_driver :)) )

Но у dd конечно намного больше опций... Например можно из формата nrg (Nero Image) сделать полноценный нормальный iso юзая параметр skip. (Сколько байт надо пропустить - не помню :) )

KaMa-CyTpA, 2007-08-28 в 15:34:25

Протупил - не могу понять как именно сделать образ корневого раздела, чтобы после (не приведи Господь) крушения, восстановить шустренько - специально второй винт поставил для архивных копий.
А тут фраза сразу-же:
Не даёт. Логично - / по любому занят... Плохо что корневой раздел нельзя отмонтировать с ключиком -f - можно было бы попробовать...

Romzes, 2007-11-27 в 15:17:54

чтоб потенциальному ковырятелю дисков было веселей,
вместо dd if=/dev/zero of=/dev/ad1
dd if=/dev/random of=/dev/ad1
а то говорят данные вытаскиваваются и после трех перезаписей

test, 2008-03-29 в 14:24:46

KaMa-CyTpA
юзать dd для создания бекапов - извращение. Юзайте dump/restore

ONYX, 2008-05-01 в 2:33:28

Подумав над (dd/dump/restore) я заюзал gmirror. Сразу 3 винта упасть не могут, а личный опыт показывает что можно отключать нагорячую сразу 2 винта, включая первый загрузочный (при этом екстренно намыливая админам что бы покупали виты новые)

braveduck, 2008-06-11 в 15:14:31

Можно и на рут образ залить, если очень хочется :)

#sysctl kern.geom.debugflags=16
#dd dd if=/usr/root.img of=/dev/ad0s1a bs=1m

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

OpenBoy, 2009-03-20 в 17:05:58

Полезно при копировании разделов задавать так же параметр... помоему bc, суть есть количество 512 байтных блоков, которое читаеться и\или записываеться за один раз.

Из каких соображений это делать правильнее всего - я не знаю. Но предполагаю, что нужно руководствоваться обьемом кеша жеского диска. Я беру 90 процентов от его обьема выраженного в 512 баитных блоках.

ufs, 2010-07-04 в 18:19:38

ssh -C root@server dd if=/dev/hda bs=1M | dd of=hda.dd
мб кому и пригодится ;)

BassMan, 2020-11-16 в 12:01:34

В составе FreeBSD (и не только во фряхе, но и в linux) есть штатная утилита dd - она копирует стандартный ввод, в стандартный вывод

Лишняя запятая. Сайт супер, но просьба орфографию исправить во всех статьях, чтобы стыдно не было. Рекомендую LanguageTool.

Alex Keda, 2020-11-16 в 12:09:46

орфографию или пунктуацию?


Оставьте свой комментарий:
Ваше имя:   *
e-mail:  
жирный
наклонный
подчёркнутый
ссылка
цвет
Нынешний год:   *
 


Хостинг HOST-FOOD

2014-07-27, lissyara
gmirror

Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
2013-08-20, zentarim
Scan+Print server FreeBSD 9

Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
2011-11-20, BlackCat
Разъём на WiFi-карту

Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
2011-09-14, manefesto
Настройка git+gitosis

Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
2011-08-14, zentarim
Wi-FI роутер + DHCP + DNS

Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ
2011-06-15, -ZG-
Охранная система на FreeBSD+LPT

В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией.
2011-03-13, terminus
ng_nat

Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat
2011-02-20, Капитан
Nagios+Digitemp

Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp.
2011-02-17, Le1
Zyxel Configuration

Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл.
2011-02-16, fox
hast carp zfs ucarp cluster

HAST (Highly Available Storage), CARP, UCARP, ZFS, Cluster настройка и одаптация плюс личные размышления…
2011-02-04, BlackCat
Восстановление ZFS

История о том, как был восстановлен развалившийся RAIDZ ZFS-пул (перешедший в FAULTED) с помощью скотча и подручных средств. Или о том, какие приключения ожидают тех, кто не делает резервных копий.
2011-02-03, Капитан
1-Wire

Статья описывает самостоятельное изготовление контроллера DS9097 для съёма показаний с датчиков температуры DS1820 с помощью программы Digitemp.
2011-01-28, Капитан
Температура в серверной

Статья описывает построение системы наблюдения за температурой в помещении серверной с использованием программы Digitemp и выводом графиков в MRTG
2011-01-21, m4rkell
Syslog server

Как то буквально на днях, у нас завалилось, что то в еве) или не в еве не суть. Суть в том, что когда захотели снять логи с хостов esx обнаружили, что хранят эти негодяи логии только за последнии сутк
2011-01-07, lissyara
Canon/gphotofs

Монтирование цифровых фотоаппаратов Canon (PTP) как файловой системы, автоматизация этого процесса через события devd и внешние скрипты.
2010-12-13, Al
IPSec

Описание принципов работы IPSEC и способов аутентификации.
подписка

    вверх      
Статистика сайта
Сейчас на сайте находится: 19 чел.
За последние 30 мин было: 68 человек
За сегодня было
4460 показов,
527 уникальных IP
 

  Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
  Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.0465 секунд
Из них PHP: 38%; SQL: 62%; Число SQL-запросов: 77 шт.
Исходный размер: 141277; Сжатая: 24422