Вопрос или проблема
Итак, я клонировал SD-карту RPI, чтобы использовать ту же систему дома и на работе. SD-карты были немного разных размеров, поэтому после выполнения dd мне пришлось запустить resize2fs и fsck. Если я загружаю Pi с этой картой, я попадаю в аварийную оболочку, и могу смонтировать корневой раздел, и всё работает.
Проблема: мне нужно, чтобы это работало без монитора, и я не могу монтировать корневой раздел каждый раз при старте. Когда Pi загружается, он ищет PARTUUID=”ceafa322-02″. Если бы я мог изменить Pi на загрузку с нового корневого UUID или чего-то подобного, было бы нормально, но я не знаю процесса загрузки на одном из этих устройств. Я пытался изменить раздел с помощью fdisk, но не знаю, как идентификатор типа 0xXXXXXXXX переводится в ceafa322-02 как PARTUUID.
Какое наилучшее решение? Я могу стереть установку, но я почти решился в этот момент.
На дисках с разметкой MBR нет реальных 128-битных UUID для разделов, указанных в таблице разделов; таблица разделов MBR слишком мала для этого. Вместо этого PARTUUID создается, добавляя тире и двухзначный номер раздела к 32-битному идентификатору диска.
Таким образом, в вашем PARTUUID="ceafa322-02"
, часть -02
это просто номер раздела, а ceafa322
это идентификатор диска. Он представлен в шестнадцатеричной системе, что часто указывается префиксом шестнадцатеричного числа 0x
.
Поэтому при установке идентификатора диска с помощью fdisk
, вы просто указываете его как 0xceafa322
.
Ответ или решение
Проблема с загрузкой Raspberry Pi из-за несоответствия PARTUUID может быть решена путем коррекции идентификаторов на диске. Вот пошаговое руководство, как это сделать:
Понимание проблематики
Вы клонировали SD-карту Raspberry Pi, чтобы использовать ту же систему дома и на работе. Из-за того, что карты имели немного разные размеры, пришлось использовать dd
, а также resize2fs
и fsck
. В результате возникла проблема с автоматической загрузкой, и теперь система требует ручного монтирования корневого раздела из-за изменения PARTUUID.
Почему возникла проблема?
На дисках с MBR разметкой PARTUUID формируется из 32-битного идентификатора диска и добавленного к нему номера раздела. В вашей цепочке PARTUUID="ceafa322-02"
:
ceafa322
— это идентификатор диска в шестнадцатеричном формате.-02
— это номер раздела.
Решение проблемы
-
Узнать текущие идентификаторы:
- Используйте команду
blkid
, чтобы узнать текущие UUID и PARTUUID вашего диска и разделов.sudo blkid
- Используйте команду
-
Обновить идентификаторы в /etc/fstab:
- Откройте файл
/etc/fstab
и замените старый PARTUUID на новый, соответствующий вашему клонированному диску.
- Откройте файл
-
Изменить конфигурацию загрузки:
- В файле
/boot/cmdline.txt
замените устаревший PARTUUID на новый, который вы узнали с помощьюblkid
.
- В файле
-
Настройка через fdisk (если необходимо):
- Если PARTUUID всё ещё некорректен, можно изменить идентификатор диска через инструмент
fdisk
. - Запустите
fdisk
и укажите новый идентификатор как0xceafa322
.sudo fdisk /dev/sdX # Zамените /dev/sdX на ваш путь
- В режиме командной строки
fdisk
нажмитеo
, чтобы установить новый MBR. - Далее нажмите
i
, чтобы задать новый идентификатор disка.
- Если PARTUUID всё ещё некорректен, можно изменить идентификатор диска через инструмент
-
Проверить изменения и перезагрузить:
- Используйте команду
fsck
для проверки файловой системы.sudo fsck /dev/sdX2 # Проверьте целостность файловой системы
- После внесенных изменений перезагрузите Raspberry Pi и убедитесь, что система загружается без вмешательства.
- Используйте команду
Следуя этому руководству, вы сможете решить проблему с загрузкой без необходимости полного удаления системной установки, сохранив текущую настройку вашего Raspberry Pi. Почти все шаги можно выполнить через терминал, что делает процесс быстро восстановимым и ненавязчивым.