утилита dd

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

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

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

утилита dd

Непрочитанное сообщение WideAreaNetwork » 2021-04-06 14:39:15

хочу с помощью утилиты dd сделать образ системы на реальном железе где есть софтовый рейд и перенести ее на гипервизор

на гипервизоре у ВМ (виртуальная машина) есть установленная ОС FreeBSD 12.2, это я к тому что там уже есть диск ada0, добавил для хранилища еще один диск ad0

гружусь с FreeBSD LiveCD, чтобы был доступ в инет ввожу команду

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

dhclient em0
так как в ливсд нету возможности что-то делать так как все ридонли то создаю папку

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

mkdir /tmp/etc
и монтирую папку /etc/ чтобы возможно было наcтроить ssh

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

mount -t unionfs /tmp/etc /etc
далее выставляю значение PermitRootLogin yes в файле /etc/ssh/sshd_config, задаю пароль руту и запускаю службу

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

service sshd onestart
создаю разметку GPT для добавленного диска da0 куда сохраню образ

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

gpart create -s gpt /dev/da0
создаю раздел на нем

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

gpart add -t freebsd-ufs /dev/da0
форматирую

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

newfs /dev/da0p1
создаю папку для монтирования и монтирую

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

mkdir /tmp/iso
mount /dev/da0p1 /tmp/iso
перехожу на сервак где работает система и запускаю утилиту dd с переносом образа на ВМ

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

dd if=/dev/ada0 | ssh root@host_VM "dd of=/tmp/iso/DEVICE.img"
далее пробую образ развернуть на ВМ уже где запущен LiveCD

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

dd if=/tmp/iso/DEVICE.img of=/dev/ada0
в итоге получаю не работающую систему, подскажите плиз на каком этапе я ошибся?
Вложения
Screenshot 2021-04-06 143755.png

Хостинговая компания 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
сержант
Сообщения: 239
Зарегистрирован: 2017-01-10 14:37:13

утилита dd

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

попробовал на лету все сделать без сохранения образов

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

dd if=/dev/ada0 | ssh root@10.254.254.225 "dd of=/dev/ada0 bs=16m conv=noerror,sync status=progress"
Password for root@:
dd: /dev/ada0: end of device, 100 GiB) transferred 8123.672s, 13 MB/s

6401+0 records in
6400+0 records out
107374182400 bytes transferred in 8123.673972 secs (13217441 bytes/sec)
и получил

missing operating system

Demis
прапорщик
Сообщения: 496
Зарегистрирован: 2015-05-25 14:36:32

утилита dd

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

Первое, что бросается в глаза, написано:
WideAreaNetwork писал(а):
2021-04-06 14:39:15
там уже есть диск ada0
WideAreaNetwork писал(а):
2021-04-06 14:39:15
еще один диск ad0
А у Вас раскручивается на ada0
WideAreaNetwork писал(а):
2021-04-06 14:39:15
dd if=/tmp/iso/DEVICE.img of=/dev/ada0
Если я правильно понял исходную мысль, то ada0 уже "занят" системой, а раскрутить нужно было на ad0 (и там где налету также)...

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

утилита dd

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

я добавил и примонтировал новый ad0 диск чтобы было место где сохраниться образ
да, на ada0 стоит система, а разве утилита dd не затирает все что там есть? или нужно ставить именно на новый чистый диск? даже без разметок?

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

утилита dd

Непрочитанное сообщение snorlov » 2021-04-06 22:42:53

Я бы перед 2-ым dd перешел бы в /tmp/iso и дал бы

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

sysctl  kern.geom.debugflags=16
и еще, после неудачи gpart'ом посмотрел бы что за разметка там получилась...

Demis
прапорщик
Сообщения: 496
Зарегистрирован: 2015-05-25 14:36:32

утилита dd

Непрочитанное сообщение Demis » 2021-04-07 9:02:38

Такс, не понимаю...
Если Вы настаиваете, что "ada0" это "диск, устройство, для восстанавливаемой системы", а "ad0" - это только хранилка для образа, то (при условии, что загрузка идет с лайв сиди) почему на скриншоте мы видим попытку загрузчика искать систему на "ad0", а не на "ada0"?
("Default: 0:ad(0,a)/boot/kernel/kernel")

Какой диск прописан в VM как загрузочный?

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

утилита dd

Непрочитанное сообщение guest » 2021-04-07 9:15:32

хочу с помощью утилиты dd сделать образ системы на реальном железе где есть софтовый рейд и перенести ее на гипервизор
никаких "dd" в случае hard или софт-рейда.
Почему - для самостоятельного обдумывания, ответ прост и очевиден.

Практически любая система переносится на раз:
- fdisk
- оформление загрузчика: gpart/grub2
- lvm если требуется
- newfs/mkfs
- rsync

Главное правильно ставить, с ядром generic, будь то xBSD или Debian/Ubuntu,
и только RH-Based требует телодвижений с initrd и dracut, так как by default
устанавливается ядро под текущее железо.

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

утилита dd

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

Почему же для dd в случае софт рейд плохая идея? К тому же человек в данном случае просто подготавливает почву для переноса,
Прав Demius, после 2-го использования dd надо разрушить ad0

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

gpart destroy -F ad0
тогда загрузка пойдет со следующего диска, а так мы имеем первым da0, на котором есть раздел с ufs, но нет загрузчика...

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

утилита dd

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

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

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

утилита dd

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

может я в начале делаю что-то не так

установил на железо фряху, на диск ada0

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

# geom disk list
Geom name: ada0
Providers:
1. Name: ada0
   Mediasize: 100030242816 (93G)
   Sectorsize: 512
   Mode: r1w1e1
   descr: MK0100GCTYU
   lunid: 55cd2e404b57c903
   ident: BTTV403302D0100FGN
   rotationrate: 0
   fwsectors: 63
   fwheads: 16

Geom name: ada1
Providers:
1. Name: ada1
   Mediasize: 100030242816 (93G)
   Sectorsize: 512
   Stripesize: 4096
   Stripeoffset: 0
   Mode: r1w1e1
   descr: INTEL SSDSC2BA100G3
   lunid: 55cd2e404c1d847f
   ident: BTTV610100FF100FGN
   rotationrate: 0
   fwsectors: 63
   fwheads: 16
потом с с помощью самой оси сделал софтовый рейд

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

# gpart show
=>       63  195371504  mirror/gm0  MBR  (93G)
         63          1              - free -  (512B)
         64  195035136           1  freebsd  [active]  (93G)
  195035200     336367              - free -  (164M)

=>        0  195035136  mirror/gm0s1  BSD  (93G)
          0  186646528             1  freebsd-ufs  (89G)
  186646528    8388608             2  freebsd-swap  (4.0G)
для утилиты dd на этом же компе указываю input file ada0 - начало правильно делаю?

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

утилита dd

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

Проблема у тебя в другом, у тебя в виртуалке 2-а диска и cd, при этом ada0 инициализирован, поэтому она с него может нормально грузится, а на ad0 ничего нет, даже разметки, поэтому и загрузки с него нет, т.е. для вм есть только одно загрузочное устройство, затем ты втыкаешься live cd в сд, появляются 2-а загрузочных устройства и с cd вм грузиться, потом размечаешь ad0 как простой раздел с ufs, монтируешь его в /tmp/iso и создаешь на ad0 образ ada0 в виде файла, затем ты этот образ снова заливаешь на ada0, таким образом у тебя есть и ada0 и проинициализированный ad0 и после всех этих дел вынимаешь сд и делаешь перезагрузку и система у тебя начинает грузиться с ad0, а там только разметка да имидж, вот и идет останов... Вердикт: надо разрушить разметку на ad0 перед перезагрузкой

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

утилита dd

Непрочитанное сообщение WideAreaNetwork » 2021-04-07 14:30:20

чтобы не было путаницы на ВМ удали все диски, создал новый , вот как выглядит ВМ с новыми дисками

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

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: da0
Providers:
1. Name: da0
   Mediasize: 118111600640 (110G)
   Sectorsize: 512
   Stripesize: 4096
   Stripeoffset: 0
   Mode: r0w0e0
   descr: QEMU QEMU HARDDISK
   ident: (null)
   rotationrate: unknown
   fwsectors: 63
   fwheads: 255

Geom name: da1
Providers:
1. Name: da1
   Mediasize: 5368709120 (5.0G)
   Sectorsize: 512
   Stripesize: 4096
   Stripeoffset: 0
   Mode: r0w0e0
   descr: QEMU QEMU HARDDISK
   ident: (null)
   rotationrate: unknown
   fwsectors: 63
   fwheads: 255

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

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)
запустил утилиту dd

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

dd if=/dev/ada0 bs=4M | ssh root@10.254.254.225 "dd of=/dev/da0 bs=4M conv=noerror,sync status=progress"
где if=/dev/ada0 это реальное железо, а root@10.254.254.225 dd of=/dev/da0 это ВМ
пока прошло 73Гб, посмотрим на результат, по идее надо будет подправить только fstab, это если все ОК будет

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

утилита dd

Непрочитанное сообщение WideAreaNetwork » 2021-04-07 14:35:31

snorlov писал(а):
2021-04-07 13:31:30
и после всех этих дел вынимаешь сд и делаешь перезагрузку и система у тебя начинает грузиться с ad0, а там только разметка да имидж, вот и идет останов... Вердикт: надо разрушить разметку на ad0 перед перезагрузкой
теперь начинает проясняться в голове почему сначала было no boot kernel, а после удаления диска на котором лежал образ стало missing operation system

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

