Я пытаюсь создать Linux Live USB-накопитель из изогибридного (.iso) образа.

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

  1. Надежно протрите флэш-накопитель с помощью команды:

    sudo dd bs=4M if=/dev/zero of=/dev/sdx

  2. Создайте таблицу разделов msdos на флешке с помощью gparted

  3. Создайте новый раздел (/dev/sdx1) размером с флеш-накопитель с файловой системой fat32 (для межплатформенной совместимости), выровненной по цилиндру с помощью gparted

  4. Установите bootable флаг на только что созданном разделе (/dev/sdx1), используя gparted

  5. Проверьте файловую систему во вновь созданном разделе (/dev/sdx1), чтобы убедиться, что все операции форматирования диска были выполнены правильно с использованием gparted

  6. Запишите образ .iso на флешку с помощью команды:

    sudo dd bs=4M if=<distro>.iso of=/dev/sdx

Однако после выполнения последнего шага, когда я снова проверяю диск с помощью gparted, он сообщает, что все пространство на флэш-диске не выделено и что на диске нет таблицы разделов. Я подозреваю, что это может быть связано с перезаписью или повреждением основной загрузочной записи (MBR), когда я записываю .iso на флэш-накопитель с помощью команды dd .

Когда я монтирую флешку, все файлы, содержащиеся в .iso кажутся правильно извлеченными из .iso , и я иногда могу загрузить живой USB. Тем не менее, у меня были различные проблемы с надежностью при использовании этого метода во время загрузки, а также при попытке установить дистрибутив на жесткий диск с помощью живого USB. Как я упоминал ранее, я подозреваю, что это может быть связано с повреждением таблицы разделов и неправильным определением файловой системы fat32 после записи .iso на флэш-диск, что может привести к некоторым проблемам чтения и записи с диск при загрузке и установке.

Есть ли способ предотвратить возникновение этих проблем с надежностью и повреждение таблицы разделов, в то же время используя только gparted и dd?

1 ответ1

1

Как только вы запустите dd bs=4M if=something.iso of=/dev/sdx , все, что вы создали с помощью gparted (то есть таблицы разделов), будет перезаписано dd .

То, что gparted показывает, что диск не выделен и не имеет таблицы разделов, является нормальным. По крайней мере, это то, что gparted показывает для всех USB-флешек Debian, которые я создал до сих пор.

Лучший способ проверить, успешно ли работает dd, - это смонтировать первый раздел на диске и посмотреть, выглядит ли содержимое вменяемым (= похоже на то, что в iso).

mkdir a b
mount /dev/sdx1 a
mount file.iso b
# see if the a and b directories seem to contain the same files

Кроме того, вы можете использовать cp something.iso /dev/sdx вместо dd . Его проще набирать и просто (если не больше) эффективно.

РЕДАКТИРОВАТЬ: я вижу, что вы смонтировали диск и увидели, что файлы были там. Проблемы с надежностью могут быть результатом плохой флешки. Попробуйте другой вариант и посмотрите, не исчезнут ли проблемы.

Дополнительная информация о ISO и файловых системах.

.Iso - это образ диска. Это та длинная цепочка единиц и нулей, которую вы получаете, если читаете CD/DVD/ и т.д. От начала до конца.

cat /dev/cdrom > myfile.iso

Если вы записываете .iso непосредственно на USB-накопитель, операционная система обрабатывает его как CD/DVD.

Теперь давайте посмотрим, что произойдет, если вы разделите USB-накопитель, создадите файловую систему на разделе и скопируете туда .iso как обычный файл.

mount /dev/sdx1 folder
cp file.iso folder/

Мы будем читать содержимое флешки

cat /dev/sdx > mysecondfile

Сейчас:

  • myfile.iso - это образ диска, содержащий файлы установщика, загрузчик и т. д.
  • mysecondfile - это образ диска, содержащий единственный файл myfile.iso .

И именно поэтому вы должны записать iso на флешку напрямую, а не сохранять ее в виде файла.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .