LINUX.ORG.RU
ФорумAdmin

Клонировать Debian на другой диск

 , , ,


1

1

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

/dev/sda1 - исходный Debian /dev/sda5 - клонированный раздел (через dd)

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

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

После update-grub появилась строчка Linux с /dev/sda5, но не важно какой я выбираю - грузится исходный а не клонированный.

Далее взял вредные советы из интернета - uuidgen, tune2fs - на новый раздел поставил свежесгенерированный UUID, прописал его в fstab - grub начал падать в recovery говорит что не может найти такую файловую систему. Бред собачий уже достал. Я не один раз клонировал винт на винт и это всегда запускалось, возможно впервые клонирую primary раздел №1 на логический лиск созданный в extended разделе (потому номер 5) - может в этом причина?

Пытался еще решить проблему радикально - убрать к чертям UUID из fstab и монтировать /dev/sda5 как это всегда делалось в старые добрые времена. Те же грабли.

P.S. Clonezilla, Acronis и прочий шлак не предлагать. Никогда им не пользовался и не собираюсь его качать. Мне лень искать USB2SATA и рабочий DVD-шник.



Последнее исправление: Dima_228 (всего исправлений: 3)

Предлагаю грузить/монтировать не по UUID а по LABEL.

Сначала налепить LABEL на нужную fs например:

e2label /dev/sda5 system

Потом в grub.conf заменить root=UUID=… на root=LABEL=system

Потом в /etc/fstab заменить UUID=… на LABEL=system

imatveev13
()
Ответ на: комментарий от imatveev13