утилита dd

Непрочитанное сообщение WideAreaNetwork » 2021-04-07 15:34:16

WideAreaNetwork писал(а):
2021-04-07 14:30:20
посмотрим на результат, по идее надо будет подправить только fstab, это если все ОК будет
процесс закончен

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

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  230686657  da0  MBR  (110G)
         63          1       - free -  (512B)
         64  195035136    1  freebsd  [active]  (93G)
  195035200   35651520       - free -  (17G)
делаю перезагрузку вынимая при этом сд и получаю....
Вложения
Screenshot 2021-04-07 153321.png

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

утилита dd

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

Грузись на вм в live cd и смотри что там на диске...

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

утилита dd

Непрочитанное сообщение WideAreaNetwork » 2021-04-07 16:05:28

извините, забыл написать, все тоже самое
Вложения
Screenshot 2021-04-07 160436.png

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

утилита dd

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

Ну так попробуйте прописать

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

gpart bootcode -b /boot/pmbr ad0
gpart bootcode -p /boot/boot -i 1 ad0
Сначала первый и попытаться загрузиться, ну а потом 2-ой, а чего вы все на mbr делаете, gtp же есть...

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

утилита dd

Непрочитанное сообщение WideAreaNetwork » 2021-04-07 17:18:57

думаю опечатались, указывать надо было da0, но не суть, чуда не случилось
no bootable device
snorlov писал(а):
2021-04-07 16:43:55
а чего вы все на mbr делаете, gtp же есть
софтрейд было проще создать...

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

утилита dd

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

А вообще сама фря на эту виртуалку встает? Можно попробовать и через dump/restore, правда встает вопрос об suj.

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

утилита dd

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

Да вот еще в mbr надо еще ставить активный раздел

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

gpart set -a active -i 1 da0
К сожалению в разметке mbr я не силен... Да и вот еще что, поскольку у нас не может загрузиться, то копировать можно только первые 8м...

Demis
прапорщик
Сообщения: 496
Зарегистрирован: 2015-05-25 14:36:32

утилита dd

Непрочитанное сообщение Demis » 2021-04-07 18:23:50

WideAreaNetwork писал(а):
2021-04-07 15:34:16
делаю перезагрузку вынимая при этом сд и получаю....
Вложения
Screenshot 2021-04-07 153321.png
Дык это, ёлы палы...
Опять-жешь тоже самое...
На скриншоте загрузка с CD (Booting from DVD/CD...) показана, а кто ее переключать для настроек VM будет?

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

утилита dd

Непрочитанное сообщение WideAreaNetwork » 2021-04-07 18:26:45

snorlov писал(а):
2021-04-07 17:49:33
А вообще сама фря на эту виртуалку встает?
встает, там стояла 12.2, сейчас вот экспериментирую перед переносом того что хочу
переношу такую же 12.2

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

утилита dd

Непрочитанное сообщение WideAreaNetwork » 2021-04-07 18:50:26

Demis писал(а):
2021-04-07 18:23:50
а кто ее переключать для настроек VM будет?
дурак он и в Африке дурак.... :) что-то я упустил на каком-то этапе этот момент

сейчас получил
Invalid partition table

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

утилита dd

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

snorlov писал(а):
2021-04-07 16:43:55
gpart bootcode -b /boot/pmbr ad0
gpart bootcode -p /boot/boot -i 1 ad0
а это разве не для gpt ? а то у меня mbr
может мне надо было это прописать?

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

# fdisk -B -b /boot/boot0 da0

Demis
прапорщик
Сообщения: 496
Зарегистрирован: 2015-05-25 14:36:32

утилита dd

Непрочитанное сообщение Demis » 2021-04-07 19:25:56

Уже хорошо, хоть и не работает...
А теперь начинаются "круги ада"...
Как я их называю.
В чем суть?
В путанности сознания. Сколько ada? в системе...

Что имею ввиду.
1. Когда загрузился с DVD/CD очень легко получить устройство ada0 как его видит ЭТА (загруженная) бутовая система. И полученный ada далеко не тот, на который мы хотим накатить систему...
2. Соответственно писать данные из файла на ada0 это не есть то, что правильно, хотя формально и выглядит верно.
Вот в этом и запутка.
А нужно писать именно на "второй девайс".
Какой именно?
Смотрим внимательно ls /dev/ и ищем свои железки.
Там легко может оказаться, что-то вроде /dev/ada1 или иное подобное.
Убедившись, что найдена верная железяка (не важно, даже если она виртуальная, типа из файла или VM) прописываем именно ее как of= в команде

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

dd if=/tmp/iso/DEVICE.img of=/dev/ada0 
da пока не трогайте (если только не хотите ее переделать, но тогда файл с образом под угрозой).