как сделать диск загрузочным

Вопрос или проблема

У меня есть старая система Debian, у которой вышел из строя жесткий диск. Я подключил диск к работающей системе и скопировал все данные с коревого раздела с помощью dd. Мне кажется, что все данные в порядке, поэтому я решил просто скопировать их на новый диск и сделать его загрузочным. Я купил новый диск, разделил его, смонтировал первый раздел и скопировал все данные на этот раздел. Моя система Legacy, не EFI. Я отредактировал /etc/fstab на этом разделе, чтобы изменить UUID на UUID нового диска. Я выполнил grub-install --boot-directory=/mnt/newdriveroot/boot /dev/sdb, чтобы сделать его загрузочным, и отредактировал /boot/grub/grub.cfg на этом разделе, чтобы изменить UUID коревого раздела на UUID первого раздела нового диска.

Когда я пытаюсь загрузиться с него, Grub загружается, показывая меню так же, как это было до выхода из строя старого диска. Когда я выбираю дефолтный вариант, Linux начинает загружаться. Он очищает экран и затем:

Загрузка Linux 3.2.0-4-amd64 ...
Загрузка начального ramdisk ...

затем снова очищает экран и затем:

Загрузка, пожалуйста, подождите...
[    4.882479] EXT4-fs (sda1): ошибка загрузки журнала
mount: монтирование /dev/disk/by-uuid/e14dc4cb-4b45-8418-e7a6-b2c8d6036749 на /root не удалось: Неверный аргумент
mount: монтирование /dev на /root/dev не удалось: Нет такого файла или каталога
Целевая файловая система не имеет запрашиваемого /sbin/init.
Инициализатор не найден. Попробуйте передать init= в параметрах загрузки.

Затем он сбрасывает меня в встроенную оболочку с подсказкой (initramfs).

Попытки исправить это

На этом этапе я могу смонтировать коревой раздел с помощью:

mount -o ro,noload /dev/sda1 /root

хотя я не знаю, что это мне дает. (Если я затем выйду из оболочки, процесс загрузки пытается продолжиться, но это приводит к ошибкам о том, что /root/sys и /root/proc не существуют.) Но, возможно, тот факт, что оба ro и noload необходимы для монтирования, является полезной информацией? И сейчас, вероятно, хорошее время, чтобы вспомнить, что когда он подключен к работающей системе, я могу смонтировать раздел без проблем (ни ro, ни noload не нужны).

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

JBD2: Неизвестные функции журнала

Я запустил fsck и fsck -f, но не было найдено никаких проблем.

Похожие проблемы

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

Информация о системе

Что еще было бы полезно мне опубликовать? Какие-либо файлы Grub? Не думаю, что это важно, но вот вывод от lsblk, когда он подключен к моей работающей системе:

$ lsblk /dev/sdb
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
sdb      8:16   0 119.2G  0 disk
├─sdb1   8:17   0    20G  0 part
├─sdb2   8:18   0     1K  0 part
├─sdb5   8:21   0    10G  0 part
├─sdb6   8:22   0     8G  0 part
├─sdb7   8:23   0    2G  0 part
└─sdb8   8:24   0  79.2G  0 part

(Я выделил sdb6 как раздел подкачки. 5 предназначен для /var, 7 для /tmp, а 8 для /home.)

Вот /etc/fstab (UUID-ы удалены для удобочитаемости):

UUID=<...>  /      ext4  errors=remount-ro  0  1
UUID=<...>  /home  ext4  defaults           0  2
UUID=<...>  /tmp   ext4  defaults           0  2
UUID=<...>  /var   ext4  defaults           0  2
UUID=<...>  none   swap  sw                 0  0

Я пропустил какой-то важный шаг в создании загрузочным диска?

Ответ или решение

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

1. Подготовка нового диска

  • Проверка разметки: Убедитесь, что вы правильно создали таблицу разделов на новом диске. Для этого вы можете использовать такие утилиты, как fdisk или parted. Например, для создания новой таблицы разделов:

    sudo fdisk /dev/sdb
  • Создание файловых систем: Если вы ещё не создали файловую систему на разделах, используйте следующую команду для первого раздела:

    sudo mkfs.ext4 /dev/sdb1

2. Копирование данных

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

sudo mount /dev/sdb1 /mnt/newdriveroot
sudo cp -a /путь/к/данным/* /mnt/newdriveroot/

3. Настройка fstab

Проверьте, правильно ли вы обновили UUID в /etc/fstab. Чтобы проверить UUID нового раздела, выполните:

blkid

Убедитесь, что у вас правильные UUID для всех разделов, которые вы указали.

4. Установка GRUB

  • Установка GRUB: Убедитесь, что вы устанавливаете GRUB на правильный дисковый носитель. Переходите в магазин:

    sudo grub-install --boot-directory=/mnt/newdriveroot/boot /dev/sdb
  • Конфигурация GRUB: Проверьте конфигурацию и корректность указанных UUID в /boot/grub/grub.cfg. Если у вас нет этой конфигурации, вы можете сгенерировать её с помощью:

    sudo update-grub

5. Проверка и поиск ошибок

Если при загрузке возникают ошибки, такие как:

EXT4-fs (sda1): error loading journal

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

sudo fsck -f /dev/sdb1
sudo fsck.ext4 -c /dev/sdb1

6. Дебаггинг загрузки

Если продолжаете получать initramfs, подключитесь к командной строке и проверьте, как выглядит монтирование:

mount /dev/sda1 /root

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

7. Логи

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

Заключение

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

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

Оцените материал
Добавить комментарий

Капча загружается...