После клонирования диска система не грузится ubuntu

Обновлено: 07.07.2024

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

Данная процедура потенциально опасна для данных. Любое неверное действие или нюанс, связанный с уникальной настройкой, могут привести к потере данных. Обязательно, выполняем резервное копирование всех важных файлов. Также я рекомендую потренироваться в тестовой среде.

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

Процесс будет выполнен в несколько шагов:

1. Клонирование диска

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

Смотрим состояние дисков и разделов на текущий момент:

Определяемся, с какого диска на какой мы будем выполнять копию. Это может прозвучать банально, но тут важно не перепутать источник диска, с которого клонируется информация и целевой носитель.

dd if=/dev/sdx1 of=/dev/sdy1 bs=64K conv=noerror,sync

* Команда выполняет блочное копирование и запускается со следующими параметрами:

  • if — источник данных.
  • of — куда копировать данные.
  • bs — объем блока, который будет читаться и копироваться за раз.
  • conv — дополнительные опции. В данном примере noerror — продолжать операцию в случае ошибки чтения данных; sync — копировать все, в том числе и нулевые данные.

* Таким образом, мы клонируем диск или раздел с /dev/sdx1 в /dev/sdy1 (не путаем источник и назначение).

Команда будет выполняться некоторое время. После ее завершения можно снова посмотреть состояние дисков и разделов:

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

Следующим шагом настроим загрузчик.

2. Загрузчик grub2

Для большинства современных систем характерно использование grub2. Его мы и будем рассматривать. Но если в вашем случае используется сервер с grub первой версии, то мы можем обратиться к инструкции How to Migrate the Root Filesystem to a New Disk.

Мы можем увидеть разные варианты строки, указывающей на загрузку системы.

а) В некоторых случаях это будет универсальная строка, которую не нужно менять, например:

GRUB_CMDLINE_LINUX="crashkernel=auto spectre_v2=retpoline rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet"

* в данной строке мы видим, что загрузчик будет искать том LVM centos/root. Так как после клонирования он не поменяется, то нам ничего не нужно редактировать.

б) В некоторых случаях строка может быть пустой:

* в данном примере также от нас не потребуется никаких действий.

в) В некоторых случаях указатель может вести на конкретные диски:

GRUB_CMDLINE_LINUX="root=/dev/disk/by-id/<partition/disk name> resume=/dev/disk/by-id/<partition/disk name> splash=silent quiet showopts"

Тогда нам понадобиться изменить строки, чтобы диск соответствовал новому.

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

Стоит сделать тестовое отключение с целью проверки, какое имя станет у диска.

3. Файл fstab

На следующем шаге мы проверяем настройки монтирования корневой директории и раздела boot при загрузке системы. Они задаются в файле fstab.

Есть два надежных способа указать диск при монтировании — использовать его идентификатор или точку монтирования тома LVM. Рассмотрим оба варианта.

Данный способ можно использовать частично, так как раздел boot не может использовать LVM, поэтому данное монтирование будет применяться только к корневому разделу.

Если мы используем LVM, то все, что нам нужно сделать, это открыть файл fstab и проверить, что в нем, на самом деле, используется LVM при монтировании корневого раздела:

Мы можем увидеть что-то на подобие:

.
/dev/mapper/centos-root / xfs defaults 0 0
.

Понять, используется ли LVM можно командой:

Мы должны увидеть пометку lvm:

.
centos-root 253:0 0 13.4G 0 lvm /
.

Как было сказано выше, в случае использования LVM, нам не придется редактировать fstab, так как точка монтирования не поменяется.

Использование идентификатора

Для получения списка дисков с их идентификаторами, вводим команду:

Мы получим что-то на подобие:

* как видим, идентификаторы дисков совпадают, так как команды dd клонирует информацию полностью. Также обратите внимание, что разделы LVM также имеют свои идентификаторы. Это очень важный момент, так как точка монтирования в случае использования LVM должна указывать на него.

Чтобы лучше понять, какой идентификатор нам нужен, смотрим список раздело и их монтирования:

Находим раздел, который соответствует корневому и смотрим его идентификатор. После открываем файл:

Наши записи могут быть, примерно, такими:

