утилита dd

Простые/общие вопросы по UNIX системам. Спросите здесь, если вы новичок

Модераторы: vadim64, terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
WideAreaNetwork
сержант
Сообщения: 205
Зарегистрирован: 2017-01-10 14:37:13

утилита dd

Непрочитанное сообщение WideAreaNetwork » 2021-04-09 19:40:40

guest писал(а):
2021-04-09 17:28:42
df : source и target
вывод нужен с машины с которой переношу (source) и на которую переношу (target) ? если так то должно быть одинаково, так как в гипервизоре создал ВМ а потом ее клон, на видео есть gpart show и geom disk list
[/quote]
guest писал(а):
2021-04-09 17:28:42
"dd" - можно без проблем использовать в случае "объем target" == "объем source"
снова таки, вторая ВМ была клоном первой, там все должно быть одинаково, как раз на видео и показано
guest писал(а):
2021-04-09 17:28:42
FreeBSD software RAID1:
- на mbr?
- на gpt?
как создан: зеркало целого диска или зеркало партиций?
это пробовал с разметкой mbr
если кратко то на первый ссд установил freebsd с разметкой mbr, а потом сделал софтовый рейд по манулу хендбука 10 летней давности, так как смотрел на русском языке

Код: Выделить всё

# sysctl kern.geom.debugflags=17
# gmirror label -vb round-robin gm0 /dev/ada0
	Система должна выдать следующее сообщение:
Metadata value stored on /dev/da0.
Done.
# gmirror load
# echo 'geom_mirror_load="YES"' >> /boot/loader.conf
# cp /etc/fstab /etc/fstab.backup
	делаем замену /dev/ada на /dev/mirror/gm
# shutdown -r now
# gmirror insert gm0 /dev/ada1
# gmirror status
# gmirror list
# reboot

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

WideAreaNetwork
сержант
Сообщения: 205
Зарегистрирован: 2017-01-10 14:37:13

утилита dd

Непрочитанное сообщение WideAreaNetwork » 2021-04-09 19:42:28

snorlov писал(а):
2021-04-09 15:38:19
Да забей ты на DD
snorlov писал(а):
2021-04-09 15:38:19
юзаю dump/restore
воспользуюсь ими обязательно, только спать не могу из-за не понимая что не так у меня с dd

guest
проходил мимо

утилита dd

Непрочитанное сообщение guest » 2021-04-10 0:30:40

Вывод нужен того что и как на источнике
как выполняется dd
что и как на целевом диске или на чем у Вас

И да, не нужно делать видео, лучше текстовый вид,
утилиту script никто не отменял.

WideAreaNetwork
сержант
Сообщения: 205
Зарегистрирован: 2017-01-10 14:37:13

утилита dd

Непрочитанное сообщение WideAreaNetwork » 2021-04-10 9:20:26

и так эксперимент номер.... а хз уже, запущены две ВМ первая это - source, вторая - target, target является клоном source, то-есть в гипервизоре создал ВМ и сделал ее клонирование, на source установлена ОС FreeBSD 12.2, на обеих ВМ запущен FreeBSD LiveCD
внизу вывод команд gpart show, mount, df, geom disk list до запуска утилиты dd

source

Код: Выделить всё

root@source:~ # gpart show
=>      9  2292864  cd0  MBR  (4.4G)
        9  2292864       - free -  (4.4G)

=>      9  2292864  iso9660/12_2_RELEASE_AMD64_DVD  MBR  (4.4G)
        9  2292864                                  - free -  (4.4G)

=>      63  10485697  ada0  MBR  (5.0G)
        63         1        - free -  (512B)
        64  10485696     1  freebsd  [active]  (5.0G)

=>       0  10485696  ada0s1  BSD  (5.0G)
         0   9959424       1  freebsd-ufs  (4.7G)
   9959424    524288       2  freebsd-swap  (256M)
  10483712      1984          - free -  (992K)

=>      63  10485697  diskid/DISK-QM00005  MBR  (5.0G)
        63         1                       - free -  (512B)
        64  10485696                    1  freebsd  [active]  (5.0G)

=>       0  10485696  diskid/DISK-QM00005s1  BSD  (5.0G)
         0   9959424                      1  freebsd-ufs  (4.7G)
   9959424    524288                      2  freebsd-swap  (256M)
  10483712      1984                         - free -  (992K)

Код: Выделить всё

root@source:~ # mount
/dev/iso9660/12_2_RELEASE_AMD64_DVD on / (cd9660, local, read-only)
devfs on /dev (devfs, local, multilabel)
tmpfs on /var (tmpfs, local)
tmpfs on /tmp (tmpfs, local)
<above>:/tmp/etc on /etc (unionfs, local)