Так. Вот это решает выпадание в grub recovery. Еще эта проблема решается загрузкой установщика Linux и выбором reinstall grub в менюшке (стоит только загрузочный диск и HDD с клонированной системой, после reinstall grub пункт в grub только один, он начинает загружаться.

Но дальше возникает все тот же публичный дом - система загрузилась, окно ввода логина/пароля в которое ничего невозможно ввести. Во время загрузки была куча красного unable to start systemd. То есть технически я могу зайти в эту систему только выбрав recovery в grub / advanced options.

Dima_228
() автор топика

/dev/sda1 - исходный Debian /dev/sda5 - клонированный раздел (через dd)

/dev/sda

по задумке диск-источник вынимается и в этой машине больше не работает

Показания не сходятся.

Возможно надо перегенерировать initramfs, как-то так:

mount /dev/sda5 /mnt
mount -o bind /dev /mnt/dev
mount -o bind /dev/pts /mnt/dev/pts
mount -o bind /proc /mnt/proc
mount -o bind /sys /mnt/sys

# тут если у тебя отдельный boot надо и его примонтировать и efi раздел, опять же если есть, что-то вроде этого:
# mount /dev/sda4 /mnt/boot
# mount /dev/sda1 /mnt/boot/efi

chroot /mnt
update-initramfs -u -k all
grub-install /dev/sda
update-grub
masa
()
Последнее исправление: masa (всего исправлений: 1)
Ответ на: комментарий от masa

Поскольку я в recovery уже успешно находился - попробовал только update-initramfs -u -k all и перезагрузился.

После этого начала твориться лютая дичь:

:not foundm: line 1: []PNG
/dev/udevadm: line2: : not found
....
/dev/udevadm: line 6: syntax error: unexpected ")"

(я эту ошибку со скобкой уже ловил сегодня при попытке update-grub из chroot)

Что-то капитально не то, откуда сигнатура начала PNG файла (начинается с квадратика) не понял. Сейчас снова восстановлю grub с установочного диска но тут кажется что-то не то с файловой системой… хотя fsck.ext4 проходило без ошибок.

И да, перед Busybox v1.36 пишет ALERT! UUID=мой новый UUID does not exist. Dropping to a shell. То есть как загружаться из восстановленного установщиком GRUB в recovery то все нормально, но после перезапуска уже не нормально.

Dima_228
() автор топика
Последнее исправление: Dima_228 (всего исправлений: 1)
Ответ на: комментарий от Vsevolod-linuxoid

Конечно нет. С флешки загрузился что попалось под руку (Kali). gparted’ом создал структуру (MBR, 1й основной раздел, 2й extended, в Extended один логический под Linux - не спрашивайте почему не в первый раздел, так надо) остальное не размечено. После этого клонировал раздел в раздел. Ошибок не было.

Подхожу сейчас еще более радикально к вопросу. На этот раздел (форматнул) ставлю голый debian по умолчанию, с DVD (все таки нашел) потом загружусь с чего-то третьего (recovery установочного диска или с флешки), примонтирую оба раздела и скопирую все файлы с заменой. Точнее, удалением всех файлов и потом копированием. Версии Debian совпадают, просто настроенная система со всем установленным и чистую заново настраивать не стоит затрат времени. По идее установщик сам пропишет правильные UUID в fstab и поставит Grub.

Dima_228
() автор топика
Последнее исправление: Dima_228 (всего исправлений: 3)

неделю назад клонировал devuan с винта на винт - клонируется через dd без проблем, все работает и мыша и клава и иксы…

anonymous
()
Ответ на: комментарий от anonymous

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

Dima_228
() автор топика
Ответ на: комментарий от Dima_228

Я обычно в такой ситуации монтирую одну систему в одно место, клон в другое и cp -a, потом правлю fstab на новые UUID и из chroot восстанавливаю загрузчик.

Vsevolod-linuxoid ★★★★★
()
Ответ на: комментарий от Dima_228

Kali

Язабан

У меня вопрос.

/dev/sda - устройство
/dev/sda1..5 - партиции.

Вы склонировали /dev/sda1 в /dev/sda5. Как вы собрались вытащить партицию из диска и перенести куда-то?

PPP328 ★★★★★
()
Ответ на: комментарий от PPP328

Язабан

Не надо. Просто загрузочная флешка с которой WiFi «восстанавливаю», больше никак не использую. Образ кривой, в него чтобы тупо mc добавить надо танцевать с бубном потому что apt поломан (ключи).

Вы склонировали /dev/sda1 в /dev/sda5

Я склонировал раздел одного физического диска в раздел чистого физтческого диска. Возможно выше была опечатка с названием устройства.

У меня был перерыв на ужин. До перерыва поставил Debian как писал, потом загрузился с установочного, примонтировал оба, удалил все папки которые не символические ссылки и скопировал из источника в назначение. Оставил только boot, vmlinuz. Пытался загрузиться - ошибок systemd нет, но загрузка висла с курсором на черном экране. Сейчас буду cp -r пробовать (может прописывая по одному каталогу я что-то пропустил)

Dima_228
() автор топика
Последнее исправление: Dima_228 (всего исправлений: 1)
Ответ на: комментарий от PRN

Процесс ***и объявляется оконченным.

По какой причине dd упорно криво копировал файловую систему установить уже будет невозможно. Окончательный результат -

  1. создать раздел
  2. отформатировать в ext4
  3. примонтировать источник и назначение в пустые каталоги
  4. cp -r -a из источника в назначение
  5. Исправить UUID в /etc/fstab назначения
  6. загрузиться с установочного диска, в меню выбрать install grub, войти в консоль, update-grub.

Кажется все. Остальное было от лукавого.

Dima_228
() автор топика
Последнее исправление: Dima_228 (всего исправлений: 1)
Ответ на: комментарий от Vsevolod-linuxoid

Склонированный dd на ходу не так фатален как кажется. Ну то есть делать его конечно не надо, но результат будет вполне успешно грузиться с вероятностью больше 90% (что плохо, т.к. новичок может в итоге подумать что всё норм).

firkax ★★★★★
()
Ответ на: комментарий от Dima_228

По какой причине dd упорно криво копировал файловую систему установить уже будет невозможно.

У тебя «сурс» больше чем «дест». А знаешь что выдаст clonezilla в этом случае?)