Но также никто нам не запретит использовать гибридный вариант, например:

* в данном варианте мы используем том LVM для корня и идентификатор для boot.

Буква (цифра) раздела

Также мы можем использовать монтирование при указании конкретного диска и раздела, например:

/dev/sda2 / xfs defaults 0 0
/dev/sda1 /boot xfs defaults 0 0

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

4. Перезагрузка

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

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

б) Если мы сохранили оба диска, нам нужно убедиться в настройках БИОС/UEFI, что загрузка выполняется с нового диска.


Клонированный SSD не загружается

Что вызывает клонированный SSD для сбоя последовательности загрузки?

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

Метод 1: Установка правильного диска для загрузки с

Одной из наиболее распространенных причин, по которым клонированный SSD не загружается, является тот факт, что пользователь забыл установить правильный диск для загрузки. Если этот сценарий применим, переход к настройкам BIOS / UEFI и соответствующему изменению приоритета загрузки должен немедленно решить проблему.

Вот краткое руководство о том, как это сделать:

  1. Перезагрузите компьютер.
  2. На начальном экране нажмите кнопку Настроить ключ для входа в настройки BIOS / UEFI. Конкретный ключ настройки должен быть виден на начальном экране, но на случай, если вам не удастся его обнаружить, вы можете выполнить поиск в Интернете ключа настройки в соответствии с указанием производителя вашей материнской платы.
    Нажмите [ключ], чтобы войти в настройку
  3. Как только вы попадете в экран настройки, найдите вкладку Boot и убедитесь, что клонированный SSD имеет приоритет.
    Установка клонированного SSD вверху списка
  4. Сохраните изменения, выйдите из экрана настройки и посмотрите, будет ли проблема решена при следующем запуске.

Если вы все еще не можете загрузиться с клонированного SSD, перейдите к следующему способу ниже.

Способ 2: замена кабеля SATA, используемого для подключения клонированного SSD (если применимо)

Мы видели несколько подтвержденных отчетов, в которых эта конкретная проблема возникала из-за неисправного кабеля SATA или неисправного порта SATA. Если вы подозреваете, что проблема может быть вызвана проблемой подключения, рекомендуется попробовать заменить кабель SATA и порт SATA (если это применимо) и посмотреть, сохраняется ли проблема по-прежнему.

И так как вы откроете корпус, стоит также попробовать отключить все несущественное от источника питания, просто чтобы убедиться, что источник питания дает SSD достаточно энергии.

Способ 3: удалить / стереть предыдущий диск

К счастью, вы можете решить эту конкретную проблему, просто удалив исходный диск (тот, который вы клонировали). Если ваша система может загружаться с клонированного SSD, вам нужно будет стереть исходный диск в том случае, если вы хотите использовать оба на одной и той же конфигурации ПК.

Способ 4: отключение безопасной загрузки

В этом случае у вас мало выбора, кроме как отключить безопасную загрузку. Вот краткое руководство о том, как это сделать:

  1. Запустите компьютер и нажмите Настроить ключ во время первого экрана. Ваш конкретный ключ установки должен быть виден на начальном экране, но в случае, если это не так, найдите его в Интернете в соответствии с производителем вашей материнской платы.
    Нажмите [ключ], чтобы войти в настройку
  2. Как только вы войдете в настройки BIOS / UEFI, перейдите к Безопасность вкладка и набор Безопасная загрузка в Инвалид.

    Отключение безопасной загрузки

Замечания: Меню BIOS / UEFI сильно отличаются от одного производителя к другому. При определенных конфигурациях вы сможете отключить Безопасная загрузка от Конфигурация системы, аутентификация или ботинок Вкладка.

Способ 5: изменение режима загрузки BIOS

Если вы клонировали GPT HHD в MBR SSD или MBR HDD в GPT SSD, имейте в виду, что необходимо также изменить режим загрузки с UEFI на Legacy или наоборот, чтобы последовательность загрузки прошла успешно. В противном случае SSD-диск не загрузится после завершения процесса клонирования.

Если этот конкретный сценарий применим, вы можете решить проблему, изменив режим загрузки. Вот краткое руководство о том, как это сделать:

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