Код: Выделить всё

root@source:~ # df -h
Filesystem                             Size    Used   Avail Capacity  Mounted on
/dev/iso9660/12_2_RELEASE_AMD64_DVD    4.4G    4.4G      0B   100%    /
devfs                                  1.0K    1.0K      0B   100%    /dev
tmpfs                                   32M    148K     32M     0%    /var
tmpfs                                   20M    132K     20M     1%    /tmp
<above>:/tmp/etc                       4.4G    4.4G     20M   100%    /etc

Код: Выделить всё

root@source:~ # geom disk list
Geom name: cd0
Providers:
1. Name: cd0
   Mediasize: 4695803904 (4.4G)
   Sectorsize: 2048
   Mode: r1w0e1
   descr: QEMU QEMU DVD-ROM
   ident: (null)
   rotationrate: unknown
   fwsectors: 0
   fwheads: 0

Geom name: ada0
Providers:
1. Name: ada0
   Mediasize: 5368709120 (5.0G)
   Sectorsize: 512
   Mode: r0w0e0
   descr: QEMU HARDDISK
   ident: QM00005
   rotationrate: unknown
   fwsectors: 63
   fwheads: 16
target

Код: Выделить всё

root@target:~ # gpart show
=>      9  2292864  cd0  MBR  (4.4G)
        9  2292864       - free -  (4.4G)

=>      9  2292864  iso9660/12_2_RELEASE_AMD64_DVD  MBR  (4.4G)
        9  2292864                                  - free -  (4.4G)

Код: Выделить всё

root@target:~ # mount
/dev/iso9660/12_2_RELEASE_AMD64_DVD on / (cd9660, local, read-only)
devfs on /dev (devfs, local, multilabel)
tmpfs on /var (tmpfs, local)
tmpfs on /tmp (tmpfs, local)
<above>:/tmp/etc on /etc (unionfs, local)

Код: Выделить всё

root@target:~ # df -h
Filesystem                             Size    Used   Avail Capacity  Mounted on
/dev/iso9660/12_2_RELEASE_AMD64_DVD    4.4G    4.4G      0B   100%    /
devfs                                  1.0K    1.0K      0B   100%    /dev
tmpfs                                   32M    152K     32M     0%    /var
tmpfs                                   20M    132K     20M     1%    /tmp
<above>:/tmp/etc                       4.4G    4.4G     20M   100%    /etc

Код: Выделить всё

root@target:~ # geom disk list
Geom name: cd0
Providers:
1. Name: cd0
   Mediasize: 4695803904 (4.4G)
   Sectorsize: 2048
   Mode: r1w0e1
   descr: QEMU QEMU DVD-ROM
   ident: (null)
   rotationrate: unknown
   fwsectors: 0
   fwheads: 0

Geom name: ada0
Providers:
1. Name: ada0
   Mediasize: 5368709120 (5.0G)
   Sectorsize: 512
   Mode: r0w0e0
   descr: QEMU HARDDISK
   ident: QM00005
   rotationrate: unknown
   fwsectors: 63
   fwheads: 16
далее запускаю dd

Код: Выделить всё

root@source:~ # dd if=/dev/ada0 | ssh root@10.254.254.218 "dd of=/dev/ada0 bs=2M conv=noerror,sync status=progress"
парочка промежуточных выводов

Код: Выделить всё

root@source:~ # dd if=/dev/ada0 | ssh root@10.254.254.218 "dd of=/dev/ada0 bs=2M conv=noerror,sync status=progress"
Could not create directory '/root/.ssh'.
The authenticity of host '10.254.254.218 (10.254.254.218)' can't be established.
ECDSA key fingerprint is SHA256:NigSBDMHQEy3gHKWI1WcUWL2v7GnKdcy5I0v5x7ydFE.
No matching host key fingerprint found in DNS.
Are you sure you want to continue connecting (yes/no)? yes
Failed to add the host to the list of known hosts (/root/.ssh/known_hosts).
Password for root@target:
  56623104 bytes (57 MB, 54 MiB) transferred 4.053s, 14 MB/s
  
root@source:~ # dd if=/dev/ada0 | ssh root@10.254.254.218 "dd of=/dev/ada0 bs=2M conv=noerror,sync status=progress"
Could not create directory '/root/.ssh'.
The authenticity of host '10.254.254.218 (10.254.254.218)' can't be established.
ECDSA key fingerprint is SHA256:NigSBDMHQEy3gHKWI1WcUWL2v7GnKdcy5I0v5x7ydFE.
No matching host key fingerprint found in DNS.
Are you sure you want to continue connecting (yes/no)? yes
Failed to add the host to the list of known hosts (/root/.ssh/known_hosts).
Password for root@target:
  1063256064 bytes (1063 MB, 1014 MiB) transferred 73.095s, 15 MB/s

root@source:~ # dd if=/dev/ada0 | ssh root@10.254.254.218 "dd of=/dev/ada0 bs=2M conv=noerror,sync status=progress"
Could not create directory '/root/.ssh'.
The authenticity of host '10.254.254.218 (10.254.254.218)' can't be established.
ECDSA key fingerprint is SHA256:NigSBDMHQEy3gHKWI1WcUWL2v7GnKdcy5I0v5x7ydFE.
No matching host key fingerprint found in DNS.
Are you sure you want to continue connecting (yes/no)? yes
Failed to add the host to the list of known hosts (/root/.ssh/known_hosts).
Password for root@target:
  3160408064 bytes (3160 MB, 3014 MiB) transferred 231.115s, 14 MB/s

root@source:~ # dd if=/dev/ada0 | ssh root@10.254.254.218 "dd of=/dev/ada0 bs=2M conv=noerror,sync status=progress"
Could not create directory '/root/.ssh'.
The authenticity of host '10.254.254.218 (10.254.254.218)' can't be established.
ECDSA key fingerprint is SHA256:NigSBDMHQEy3gHKWI1WcUWL2v7GnKdcy5I0v5x7ydFE.
No matching host key fingerprint found in DNS.
Are you sure you want to continue connecting (yes/no)? yes
Failed to add the host to the list of known hosts (/root/.ssh/known_hosts).
Password for root@target:
  4393533440 bytes (4394 MB, 4190 MiB) transferred 330.007s, 13 MB/s

root@source:~ # dd if=/dev/ada0 | ssh root@10.254.254.218 "dd of=/dev/ada0 bs=2M conv=noerror,sync status=progress"
Could not create directory '/root/.ssh'.
The authenticity of host '10.254.254.218 (10.254.254.218)' can't be established.
ECDSA key fingerprint is SHA256:NigSBDMHQEy3gHKWI1WcUWL2v7GnKdcy5I0v5x7ydFE.
No matching host key fingerprint found in DNS.
Are you sure you want to continue connecting (yes/no)? yes
Failed to add the host to the list of known hosts (/root/.ssh/known_hosts).
Password for root@target:
  5148508160 bytes (5149 MB, 4910 MiB) transferred 391.300s, 13 MB/s
и конечный результат

Код: Выделить всё

root@source:~ # dd if=/dev/ada0 | ssh root@10.254.254.218 "dd of=/dev/ada0 bs=2M conv=noerror,sync status=progress"
Could not create directory '/root/.ssh'.
The authenticity of host '10.254.254.218 (10.254.254.218)' can't be established.
ECDSA key fingerprint is SHA256:NigSBDMHQEy3gHKWI1WcUWL2v7GnKdcy5I0v5x7ydFE.
No matching host key fingerprint found in DNS.
Are you sure you want to continue connecting (yes/no)? yes
Failed to add the host to the list of known hosts (/root/.ssh/known_hosts).
Password for root@target:
dd: /dev/ada0: end of device 5116 MiB) transferred 409.090s, 13 MB/s

2561+0 records in
2560+0 records out
5368709120 bytes transferred in 409.457107 secs (13111774 bytes/sec)
вывод команд gpart show, mount, df, geom disk list после завершения работы утилиты dd

source

Код: Выделить всё

root@source:~ # gpart show
=>      9  2292864  cd0  MBR  (4.4G)
        9  2292864       - free -  (4.4G)

=>      9  2292864  iso9660/12_2_RELEASE_AMD64_DVD  MBR  (4.4G)
        9  2292864                                  - free -  (4.4G)

=>      63  10485697  ada0  MBR  (5.0G)
        63         1        - free -  (512B)
        64  10485696     1  freebsd  [active]  (5.0G)

=>       0  10485696  ada0s1  BSD  (5.0G)
         0   9959424       1  freebsd-ufs  (4.7G)
   9959424    524288       2  freebsd-swap  (256M)
  10483712      1984          - free -  (992K)

=>      63  10485697  diskid/DISK-QM00005  MBR  (5.0G)
        63         1                       - free -  (512B)
        64  10485696                    1  freebsd  [active]  (5.0G)

