Не могу вывести Red Hat 7 USB из аварийного режима (vi / etc / fstab вообще не отображается)

269
RickwhoPrograms

У меня проблема с загрузочным USB, который я сделал. Так что это постоянный проект, над которым я работаю некоторое время. По сути, я установил Red Hat 7 на USB, так что USB по сути является ОС. Затем я выполнил следующие команды, чтобы попытаться записать этот «живой USB» в файл .raw.gz для повторного распространения:

 if=/dev/sda bs=10000 count=500000 status=progress | gzip > newredhat.raw.gz 

Вышеприведенная задача захватывает первые 5 ГБ загрузочного USB и сохраняет его в образ с именем newredhat.raw.gz в виде сжатого файла .raw. Процесс работает как надо, кроме одной вещи. Затем я запускаю следующую команду, чтобы поместить этот пользовательский образ на другой USB-диск, отформатированный в fat32 и на 100% чистый:

 zcat newredhat.raw.gz > /dev/sdc 

После того, как извлечение / запись завершена, новый USB загружается должным образом, однако загружается в аварийный режим. Я часами искал, что может быть за этим, но, учитывая, что это, возможно, очень уникальный сценарий, в этом нет особого смысла. Я попытался vi / etc / fstab, и он говорит мне, что / etc / fstab не существует и создает новый файл для редактирования. Я также посмотрел на журнал, и единственное, что возвращается, это "не удалось смонтировать sysroot". Идея всего этого проекта заключается в том, что он может быть простым извлечением - иди клон для моих USB и серверов на базе Linux. Что действительно странно, так это то, что этот точный метод работал для openSUSE. Это как-то связано с тем, как Red Hat создает свою архитектуру после установки? Если это так, есть ли работа вокруг? Заранее спасибо за всю помощь!

0

1 ответ на вопрос

1
dirkt

1) bsПараметром для ddявляется размер блока . Если это не степень двойки, и, в частности, если это не размер блока вашего устройства, вы делаете это неправильно. В этом случае не используйте ddв первую очередь.

2) В зависимости от того, как именно вы выложили первую флешку (вы не сказали нам), взяв первые 5 ГБ, возможно, пропустила таблицу разделов в конце.

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

gzip /dev/sda1 > newredhat.raw.gz zcat newredhat.raw.gz > /dev/sdc1 

Таким образом, таблица разделов может компенсировать устройства разного размера.

Это также работает между USB-накопителями и жесткими дисками.

3) Для отладки того, что происходит с вашей второй флешкой, было бы крайне полезно посмотреть сообщения, которые он показывает, прежде чем перейти в аварийный режим. dmesgили журналы помогут, если он быстро прокрутится. Поэтому, пожалуйста, отредактируйте вопрос с помощью дословных сообщений, которые вы видите перед тем, как он жалуется на «не удалось смонтировать sysroot». У меня есть подозрение, что это потому, что вы испортили таблицу разделов (см. Выше). И обнаруженная таблица разделов должна отображаться в dmesg / logs. И если «тот же самый точный метод работал для openSUSE», это может быть потому, что openSUSE использовал другую схему разбиения, и / или ваши флешки были одинакового размера.

редактировать

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

Итак, еще раз: вместо того, чтобы копировать только первые 5G карты памяти 32G на карту памяти 16G, создайте раздел размером 5G на первой карте памяти, сделайте раздел точно такого же размера на второй карте, затем скопируйте раздел (/ dev / sda1), а не вся палка (/ dev / sda). Вы можете создать разделы с fdisk, gdisk, partedили все, что вам нравится. Вам не нужно ничего вычислять, вы просто должны убедиться, что разделы имеют одинаковый размер.

Привет, Дирк, цель использования метода подсчета была в том, чтобы сказать, что я хотел выполнить эту команду на 32-гигабайтном USB-накопителе и сохранить DD в файл размером 5 Гб, чтобы я мог затем развернуть этот образ на USB-накопителе размером 16 байт. Исходя из моего понимания, вы имели в виду, что лучше разрешить копировать весь диск в любом сценарии, а затем просто развернуть его? или мне нужно выполнить команду fdisk -l на целевом USB, а затем выполнить команду подсчета на исходном USB, используя вычисленную информацию из целевой файловой системы? RickwhoPrograms 6 лет назад 0
понял! Будет ли это копировать какие-либо существующие данные из источника в пункт назначения? Я надеялся, что смогу скопировать часть информации! RickwhoPrograms 6 лет назад 0