Диск не загрузится со своего Grub, а загрузится с Grub другого диска, после клонирования, почему?

Люди недооценивают срок службы современной флэш-памяти, поскольку большинство (приличных) флэш-карт занимают сотни терабайт данных и по-прежнему работают. Как указано здесь, на Ask Different (хотя это не совсем ваша проблема), пройдет некоторое время, прежде чем вы начнете беспокоиться о сроке службы вашей SD-карты.

Чтобы процитировать пример, мой SanDisk 32GB Extreme прослужил около пяти или шести лет с ежедневным чтением-записью в общей сложности около 300 ГБ / день. Если вы посчитаете, что это 547,5 ТБ, прежде чем они наконец закончатся в начале этого месяца.

Я понимаю, что записываемый / читаемый файл является файлом подкачки, что означает постоянные изменения, но это не должно вас сильно беспокоить (люди с большим опытом в этой области, поправьте меня, если я ошибаюсь) .

Если вам интересно, действительно измерьте, сколько данных поступает и снимается с вашей карты в день в среднем. В большинстве случаев средняя SD-карта может занимать до или даже более 500 ТБ. Затем вы можете использовать эти значения, чтобы приблизительно получить представление о предполагаемом времени до разрядки SD-карты.

1
07.12.2018, 12:23
3 ответа

Дисковые UUID

Я считаю, что это было главным виновником и нуждалось в изменении.

Это было так же просто, как загрузить систему с диска SATA и запустить:

# gdisk /dev/nvme0n1

x для экспертного меню

g для GUID нового диска

R для рандомизации

w для записи изменений на диск

y для подтверждения

UUID диска был изменен... Нет необходимости менять их оба, конечно.

# fdisk -l | grep -i identifier

Disk identifier: 989573D5-37E7-437A-B680-9410F7234A94
Disk identifier: 1207A335-32CA-4B6C-A508-29A0E85597C4

UUID разделов

Опять же, чтобы изменить те, которые я использовал:

# gdisk /dev/nvme0n1

x для экспертного меню

c для UUID нового раздела

1 для первого раздела; повторите эти шаги для второго раздела

R для рандомизации

w для записи изменений на диск

y для подтверждения


Обновление GRUB

Это было так же просто, как бежать:

# update-grub

Внутренняя регенерация

# update-initramfs -u -k all

Настройки UEFI BIOS

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

Диск NVMe загружается нормально.


Примечания

  • Я не использую chrootдля клонирования. Я использую обычный catили более удобный pvдля целей клонирования диска. Я сейчас что-то об этом читал. Я никогда не нуждался в этом, никогда. И я клонировал уже около сотни дисков.

  • Всякий раз, когда я хочу сделать точную копию, я делаю это на своем сервере SATA,но этот новый M.2 PCIe не совсем подключается к нему. Поэтому я немного уточнил. Это выходит за рамки этих вопросов и ответов.

  • Я слышал, что есть адаптеры, но мне они не нравятся, поэтому я использовал свой сервер в качестве посредника в локальной сети.

  • Я не люблю осложнений. Клонирование систем, будь то Linux или Windows, для меня довольно просто. Но в таком случае (переход с SATA на M.2 )был непростым делом.

  • Это потому, что на одном диске стоял Linux, а на втором — Windows. И я хотел, чтобы все было на месте, без переустановки -, без rsyncили чего-то еще, что можно использовать для копирования. Вместо этого я делаю клонирование точных копий.

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

  • Этот случай был другим, хотя я много готовился. Например, делать резервные копии (1 :1 )и тому подобное. Это был мой персональный компьютер, и я хотел просто переключить системные диски :M.2 + Windows & SATA + Linux. Я хотел сделать наоборот.

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

3
27.01.2020, 23:23

На основании предоставленной информации трудно сказать, что именно происходит, ваше предположение о проблеме с UUID, скорее всего, верно.