=>       0  10485696  diskid/DISK-QM00005s1  BSD  (5.0G)
         0   9959424                      1  freebsd-ufs  (4.7G)
   9959424    524288                      2  freebsd-swap  (256M)
  10483712      1984                         - free -  (992K)

root@source:~ # mount
/dev/iso9660/12_2_RELEASE_AMD64_DVD on / (cd9660, local, read-only)
devfs on /dev (devfs, local, multilabel)
tmpfs on /var (tmpfs, local)
tmpfs on /tmp (tmpfs, local)
<above>:/tmp/etc on /etc (unionfs, local)

root@source:~ # df -h
Filesystem                             Size    Used   Avail Capacity  Mounted on
/dev/iso9660/12_2_RELEASE_AMD64_DVD    4.4G    4.4G      0B   100%    /
devfs                                  1.0K    1.0K      0B   100%    /dev
tmpfs                                   32M    160K     32M     0%    /var
tmpfs                                   20M    132K     20M     1%    /tmp
<above>:/tmp/etc                       4.4G    4.4G     20M   100%    /etc

root@source:~ # geom disk list
Geom name: cd0
Providers:
1. Name: cd0
   Mediasize: 4695803904 (4.4G)
   Sectorsize: 2048
   Mode: r1w0e1
   descr: QEMU QEMU DVD-ROM
   ident: (null)
   rotationrate: unknown
   fwsectors: 0
   fwheads: 0

Geom name: ada0
Providers:
1. Name: ada0
   Mediasize: 5368709120 (5.0G)
   Sectorsize: 512
   Mode: r0w0e0
   descr: QEMU HARDDISK
   ident: QM00005
   rotationrate: unknown
   fwsectors: 63
   fwheads: 16
target

Код: Выделить всё

root@target:~ # gpart show
=>      9  2292864  cd0  MBR  (4.4G)
        9  2292864       - free -  (4.4G)

=>      9  2292864  iso9660/12_2_RELEASE_AMD64_DVD  MBR  (4.4G)
        9  2292864                                  - free -  (4.4G)

=>      63  10485697  ada0  MBR  (5.0G)
        63         1        - free -  (512B)
        64  10485696     1  freebsd  [active]  (5.0G)

=>      63  10485697  diskid/DISK-QM00005  MBR  (5.0G)
        63         1                       - free -  (512B)
        64  10485696                    1  freebsd  [active]  (5.0G)

root@target:~ # mount
/dev/iso9660/12_2_RELEASE_AMD64_DVD on / (cd9660, local, read-only)
devfs on /dev (devfs, local, multilabel)
tmpfs on /var (tmpfs, local)
tmpfs on /tmp (tmpfs, local)
<above>:/tmp/etc on /etc (unionfs, local)

root@target:~ # df -h
Filesystem                             Size    Used   Avail Capacity  Mounted on
/dev/iso9660/12_2_RELEASE_AMD64_DVD    4.4G    4.4G      0B   100%    /
devfs                                  1.0K    1.0K      0B   100%    /dev
tmpfs                                   32M    160K     32M     0%    /var
tmpfs                                   20M    132K     20M     1%    /tmp
<above>:/tmp/etc                       4.4G    4.4G     20M   100%    /etc

root@target:~ # geom disk list
Geom name: cd0
Providers:
1. Name: cd0
   Mediasize: 4695803904 (4.4G)
   Sectorsize: 2048
   Mode: r1w0e1
   descr: QEMU QEMU DVD-ROM
   ident: (null)
   rotationrate: unknown
   fwsectors: 0
   fwheads: 0

Geom name: ada0
Providers:
1. Name: ada0
   Mediasize: 5368709120 (5.0G)
   Sectorsize: 512
   Mode: r0w0e0
   descr: QEMU HARDDISK
   ident: QM00005
   rotationrate: unknown
   fwsectors: 63
   fwheads: 16
далее ребут target и получаю Missing operation system

snorlov
подполковник
Сообщения: 3890
Зарегистрирован: 2008-09-04 11:51:25
Откуда: Санкт-Петербург

утилита dd

Непрочитанное сообщение snorlov » 2021-04-10 10:55:07

Может надо сранить
было
[/quote]
WideAreaNetwork писал(а):
2021-04-10 9:20:26
=> 63 10485697 ada0 MBR (5.0G)
63 1 - free - (512B)
64 10485696 1 freebsd [active] (5.0G)

=> 0 10485696 ada0s1 BSD (5.0G)
0 9959424 1 freebsd-ufs (4.7G)
9959424 524288 2 freebsd-swap (256M)
10483712 1984 - free - (992K)
стало
WideAreaNetwork писал(а):
2021-04-10 9:20:26
=> 63 10485697 ada0 MBR (5.0G)
63 1 - free - (512B)
64 10485696 1 freebsd [active] (5.0G)

