Автор Тема: Как правильно копировать систему с hdd на другой hdd ?  (Прочитано 8580 раз)

Оффлайн XBM

  • Давно тут
  • **
  • Сообщений: 462
  • Бэкап - акт проявления трусости.
    • Email
Пытаюсь клонировать SL p9.
Подскажите пожалуйста, как правильно копировать систему с диска на диск?

Пробовал использовать
dd if=/dev/sdb of=/dev/sda bs=64M
Комп выключаю, отсоединяю sdb, загружаюсь с флешки и пытаюсь восстановить загрузочную запись.
Но невозможно произвести mount /dev/sda2 /mnt
выдает ошибку.
Gparted показывает ошибки на sda2 (root), sda3  (home) и не может их исправить.



Онлайн yaleks

  • Мастер
  • ***
  • Сообщений: 5 715
А размер дисков одинаковый?
Я так иногда делаю и все ОК.

Оффлайн XBM

  • Давно тут
  • **
  • Сообщений: 462
  • Бэкап - акт проявления трусости.
    • Email
Да, диски одинаковые, одна поставка. После выполнения dd никаких сообщений об ошибках не было.

Оффлайн rabochyITs

  • Давно тут
  • **
  • Сообщений: 698
  • Евгений
ddrescue -nvf /dev/sdb /dev/sda ./log_sdb-sda

Оффлайн XBM

  • Давно тут
  • **
  • Сообщений: 462
  • Бэкап - акт проявления трусости.
    • Email
Спасибо, попробую.

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 7 412
  • Sunny 273 RUS crew
Комп выключаю, отсоединяю sdb, загружаюсь с флешки и пытаюсь восстановить загрузочную запись
Странно. По идее тут даже ничего восстанавливать не надо, должно сразу грузиться, если в fstab и загрузчике всё по UUID.

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 9 631
Пытаюсь клонировать SL p9.
Подскажите пожалуйста, как правильно копировать систему с диска на диск?

Загрузившись с флешки или с аварийного usb-hdd. Копируя один винчестер на другой, диск-в-диск.
И в системе на xfce-sysv, которая максимально молчалива насколько это только возможно, ибо systemd и journald там отсутствуют де-факто, и даже если ни одно приложение не загружено, на диск как минимум "стучит" jbd2. И довольно активно. Увидеть "стуки" по write, можно через 'iotop -ao'. А там, пока идёт копирование, могут ещё "настучать" и chrony, и *syslog*, и ещё бог знает что. Поэтому копируемый диск не должен использоваться загруженной системой. И он должен быть в пассивном, в неиспольземом загруженной системой состоянии. Как другой накопитель.
« Последнее редактирование: 21.07.2020 14:12:51 от Speccyfighter »

Оффлайн XBM

  • Давно тут
  • **
  • Сообщений: 462
  • Бэкап - акт проявления трусости.
    • Email
Комп выключаю, отсоединяю sdb, загружаюсь с флешки и пытаюсь восстановить загрузочную запись
Странно. По идее тут даже ничего восстанавливать не надо, должно сразу грузиться, если в fstab и загрузчике всё по UUID.
С помощью ddrescue сделал копии на две машины. В обоих случаях загрузилось сразу. Но почему-то сеть перешла из режима "получить по DHCP" в режим "установить вручную" и управление от NetworkManager перешло к ethernet (тоже в обоих случаях). Где-то есть привязки к MAC-адресу?

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

Оффлайн hasculdr

  • Давно тут
  • **
  • Сообщений: 615
Здравствуйте. Нужно скопировать систему на жесткий диск бОльшего размера, все разделы тоже хочу увеличить. Вижу это так:
- с live-usb создаю разделы на новом диске
- копирую все данные с разделов (тут можно использовать dd? имею ввиду копировать меньший раздел в бОльший)
- устанавливаю загрузчий в новый диск
- правлю fstab
Задумка должна сработать, или я что-то не знаю и пропустил?

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 7 412
  • Sunny 273 RUS crew
копирую все данные с разделов (тут можно использовать dd? имею ввиду копировать меньший раздел в бОльший)
В принципе должно сработать, но правильность расширения раздела на весть объём зависит от файловой системы наверное. По идее если так, то и cp можно использовать, раз с LiveCD загрузка и переустановка загрузчика планируется.

Оффлайн Mr.Madguy

  • Давно тут
  • **
  • Сообщений: 155
В предыдущей теме не успел запостить - она закрылась. Может хоть тут запощу. Я делал для Windows и с точки зрения пользователя Windows, который не очень шарит в Linux, но для Linux принцип наверное тот же.

Уже два раза проделывал такое. Первый раз на своем стационарном компе, у которого диску было 7 лет и SMART начал показывать много переназначенных секторов. Но при этом все работало нормально. Возможно просто какая-то ошибка, но я на всякий случай скопировал этот диск. Ошибок при копировании не было, так что оно заняло около 2-3 часов. Второй раз вот буквально только что. На ноуте, которому 5 лет, износился жесткий диск. Вероятно из за большого количества парковок головки. Ресурс по этому параметру обычно составляет 300-500к, а на диске их было 560к. Ноут начал характерно протормаживать и начали появляться нестабильные сектора. Благо я пожадничал, когда его покупал, и купил его с двумя одинаковыми жесткими дисками. Было много ошибок, так что копирование заняло всю ночь. Около 3мб восстановить не удалось и после этого состояние диска ухудшилось. Но вроде работает.