Вот как я могу выполнить вашу задачу:

  • Очистите NVME, используя dd и /dev/zero. Достаточно использовать bs=512 count=4
  • Создайте новые разделы и файловые системы на NVME.
  • Загрузитесь в действующую систему.
  • Скопируйте данные из разделов SSD в разделы NVME.
  • Установите Grub на NVME, обновите /etc/fstab, обновите grub.cfg.

Для последнего пункта я рекомендую следующий метод:

  • Находясь в действующей системе, создайте новый «корневой» каталог и смонтируйте туда корневую файловую систему NVME.
  • mount --bind/dev, /proc, /sysв новый «корень». Например.mount --bind /dev /mnt/nvmeroot/dev
  • chroot в новый «корень», используя:chroot /mnt/nvmeroot/ /bin/bash
  • Используйте blkid, чтобы узнать UUID новых разделов, соответствующим образом обновите /etc/fstab.
  • Установите grub на nvme, например. используяgrub-install
  • Обновите файл конфигурации grub с помощьюupdate-grub or grub2-mkconfig
  • Выйдите из chroot.
  • Отмонтировать привязанные монтирования и новый «корень».
  • Перезагрузка из NVME.

Если что-то не работает:

  • Используйте кнопкуe(редактировать )в grub и удалите аргументы загрузки Linux в качестве параметров quiet, splash, rhgb, чтобы вы могли видеть сообщения об ошибках во время загрузки.
  • Перезагрузитесь, используя действующую систему, смонтируйте новый «корень», выполните монтирование с привязкой, выполните chroot и устраните проблему, попробуйте еще раз.
0
27.01.2020, 23:23

Drive won't boot... after cloning, why?

У меня нет под рукой /etc/default/grub, но я воспользуюсь строчкой из вашего скрипта bootinfo

# auto-mount of windows drive
#/dev/disk/by-uuid/9CDAC383DAC357E2 /mnt/9CDAC383DAC357E2 auto nosuid,nodev,nofail,x-gvfs-show,ro 0 0

так что ваш исходный диск имеет UUID любой

вы клонируете содержимое этого диска на новый диск или NVME. И содержимое grub на новом диске по-прежнему будет ссылаться на uuid независимо от , который был старым диском, а не текущим новым диском.

Этот новый диск не будет иметь тот же UUID, что и исходный, вы должны исправить везде, где он использовался, в основном /etc/default/grubи за ним следует grub2-mkconfig, а также исправить свой /etc/fstab.

I believe the problem arises from both drives having the same disk UUID, am I right?

UUID = универсальный уникальный идентификатор. UUID должен быть другим.

Существует несколько способов монтирования диска... по -uuid, или по -id, или по -имени, или по -метке, или по -пути в верхней части моего голова. Я не знаю, все ли дистрибутивы Linux следуют этой модели, но если вы посмотрите в /dev/disk/, вы должны увидеть подпапки

  • по -идентификатор
  • по -метка
  • по -пути
  • автор -ууид

если вы делаете по -имени , то это просто вызывает диск из /dev/sda1или /dev/sd??, что не является уникальным, и я не рекомендую делать... если есть только когда-либо один диск присутствует, тогда он будет /dev/sdaи будет работать, но он не будет уникальным и не будет явным, поэтому со временем вы рискуете. И все может быть еще сложнее, если NVME отображается по-другому, как/dev/nvme????

с вашего fdisk:

Disk /dev/nvme0n1: 477 GiB, 512110190592 bytes, 1000215216 sectors
Disk identifier: 1207A335-32CA-4B6C-A508-29A0E85597C4

Device          Start       End   Sectors   Size Type
/dev/nvme0n1p1   2048    194559    192512    94M EFI System
/dev/nvme0n1p2 194560 488396799 488202240 232,8G Linux filesystem
  • посмотрите под /dev/disk/?и найдите соответствующий идентификатор.
  • исправьте ваши загрузочные файлы, чтобы явно использовать этот новый диск nvme для загрузки.
  • исправить /etc/fstabна этом диске, чтобы использовать этот идентификатор, он будет иметь текст, ссылающийся на старый диск, потому что вы клонировали.
0
27.01.2020, 23:23

Теги

Похожие вопросы