=> 63 10485697 diskid/DISK-QM00005 MBR (5.0G)
63 1 - free - (512B)
64 10485696 1 freebsd [active] (5.0G)
вы вы после клонирования попробуйте выбрать не ada0, а ada0s1a

snorlov
подполковник
Сообщения: 3890
Зарегистрирован: 2008-09-04 11:51:25
Откуда: Санкт-Петербург

утилита dd

Непрочитанное сообщение snorlov » 2021-04-10 11:02:26

WideAreaNetwork,
вы вы после клонирования попробуйте выбрать не ada0, а ada0s1a, как в приемнике так и в передатчике...
А у вас sshd на на приемнике где стартует то...

WideAreaNetwork
сержант
Сообщения: 205
Зарегистрирован: 2017-01-10 14:37:13

утилита dd

Непрочитанное сообщение WideAreaNetwork » 2021-04-10 11:29:36

snorlov писал(а):
2021-04-10 10:55:07
Может надо сранить
было
До установки ОС они одинаковы
snorlov писал(а):
2021-04-10 10:55:07
вы после клонирования попробуйте выбрать не ada0, а ada0s1a
Речь об ada0s1?
Это вроде как первый слайс на котором корень / так перенести корень можно и dump-ом, а хотелось чтобы получилось как и у других, у вас то все хоккей вышло и у приемника нету слайсов там же чистый диск
snorlov писал(а):
2021-04-10 11:02:26
А у вас sshd на на приемнике где стартует то...
На LiveCD запустил, вроде как нельзя с утилитой dd переносить работающую систему, выше в постах видно что примонтировал /etc в созданную /tmp/etc

snorlov
подполковник
Сообщения: 3890
Зарегистрирован: 2008-09-04 11:51:25
Откуда: Санкт-Петербург

утилита dd

Непрочитанное сообщение snorlov » 2021-04-10 12:42:41

Вы dump'ом работаете на уровне установленной файловой системой, а dd работает на уровне блоков диска, сравнение таблиц расбиения диска до и после, говорит, что у вас не переносится схема разбития слайса.
Почему я спросил, да потому что запись этой схемы не переносится, уберите noerror и поставьте bs=8m

WideAreaNetwork
сержант
Сообщения: 205
Зарегистрирован: 2017-01-10 14:37:13

утилита dd

Непрочитанное сообщение WideAreaNetwork » 2021-04-11 20:50:22

snorlov писал(а):
2021-04-10 11:02:26
после клонирования попробуйте выбрать не ada0, а ada0s1a, как в приемнике так и в передатчике
наверное я не понял эту фразу, после того как утилитой dd перенес (якобы) ОС выбрать ada0s1? где выбирать то ее? ее вроде как на приемнике и нету
если с помощью dd перенести только ada0s1 то получаю No /boot/kernel/kernel , что ожидаемо

WideAreaNetwork
сержант
Сообщения: 205
Зарегистрирован: 2017-01-10 14:37:13

утилита dd

Непрочитанное сообщение WideAreaNetwork » 2021-04-11 21:53:53

это то что ранее в постах показывал на выходе
WideAreaNetwork писал(а):
2021-04-10 9:20:26
root@target:~ # gpart show
=> 9 2292864 cd0 MBR (4.4G)
9 2292864 - free - (4.4G)

=> 9 2292864 iso9660/12_2_RELEASE_AMD64_DVD MBR (4.4G)
9 2292864 - free - (4.4G)

=> 63 10485697 ada0 MBR (5.0G)
63 1 - free - (512B)
64 10485696 1 freebsd [active] (5.0G)

=> 63 10485697 diskid/DISK-QM00005 MBR (5.0G)
63 1 - free - (512B)
64 10485696 1 freebsd [active] (5.0G)
вот это меня заинтересовало
=> 63 10485697 ada0 MBR (5.0G)
63 1 - free - (512B)
64 10485696 1 freebsd [active] (5.0G)


и попробовал утилитой перенести первый 512 байт, то-есть MBR если я правильно понимаю, вот таким способом

Код: Выделить всё

dd if=/dev/ada0 | ssh 10.254.254.218 "dd of=/dev/ada0 bs=512 count=1
перенеслось за миллисекунды, а получил такой же результат как в выводе gpart show как выше

получается при копировании 5Гб утилита переносит только первые 512 байт, то-есть MBR, а все остальное забивает нулями? тогда следующий вопрос почему так только у меня?

snorlov
подполковник
Сообщения: 3890
Зарегистрирован: 2008-09-04 11:51:25
Откуда: Санкт-Петербург

утилита dd

Непрочитанное сообщение snorlov » 2021-04-11 22:59:49

WideAreaNetwork писал(а):
2021-04-11 21:53:53
dd if=/dev/ada0 | ssh 10.254.254.218 "dd of=/dev/ada0 bs=512 count=1
Попробуйте bs=8m count=1...

WideAreaNetwork
сержант
Сообщения: 205
Зарегистрирован: 2017-01-10 14:37:13

утилита dd

Непрочитанное сообщение WideAreaNetwork » 2021-04-11 23:07:51

bs это какими размерами хочу копировать, он должен быть кратным 512 байт как размер блока
count а это уже задает количество блоков которое хочу перенести
получается при размере данных в 8 мегабайт bs=8М перенесу всего один блок в 512 байт так как count=1, то-есть не имеет значений какой будет bs если он больше 512 байт, перенесется все равно всего 512 байт так как count=1
или интересует что именно будет на выходе по gpart show?

WideAreaNetwork
сержант
Сообщения: 205
Зарегистрирован: 2017-01-10 14:37:13

утилита dd

Непрочитанное сообщение WideAreaNetwork » 2021-04-11 23:16:36

WideAreaNetwork писал(а):
2021-04-10 9:20:26
2561+0 records in
2560+0 records out
WideAreaNetwork писал(а):
2021-04-06 17:17:12
6401+0 records in
6400+0 records out
еще одно наблюдение, на выходе у меня всегда показывает на один блок больше чем на приеме, сейчас еще раз прогнал утилитой и результат такой же, хотя во всех манах с примерами что видел то должно быть ровно
к примеру здесь - https://www.lissyara.su/articles/freebsd/trivia/dd/ что на выходе то и на входе
не знаю влияет ли это как-то, но странно что утилита считывает всегда на один блок больше чем записывает

Аватара пользователя
Neus
капитан
Сообщения: 1847
Зарегистрирован: 2008-09-08 21:59:56

утилита dd

Непрочитанное сообщение Neus » 2021-04-12 8:34:08

WideAreaNetwork писал(а):
2021-04-11 23:07:51
bs это какими размерами хочу копировать, он должен быть кратным 512 байт как размер блока
count а это уже задает количество блоков которое хочу перенести
нет, count задает количество блоков размером указанным в bs.
«Вы никогда не сумеете решить возникшую проблему,
если сохраните то же мышление и тот же подход,
который привёл вас к этой проблеме.»
© Альберт Эйнштейн

Аватара пользователя
Neus
капитан
Сообщения: 1847
Зарегистрирован: 2008-09-08 21:59:56

утилита dd

Непрочитанное сообщение Neus » 2021-04-12 9:07:20

нуу хз как ты это делаешь...
я сейчас поставил фрю на GPT
перенес её на соседнюю виртуалку командой:

Код: Выделить всё

dd if=/dev/ada0 bs=1m | ssh 192.168.56.112 "dd of=/dev/ada0 bs=1m
после переноса пофиксил копию GPT (target диск сделал в 2 раза больше)

Код: Выделить всё

gpart recover ada0
система загружается нормально
«Вы никогда не сумеете решить возникшую проблему,
если сохраните то же мышление и тот же подход,
который привёл вас к этой проблеме.»
© Альберт Эйнштейн

guest
проходил мимо

утилита dd

Непрочитанное сообщение guest » 2021-04-12 12:23:22

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

Коротко:
- проблема N1: использование дискового кеширования в выбранной системе виртуализации
- проблема N2: использование dd | ssh dd без понимания работы пайпа

# dd if=/dev/src_hdd options | ssh user@ip.add.re.ss dd of=/dev/targ_hdd options
- первая команда dd
- пайп на вход команды ss
- вторая команда dd

# dd if=/dev/src_hdd bs=128k status=progress | ssh user@ip.add.re.ss 'dd of=/dev/targ_hdd bs=128k'

специально для Вас, последнюю команду взял в апострофы (это и правильно и понятно)
на выходе получим progress для dd которая производит READ!
Вы используете ДВЕ команды dd:
- первая читает/READ с заданными опциями и результат выхода через pipe кидает в сеть: ssh
- вторая получает данные из сети через pipe и пишет/WRITE с заданными опциями

опции, особенно bs желательно иметь одинаковые и в соответствии с man!
bs - устанваливает blocksize как для input так и для output буфера!
аналогично для опции conv и status

# dd if=/dev/ada0 bs=128k conv=noerror,sync | gzip --fast | ssh user@ip.add.re.ss 'gunzip | dd of=/dev/ada0 bs=128k'

нужно читать man и _понимать_ как и какие опции использовать, как и с чем они работают.
bs - устанавливается как для input, так и для output, альтернатива ibs и obs
conv - смотреть как работают опции noerror и sync

Важна ПЕРВАЯ команда "dd if=/dev/source опции" и что она будет делать:
- с входным буфером input
- и с выходным буфером output

Что важно в первой "dd" - чтобы она не свалилась по прерыванию в случае ошибок:
- conv=noerror
и чтобы в случае ошибок, вместо "чепухи" писались нули conv=sync
conv=noerror,sync работает с входным буфером, поэтому данные опции
важны в первой команде dd.

# dd if=/dev/ada0 bs=128k conv=noerror,sync

во второй оставляем только bs=128k

На все вопросы ответил?

Рабочий пример-статья будет позже.

guest
проходил мимо

утилита dd

Непрочитанное сообщение guest » 2021-04-12 17:58:29

Я правильно понимаю что туториал уже не нужен?

WideAreaNetwork
сержант
Сообщения: 205
Зарегистрирован: 2017-01-10 14:37:13

утилита dd

Непрочитанное сообщение WideAreaNetwork » 2021-04-12 19:07:03

snorlov писал(а):
2021-04-11 22:59:49
Попробуйте bs=8m count=1...
получил все то же

Код: Выделить всё

gpart show
=> 9 2292864 cd0 MBR (4.4G)
9 2292864 - free - (4.4G)

=> 9 2292864 iso9660/12_2_RELEASE_AMD64_DVD MBR (4.4G)
9 2292864 - free - (4.4G)

=> 63 10485697 ada0 MBR (5.0G)
63 1 - free - (512B)
64 10485696 1 freebsd [active] (5.0G)

=> 63 10485697 diskid/DISK-QM00005 MBR (5.0G)
63 1 - free - (512B)
64 10485696 1 freebsd [active] (5.0G)

WideAreaNetwork
сержант
Сообщения: 205
Зарегистрирован: 2017-01-10 14:37:13

утилита dd

Непрочитанное сообщение WideAreaNetwork » 2021-04-12 19:18:31

guest писал(а):
2021-04-12 12:23:22
Необходимо одно уточнение: какой гипервизор использовали для экспериментов?
Proxmox который установлен на Dell PowerEdge R710 у данного железа есть аппаратный рейд, выбран 1+0
guest писал(а):
2021-04-12 12:23:22
использование dd | ssh dd без понимания работы пайпа
делал просто образ диска и раскатывал на другой ВМ, результат был такой же как на лету (но это не точно :) )
guest писал(а):
2021-04-12 17:58:29
Я правильно понимаю что туториал уже не нужен?
всегда нужен, у меня их 15 во вкладке, но у вас разжевать для таких как я получается очень даже хорошо
чуть позже попробую сделать по вашему описанию

WideAreaNetwork
сержант
Сообщения: 205
Зарегистрирован: 2017-01-10 14:37:13

утилита dd

Непрочитанное сообщение WideAreaNetwork » 2021-04-12 20:34:54

guest писал(а):
2021-04-12 12:23:22
# dd if=/dev/src_hdd options | ssh user@ip.add.re.ss dd of=/dev/targ_hdd options
guest писал(а):
2021-04-12 12:23:22
# dd if=/dev/ada0 bs=128k conv=noerror,sync | gzip --fast | ssh user@ip.add.re.ss 'gunzip | dd of=/dev/ada0 bs=128k'

Код: Выделить всё

# dd if=/dev/ada0 bs=128k conv=noerror,sync | gzip --fast | ssh root@10.254.254.218 'gunzip | dd of=/dev/ada0 bs=128k'
Could not create directory '/root/.ssh'.
The authenticity of host '10.254.254.218 (10.254.254.218)' can't be established.
ECDSA key fingerprint is SHA256:4YLd3RSpw7nnqmqiOUoA0rwVmA58PU6bLCsbEgrR214.
No matching host key fingerprint found in DNS.
Are you sure you want to continue connecting (yes/no)? yes
Failed to add the host to the list of known hosts (/root/.ssh/known_hosts).
Password for root@target:
40960+0 records in
40960+0 records out
5368709120 bytes transferred in 429.825093 secs (12490451 bytes/sec)
0+81920 records in
40960+0 records out
5368709120 bytes transferred in 467.517346 secs (11483444 bytes/sec)
а вот сейчас все хоккей, даже не знаю как благодарить вас
но все равно остается загадкой как у других это получалось без применения дополнительных опций для if
я по мануалам понял так что задавая опции в конце будут применятся для всех (if of) одинаково, видимо не правильно понял