Как я это делаю? Для этого нужно две флэшки. Одна с Live образом любого Линукса, а вторая для лога, который позволяет начать копирование с того же места в случае прерывания. Можно конечно обойтись и одной, если настроить файловую систему с возможностью записи, но я не заморачиваюсь. После этого качаем gddrescue. Сначала делаем fdisk -l и очень внимательно проверяем, какой диск является источником, а какой приемником, чтобы не потерять все данные. Смотрим путь до точки монтирования второй флэшки. Можно через любой файловый менеджер, который показывает путь к файлу в адресной строке. Что-то типа /media/mint/<метка флэшки>.

Ну и потом ddrescue -f /dev/<источник> /dev/<приемник> /<путь к фэшке>/<имя лога>.

Копирование идет в 3 этапа. Сначала копирование большими блоками. Это быстро. Потом копирование по секторам тех блоков, которые не читались. Это медленнее. Потом зачитывание плохих секторов до дыр. Совсем медленно. Зато большая гарантия того, что будет спасено максимальное количество данных.

Однако это еще не конец. После копирования начинаются танцы с бубном с загрузочным сектором. Особенно если планируете оставить оба диска, а не выключить старый. Чаще всего его нужно пересоздавать. Иначе система не загрузится. Если есть рабочая система, то через нее. Если нет, то с загрузочной флэшки. На счет Линукса не уверен. А для Windows нужно воспользоваться утилитами BootRec, BCDBoot и BCDEdit. Если MBR, то проще. Если GPT, то сложнее. На GPT сначала нужно сделать раздел EFI видимым. Делается это через DiskPart. Делаете "list vol". Находите тот, что FAT32 с нового загрузочного диска. "select vol X", где X - его номер по списку. Потом "assign letter=M:". Или любую другую букву. Удалить потом можно будет через "remove letter=M:". Выходите через exit. Потом сразу стоит попробовать "bcdboot <Диск с Windows>:\Windows /l ru-ru /s <Диск с EFI>:". Для MBR это один и тот же диск. По идее должно решить проблему. Может остаться старая заргузочная конфигурация. Редактировать можно при помощи "bcdedit /Store <Диск с EFI>:\boot\bcd" с дописыванием различных команд. Для сброса конфигурации ее можно удалить. Для этого делаем "attrib -s -h -r <Диск с EFI>:\boot\bcd" и соответственно "del <Диск с EFI>:\boot\bcd". После этого пересоздаем через bcdboot.

Если планируется оставить старый диск подлюченным, то для нормальной работы системы может так же понадобится ручная смена точек монтирования дисков, т.к. новый диск запросто может иметь имена дисков D:, если логический диск один, или E:/F: если два. Это делается через реестр "/HKLM/SYSTEM/MountedDevices". Нужно поменять диски местами простым переименовыванием через какие-то промежуточные незанятые буквы. После этого перезагрузится. Без этого у меня Explorer постоянно перезагружался.

Если новый диск больше старого, то последний раздел можно расширить через "Панель управления->Администрирование->Управление компьютером->Управление дисками" и выбрав соответствующий пункт контекстного меню для соответствующего раздела.

П.С. На скринах состояние первого и второго диска уже после копирования. До копирования было лучше, но не особо. Скорость в районе 56Гб была в районе половины от номинала и нестабильных секторов было около 260.

П.П.С. И да. Советую выключить автопарковку головок для экономии электроэнергии. Это полезно для ноута, но целиком и полностью бесполезно для стационарного компьютера или ноутбука, который все равно всегда стоит на зарядке. По идее автопарковка на стационарном компьютере, кроме некоторых исключений, не будет осуществляться для системного диска. Но может выполняться для остальных. Гарантированно выключить ее на компьютере с Windows можно через CrystalDiskInfo. В "Сервис->Дополнительно->Управление AAM/APM" выключить эти функции. А для того, чтобы они не включались автоматически после перезагрузки, выставить галочки "Сервис->Дополнительно->Автонастройка AAM/APM", "Сервис->Автозапуск" и "Сервис->Запуск агента".
« Последнее редактирование: 17.08.2020 17:21:43 от Mr.Madguy »

Оффлайн hasculdr

  • Давно тут
  • **
  • Сообщений: 615
Пардон, как в моем случае правильно переустановить загрузчик? #grub-install /dev/sdb будет достаточно (/boot же скопирован со старого диска)?

Оффлайн hasculdr

  • Давно тут
  • **
  • Сообщений: 615
застрял с такой ошибкой:
Цитировать
# /usr/sbin/grub-install --root-directory=/mnt/new_root/ /dev/sdb
Выполняется установка для платформы i386-pc.
/usr/sbin/grub-install: предупреждение: метка раздела GPT не имеет BIOS Boot Partition; встраивание невозможно.
/usr/sbin/grub-install: предупреждение: Встраивание невозможно. При имеющихся параметрах GRUB можно установить только с помощью списка блоков (blocklists). Однако, список блоков является НЕНАДЁЖНЫМ механизмом и его лучше не использовать..
/usr/sbin/grub-install: ошибка: не будет продолжена с использованием blocklists.
в /mnt/new_root смонтирован перенесенный корневой раздел /dev/sdb1
и на /dev/sdb1 не могу в gparted выставить флаг boot (который выставляется автоматически при установке системы) - к нему принудетельно добавляется влаг esp
upd. на старом диске таблица разделов msdos, а тут я по привычке выбрал gpt(. нужна другая инструкция
« Последнее редактирование: 18.08.2020 14:47:43 от hasculdr »