загрузиться с установочного диска, в меню выбрать install grub, войти в консоль, update-grub.

Это можно делать «не отходя от кассы» Для примера: grub-install --force --target=x86_64 --boot-directory=<path-to-sda5-root>/boot /dev/sda

Для efi, само собой, немного иначе.

PRN
()
Последнее исправление: PRN (всего исправлений: 1)
Ответ на: комментарий от PRN

Я обычно в такой ситуации запускаю clonezilla и не парю себе и другим мозг))

Уже парите. Потому что вашу клонзилу ещё где-то отрыть нужно, а cp из каробки в наличии.

anc ★★★★★
()

tar или rsync, потом в chroot обновить initramfs/initrd и загрузчик. Что тут можно столько обсуждать — непонятно.

anonymous
()
Ответ на: комментарий от anc

Который тоже: Где-то отрыть нужно

Как же трудно загрузиться с исошки, после такой работы надо отпуск брать на неделю, не меньше)))

PRN
()
Ответ на: комментарий от anc

Тем что его нужно откуда-то взять

Тебя сботит немного после перезагрузки)). Кому оно надо, тот уже откуда-то все взял и давно настроил все для загрузки)

PRN
()
Ответ на: комментарий от PRN

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

anc ★★★★★
()
Последнее исправление: anc (всего исправлений: 1)
Ответ на: комментарий от anc

просто лишние телодвижения по сравнению с несколькими командами в cli

LOL. В клонезиле это одна команда cli.

В случае когда даунтайм имеет значение, всякие клонзилы не лучшее решение.

Здесь подробнее, не понял твою светлую мысль.

PRN
()

По очень старой привычке,еще с конца 90х, вполне успешно копирую систему с помощью Midnight Commander. Хотя преимущество перед использованием cp - только в наглядности и интерактивности процесса. Не всегда же бывает нужно копировать абсолютно всё один в один.

Ну и требуется понимание что например каталоги /proc, /sys и некоторые другие с работающей запущенной системы копировать не надо,их на целевой системе надо создать пустыми. Если есть понимание что и как расположено в файловой системе - то вполне получается скопировать и из «живой» системы. Заодно и подправить необходимые мелочи в конфигах с помощью кнопки F4.

Также надо учитывать что при таком копировании не скопируется всякая экзотика типа «жестких» ссылок или каких-нибудь расширенных атрибутов у файлов(тех что показываются только через lsattr). Обычно я на своих машинах не применяю ни то ни другое поэтому для меня это не проблема.

А вот насчет использования dd на не идеально идентичных разделах диска - лично я бы поостерегся. Это же не пофайловое,а посекторное копирование. В результате разметка раздела может получиться некорректной. Что по всей видимости у автора темы и произошло. Лучше всё-таки файловую систему создать на новом месте,а потом в гарантированно правильную ФС копировать файлы.

watchcat382
()
Ответ на: комментарий от PRN

Здесь подробнее, не понял твою светлую мысль.

Клонирование диска с большим обьемом данных.
1. Вырубаем сервак, вставляем второй диск, врубаем сервак.
2. Размечаем новый диск и запускаем rsync при полностью рабочем серваке.
3. По завершению копирования останавливаем демоны пишущие на диск и повторно запускаем rsync для разделов на которые происходила запись.
4. Устанавливаем загрузчик на новый диск.
5. Вырубаем сервак, вытаскиваем старый диск, запускаем сервак уже с нового диска.

В результате всего этого обходимся небольшим временем простоя.

anc ★★★★★
()
Ответ на: комментарий от anc

Клонирование диска с большим обьемом данных. …

А, понял, мы начали фантазировать) Я думал мы проблему ТСа обсуждаем - клонирование рута с раздела на другой раздел. Ну раз фантазируем), еще если нужен прокси, то колнезилла тоже не подходит и как разрабы это не предусмотрели? XD

PRN
()
Ответ на: комментарий от PRN

Первая команда - распаковка stage3 и вход в chroot; вторая - доустановка, настройка системы в chroot, перезагрузка; третья - не знаю

anonymous
()
Ответ на: комментарий от anonymous

Из-за тебя, анон, гугить пришлось)

https://bash-org-archive.com/?464385

    <@insomnia> it only takes three commands to install Gentoo
    <@insomnia> cfdisk /dev/hda && mkfs.xfs /dev/hda1 && mount /
    dev/hda1 /mnt/gentoo/ && chroot /mnt/gentoo/ && env-update &&
    . /etc/profile && emerge sync && cd /usr/portage && scripts/
    bootsrap.sh && emerge system && emerge vim && vi /etc/fstab &&
    emerge gentoo-dev-sources && cd /usr/src/linux && make
    menuconfig && make install modules_install && emerge gnome
    mozilla-firefox openoffice && emerge grub && cp /boot/grub/
    grub.conf.sample /boot/grub/grub.conf && vi /boot/grub/
    grub.conf && grub && init 6
    <@insomnia> that's the first one

ПыСЫ: Смешная шутка)))

PRN
()
Последнее исправление: PRN (всего исправлений: 1)
Ответ на: комментарий от PRN

Вот это chroot /mnt/gentoo/ && env-update невозможно сделать.

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

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

anonymous
()
Ответ на: комментарий от PRN

А, понял, мы начали фантазировать)

Даже не начинал.

Я думал мы проблему ТСа обсуждаем - клонирование рута с раздела на другой раздел.

И чем мое описание с вычеркиванием пунктов про второй диск не подходит?

anc ★★★★★
()
Ответ на: комментарий от anc

У тебя специфический случай под серверы. Например у меня ноутбук и можно вставить только один диск. Так что клонзила на внешний диск и потом обратно на новый - удобный вариант.

masa
()
Ответ на: комментарий от anc

Держать в руте большие данные это ССЗБ. На это есть 100500 причин. У меня даже на домашней тачке в /var есть кое-что примонтированное. Так что твой кейс с даунтайм не сильно валиден. К тому же если ты выйдешь из дефолтного маня мирка, то узнаешь, что даже у такой относительно просто ФС как ext4 есть опции. Про btrfs/zfs я вообще молчу:

sudo btrfs subvolume list / | wc -l
122

«Вертел» я это руками переносить. XD

Это снапы рута если шо))

Даже «деревянный» dd, с которого ТС начал, в этом случае будет получше чем cp/rsync.

PRN
()
Ответ на: комментарий от masa

Переходник usb-sata 2.5 и ненужен промежуточный хард. Если нет в наличии, то купить не большая проблема, стоит копейки, доставка на следующий день есть и в озоне и в тындыкс маркете. Если очень горит прям сегодня, то не исключено что есть в наличии в каких-то магазинах поблизости. Например в никсе их достаточно.

anc ★★★★★
()
Ответ на: комментарий от anc

Ну странная штука, по твоей логике получается, скачать программу которая все сделает «за пару лишних телодвижений» это сложно, за-то советуешь искать и покупать где переходиник и это «небольшая проблема»

masa
()
Ответ на: комментарий от PRN

Держать в руте большие данные это ССЗБ.

Какое отношение это имеет к теме?

У меня даже на домашней тачке в /var есть кое-что примонтированное. Так что твой кейс с даунтайм не сильно валиден.

Какое отношение количество смонтированного имеет к даунтайму ?

К тому же если ты выйдешь из дефолтного маня мирка, то узнаешь, что даже у такой относительно просто ФС как ext4 есть опции.

И? Сказать то что хотели?

Про btrfs/zfs я вообще молчу

В топике нигде не упоминается используемая фс, там и fat может случится.

anc ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.