теперь буду пытаться переносить с реального железа где есть софтовый рейд, и другое реальное железо где есть аппаратный рейд

snorlov
подполковник
Сообщения: 3890
Зарегистрирован: 2008-09-04 11:51:25
Откуда: Санкт-Петербург

утилита dd

Непрочитанное сообщение snorlov » 2021-04-12 20:43:51

Вообще-то напрямую по сети нести большой обьем данных это не айс, в вашем случае явно билось на пути в конвейеры... Я в таких случаях все делаю через переносной диск

guest
проходил мимо

утилита dd

Непрочитанное сообщение guest » 2021-04-12 20:55:25

Proxmox который установлен на Dell PowerEdge R710 у данного железа есть аппаратный рейд, выбран 1+0
Суть в том что в случае использования кеширования, ibs и obs или bs - должны быть одинаковы!
А у Вас:

Код: Выделить всё

# dd if=/dev/ada0 | ssh root@10.254.254.225 "dd of=/dev/ada0 bs=16m conv=noerror,sync status=progress"
первая dd с bs=512, а вторая с bs=16m и получите проблемы.

Код: Выделить всё

root@source:~ # dd if=/dev/ada0 | ssh root@10.254.254.218 "dd of=/dev/ada0 bs=2M conv=noerror,sync status=progress"
опять те же сны, разный blocksize

man dd на предмет dirict,fdatasync и fsync.

Другая сторона:

в proxmox можно использовать:
- локальный storage (на zfs, на mdadm raid + filesystem)
- внешний storage: nfs, ceph ...

Что у Вас используется в качестве хранения образов vhdd и в каком формате: qcow2?

Кеширование может быть использовано как на хост системе, так и для vhdd:
writethrough writeback directsync.

Вариант решения 1.: разобраться с кешированием: none или directsync только на момент
копирования, потом вернуть к примеру writeback, иначе система IO в гостевой
будет медленная.
Еще раз, прочитайте про кеширование в QEMU/KVM , на что и как это влияет,
положительные моменты = скорость IO, отрицательные = потеря данных.

Вариант 2 разобран в самом начале.
Вариант решения 2.: добавить во вторую команду dd oflag=direct

ps. Всегда переношу с физических машин и сторонних гипервизоров на Proxmox
через rsync.

pps. И снова проблема в том что копи-пасте вместо попытки обдумать и разобраться

guest
проходил мимо

утилита dd

Непрочитанное сообщение guest » 2021-04-12 21:07:01

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

# dd ... | ssh | dd
сколько команд?
# dd ... | ssh | dd
^^^^- первая
^^^^^^^^^^^- вторая
^^^^^^^^^^^^^^^- третья
У Вас ДВЕ команды "dd"! С какого перепуга опции первой команды dd автоматом
присвоятся второй команде dd?!

Вы посмотрели "сомнительное" видео, в котором dd выполнили на: "а бы как" - сработало
и ладно, еще и другим рассказывают как просто!

Да - ПРОСТО, когда есть понимание что делается и как!

Пример:
- установили FreeBSD на ada0
- shutdown
- подключили ada1
Вопрос: нужно выставлять переменную kern.geom.debugflags=16 для
- разметки ada1?
- для копирования dd if=/dev/ada0 of=/dev/ada1 ?

WideAreaNetwork
сержант
Сообщения: 205
Зарегистрирован: 2017-01-10 14:37:13

утилита dd

Непрочитанное сообщение WideAreaNetwork » 2021-04-12 21:46:05

guest писал(а):
2021-04-12 21:07:01
У Вас ДВЕ команды "dd"! С какого перепуга опции первой команды dd автоматом
присвоятся второй команде dd?!
это и есть моя ошибка
guest писал(а):
2021-04-12 21:07:01
Пример:
- установили FreeBSD на ada0
- shutdown
- подключили ada1
Вопрос: нужно выставлять переменную kern.geom.debugflags=16 для
- разметки ada1?
- для копирования dd if=/dev/ada0 of=/dev/ada1 ?
думаю что нет

WideAreaNetwork
сержант
Сообщения: 205
Зарегистрирован: 2017-01-10 14:37:13

утилита dd

Непрочитанное сообщение WideAreaNetwork » 2021-04-12 22:09:22

guest писал(а):
2021-04-12 20:55:25
первая dd с bs=512, а вторая с bs=16m и получите проблемы.
я пробовал значение одинаково выставлять как для if так и для of, результату не давало