Метод 6: Запуск утилиты среды восстановления Windows

Но имейте в виду, что для выполнения этой процедуры вам понадобится установить установочный носитель Windows с версией операционной системы. Вы можете следить за этой статьей (Вот) для Windows 7 или этот (Вот) для Windows 10, чтобы создать установочный носитель, если у вас его нет.

Вот краткое руководство по запуску утилиты автоматического восстановления:

  1. Вставьте установочный носитель и перезагрузите компьютер. В начале последовательности запуска нажмите любую клавишу для загрузки с установочного носителя Windows.
    Нажмите любую клавишу для загрузки с установочного носителя
  2. Как только установка Windows будет загружена, нажмите Почини свой компьютер (нижний левый угол экрана.
    Выбор Восстановить ваш компьютер из программы установки Windows
  3. Как только вы перейдете в следующее меню, перейдите к Устранение проблем, затем нажмите на Расширенные настройки. Далее из Расширенные настройки меню, выберите Восстановление при загрузке.
    Запуск утилиты восстановления при загрузке
  4. Подождите, пока утилита запустится, затем нажмите Продолжить перейти к этапу диагностики. Если у вас есть пароль, вам будет предложено предоставить его.
    Предоставление необходимых учетных данных
  5. Подождите, пока утилита WinRE не закончит сканирование и устранит проблемы с загрузкой, связанные с вашим клонированным диском.
    Утилита автоматического восстановления сканирует ПК
  6. После завершения процесса ваш компьютер перезагрузится. При следующем запуске проверьте, не возникает ли проблема.

Если вы все еще не можете загрузиться с клонированного SSD-накопителя, перейдите к следующему способу ниже.

Метод 7: Запуск утилиты Bootrec.exe

Замечания: Похожий на Способ 6, вам нужно будет получить установочный носитель Windows с версией операционной системы. Вы можете следить за этой статьей (Вот) для Windows 7 или этот (Вот) для Windows 10, чтобы создать установочный носитель, если у вас его нет. Если у вас его нет, вы также можете заставить Восстановление при загрузке меню, чтобы вызвать три последовательных прерывания запуска.

Вот краткое руководство по запуску Bootrec.exe полезность:

  1. Вставьте установочный носитель Windows и нажмите любую клавишу при появлении запроса на загрузку с него. Когда вы увидите начальное окно установки Windows, нажмите Почини свой компьютер.
    Доступ к меню «Восстановление» с помощью кнопки «Восстановить компьютер»
  2. Как только вы доберетесь до Расширенные настройки меню, перейдите к Устранение проблем затем выберите Командная строка.
    Выбор командной строки в дополнительных параметрах
  3. После открытия командной строки введите следующие команды в порядке их написания и нажмите Войти после каждого перестраивать все данные конфигурации сборки:
    Bootrec.exe

полетел системный диск, вернее стал сыпаться, бэды пофиксили, отдали его в контору диск поменять.
там поставили новый диск (160 Gb, старый был 80 Gb) и склонировали на него старый
все разделы все есть раздел /boot помечен как активный и еще 80 Gb unnalocated space

система не грузится.. . при загрузке пишет GRUB и все, ни на что не реагирует.. .

нашел старый MBR (я правда не уверен в его правильности) , накатил оттуда загрузчик на новый диск через dd
не помогло, при загрузке все тоже самое. пишет GRUB и все.. .

пробовал GRUB заново проставить.. .
гружусь с SystemRescueCD 2.5

(отступлю немного) : в системе 5 дисков, 4 SATA и один IDE (системный) , так вот SystemRescueCD IDE диск распознает как /dev/sde =-O когда он /dev/hda !?

вот и граб у меня на него не получилось проставить.. .
сделал chroot, запускаю grub
говорю root (hd0,0)
вроде так.. .
говорит нет такого диска.. . или как-то так.. .

что сделать как запустить перенесенный линь.

az_esm, так гуглил.. . пока не нагуглил.. . я его и пытался восстановить по инструкции.. . в лоб не получилось.. .
да еще и sysrescuecd почему-то неправильно диски видит. Andrew Andrew, дисков 5, писал выше.
fstab никто не трогал, он так же как и вся система был перенесен на другой диск, там не ююиды, там /dev/* /dev/hda2 / ext3 defaults 1 1
/dev/hda1 /boot ext3 noauto,defaults 1 2
none /dev/pts devpts gid=5,mode=620 0 0
none /dev/shm tmpfs defaults 0 0
none /proc proc defaults 0 0
none /sys sysfs defaults 0 0
/dev/hda6 /tmp ext3 defaults 1 2
/dev/hda3 /u01 ext3 defaults 1 2
/dev/hda5 /var ext3 defaults 1 2
/dev/sda1 /vol/d1 ext3 defaults 1 2
/dev/sdb1 /vol/d2 ext3 defaults 1 2
/dev/sdc1 /vol/d3 ext3 defaults 1 2
/dev/sdd1 /vol/d4 ext3 defaults 1 2
/dev/hda7 swap swap defaults 0 0
/dev/sdd2 swap swap defaults 0 0
/dev/sdc2 swap swap defaults 0 0
/dev/hdb /media/cdrecorder auto pamconsole,exec,noauto,managed 0 0
/dev/fd0 /media/floppy auto pamconsole,exec,noauto,managed 0 0
мне сдается проблема с загрузчиком и его как-то надо поднять.

Ольга Гвоздик, ваш комментарий абсолютно бесполезен
мне не надо ничего заново ставить!
- есть система, абсолютно рабочая и настроенная, я больше времени потрачу на установку всего что надо и последующую настройку
- ее надо запустить!
- бэд-блок был один на неважном и некритичном файле

с раздником вас ;)

3) Недостаток знания, опыта
если у кого-то достаточно того чего надо, прелагаю поделиться полезной информацией, а не высокопарными фразами.

pen$ioner, ссылка интересная, но пока не получается.. .
ввиду того что все уже размечено и скопировано, интересен только пункт 4. Установка загрузчика Linux

второй вариант с chroot не прошел.. . не видит как /dev/sde так и /dev/hda

/sbin/grub-install --root-directory=/mnt/hda2 /dev/sde

sde т. к. ide диск видится в систем systemrescuecd как /dev/sde (hd4)

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

перегружаюсь.. . немного лучше.. . запускается grub v.097 с приглашением (ждет ввода)

эээ.. . а дальше куда копать?

в моем случае работает только вариант с /sbin/grub-install --root-directory. про chroot см. выше в дополнениях (не видит диски)
а Grub 0.97 инсталлился из SystemRescueCD ввиду того что /boot на отдельном разделе и я его не монтировал.

в-общем предварительно смонтировал корень и boot (на всякий случай и пр. остальные разделы) на корень

т. к. в SystemRescueCD hda определся как sde монтировал я соответственно sde

hda1 (sde1) - /boot
hda2 (sde2) - /

определяются диски, перезаписывается файл
/mnt/hda2/boot/grub/device.map
на
(fd0) /dev/fd0
(hd0) /dev/sda
(hd1) /dev/sdb
(hd2) /dev/sdc
(hd3) /dev/sdd
(hd4) /dev/sde

после успешной инсталляции редактирую обратно файл /mnt/hda2/boot/grub/device.map
(fd0) /dev/fd0
(hd0) /dev/hda

таким он был изначально

перегружаюсь, ура!
все работает и загружается :)

pen$ioner, спасибо за правильно направление.
Andrew Andrew, тоже в правильно направлении шел :) но т. к. я не одмин, я наизусть не знаю как грабы инсталлятся и пр. пр. ссылка pen$ioner помогла

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

Система Ubuntu не загружается

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

Далее я отдельно рассмотрю второй и третий случаи. Начнем со стандартного режима восстановления grub.

Entering rescue mode

Итак, в случае проблем с загрузкой Ubuntu вы можете оказаться в режиме grub rescue.

grub rescue

Первым делом запускаем команду ls и смотрим, какие разделы у нас доступны.

В моем случае доступен только один 3-й раздел, скорее всего корневой. Раздела /boot, который обычно 1-й или 2-й нет. Проверим это наверняка. Смотрим содержимое доступного раздела:

восстановление загрузки ubuntu

Далее загружаем некоторые модули. Какие будут нужны, точно не известно и зависит от типов разделов диска. Показываю самые популярные:

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

Восстановление поврежденных разделов ubuntu

Если же у вас вообще не найден раздел для загрузки, надо попробовать его восстановить. Для этого загружаемся с установочного диска Ubuntu и на первом экране инсталлятора выходим в консоль через раздел Help.

live cd ubuntu

Вы окажетесь в консоли системы, которая по сути является livecd сервера. В целом, тут подойдет любой livecd дистрибутив с linux. Эта система видит все подключенные диски и вообще все оборудование. Первым делом вам надо настроить выход в интернет на сервере так же, как вы это делаете обычно. После этого нужно обновить пакеты и установить утилиту testdisk. С ее помощью мы попробуем найти исчезнувший загрузочный раздел.

установка testdisk

Запускаем утилиту и указываем, что будем создавать новый log файл.

запуск testdisk

Выбираем диск, на котором у нас установлена система. В моем случае это sda.

выбор диска для восстановления

В качестве partition table type сначала укажите Intel. Если не получится ничего найти, попробуйте еще раз с другими типами.

тип таблицы разделов

Дальше выбираем Analyze.

Анализ таблицы разделов

И запускаем Quick Search.

Запуск поиска

У меня testdisk нашел 2 раздела, причем первый это boot раздел, который по какой-то причине исчез.

Восстановление boot раздела в ubuntu

Из-за его отсутствия виртуальная машина с ubuntu не грузилась. Далее выбираю первый раздел и восстанавливаю его с помощью testdisk. Записываю изменения и выхожу в консоль. Проверяю с помощью fdisk разделы диска /dev/sda.

Раздел /boot восстановлен

Появился первый загрузочный раздел. По идее я выполнил восстановление boot раздела. Теперь можно проверить, запустится ли система. Для этого отключаем установочный диск и загружаемся с основного.

В случае, если все загрузилось, вам повезло. Отделались малой кровью. Если же ubuntu не загружается, а вы опять попадаете в grub rescue, значит придется еще потрудиться над восстановлением загрузки системы. Будем восстанавливать сам grub.

Восстановление grub

Продолжаем восстановление загрузки ubuntu. Сам /boot раздел мы вернули, но загрузчик grub почему-то не работает и система не грузится. Загружаемся опять с установочного диска и переходим в консоль. Напомню, что у меня такая картина по разделам:

Первый раздел это /boot, второй корень / . Смонтируем их в /mnt, а так же добавим несколько системных директорий.

Теперь чрутимся в /mnt, чтобы оказаться в нашей системе:

И уже отсюда восстанавливаю загрузчик grub:

По идее, ошибок получить не должны. Если получили, то гуглите их. Надо обязательно их решить, иначе система так и не начнет загружаться корректно.

Теперь выходим отсюда и перезагружаем сервер. Вынимаем установочный диск и загружаемся с основного диска. У меня пошла загрузка.

Давайте еще раз повторим все, что мы сделали:

  1. Мы увидели, что система не грузится и валится в grub rescue. Загрузчик не может найти раздел, с которого продолжить загрузку. Мы попробовали в rescue console посмотреть все имеющиеся разделы и не нашли там boot. Если же нашли, то сразу же загрузились с него.
  2. После этого загрузились с загрузочного диска ubuntu, перешли в консоль. Установили утилиту testdisk и просканировали наш диск. Нашли пропавший раздел, восстановили /boot. Если раздел не нашли, то создали вручную.
  3. После этого смонтировали к livecd системе локальные диски, зачрутились в эту систему и штатно восстановили grub загрузчик.
  4. После этого система нормально загрузилась.

Заключение

В целом, мы выполнили типовую процедуру восстановления загрузки любого linux сервера, в том числе ubuntu. Если бы раздел boot не получилось восстановить, его нужно было бы создать вручную и проделать все то же самое с восстановлением grub. Это ключевой элемент загрузки linux. Система перестает загружаться чаще всего из-за проблем с ним. Он может быть поврежден установкой рядом других систем или неправильной разбивкой диска.

Читайте также: