В Ubuntu MBR ISO, почему раздел GPT перекрывает раздел начальной загрузки и делает MBR недоступным для редактирования?

Вопрос и контекст:

В таблице разделов MBR дистрибутивов как, например, ubuntu-16.04-desktop-amd64.iso, почему раздел GPT, кажется, перекрывает основной раздел начальной загрузки? Это, кажется, генерирует ошибки, если я пытаюсь, всегда, отредактировать таблицу разделов.

Я хочу отредактировать MBR для добавления персистентности USB (как описано в другом месте), и должен добавить раздел или увеличить раздел начальной загрузки.

Я полагаю, что это раньше работало, но перекрытый раздел № 2 GPT в этом и подобных дистрибутивах, кажется, плохо путает fdisk, sfdisk, разделенный, gparted, и partprobe.

Моей машиной является MBR и не BIOS GPT.

Что я пропускаю?


Вот таблица разделов MBR дистрибутива (непосредственно из файла ISO):

cat ubuntu-16.04-desktop-amd64.iso | xxd | head -32 | tail -5

дает:

00001b0: 28db 2b00 0000 0000 708e 0e0e 0000 8000  (.+.....p.......
00001c0: 0100 0058 e0fa 0000 0000 6048 2c00 00fe  ...X......`H,...
00001d0: ffff effe ffff 4411 2c00 8012 0000 0000  ......D.,.......
00001e0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00001f0: 0000 0000 0000 0000 0000 0000 0000 55aa  ..............U.

(Для декодирования этого, см. https://en.wikipedia.org/wiki/Master_boot_record.)

  • Таблица запускается в адресе 01be, где Вы видите "80" для № 1 основной раздел начальной загрузки.

  • Затем заметьте "ef" в адресе 01d2, который обозначает основной раздел № 2, как являющийся type=GPT.


Вот разбивка таблицы разделом (прямой порядок байтов):

partition#1 (normal MBR):
  80        = 'boot' partition flag
  00 01 00  = starting HSC (head, sector, cylindar)
  00        =  partition type ("Empty partition entry")
  58 e0 fa  = last     HSC (head, sector, cylindar)

  0000 0000 = LBA (logical block address) of first absolute sector in the 
  6048 2c00 = number of sectors in partition

partition #2 (GPT):
  00        = non-boot partition
  fe ff ff  = starting HSC (head, sector, cylindar)
  ef        = partition type ("EFI system partition")
  fe ff ff  = last HSC

  4411 2c00 = LBA (logical block adr) of first abs sector in part.
  8012 0000 = number of sectors in partition

Попытки отредактировать таблицу разделов:

  • fdisk отчеты, что эти разделы накладываются. Отметьте, как начало sdb2 [2927216] в sdb1 [0-2955679] от

    sudo fdisk -l /dev/sdb
    

    дает:

      Disk /dev/sdb: 14.5 GiB, 15527313408 bytes, 30326784 sectors
      Units: sectors of 1 * 512 = 512 bytes
      Sector size (logical/physical): 512 bytes / 512 bytes
      I/O size (minimum/optimal): 512 bytes / 512 bytes
      Disklabel type: dos
      Disk identifier: 0x40a863e7
    
      Device     Boot   Start     End Sectors  Size Id Type
      /dev/sdb1  *          0 2955679 2955680  1.4G  0 Empty
      /dev/sdb2       2927216 2931951    4736  2.3M ef EFI (FAT-12/16/32)
    
  • Из того, что я читал, нормально иметь раздел GPT, но не для разделов для наложения.

  • Когда я пробую к dd ISO к палке usb, проблема начинается. Палка загружает Ubuntu, живую хорошо, но я не могу отредактировать таблицу разделов без ошибок (это - то, в то время как не загруженный и не смонтированный), неважно, какого редактора раздела я пробую.

  • Кроме того, я не могу даже удалить таблицу разделов и возвратить карту с интерфейсом USB нормальному без выполняющей длинной процедуры:

    dd if=/dev/zero of=/dev/sdb bs=[something like 512 or 2048; doesn't matter] count=[some large number like 100000^]
    

    Числа ^Smaller, не всегда кажется, фиксируют это. Я подозреваю, что необходимо не только вытереть основные блоки фс, но вторичные также.

    и затем используйте fdisk сделать новую таблицу разделов MS-DOS на палке.

    Отметьте, если я не делаю dd выше для стирания прежде, чем создать новую таблицу разделов, я получаю следующее сообщение об ошибке или подобный, когда я пытаюсь отредактировать карту раздела (или от debian8 или от человечности 16):

    Libparted Warning The driver descriptor says the physical block size
    is 2048 bytes, but Linux says it is 512 bytes.
    
  • Также от человечности 12, я получаю это самое поучительное сообщение:

    gparted -l /dev/sdb:  libparted : 2.3 Could not stat device -l -- No
    such file or directory. /dev/sdb contains GPT signatures, indicating
    that it has a GPT table.  However, it does not have a valid fake msdos
    partition table, as it should.  Perhaps it was corrupted -- possibly
    by a program that doesn't understand GPT partition tables.  Or perhaps
    you deleted the GPT table, and are now using an msdos partition table.
    Is this a GPT partition table?  Both the primary and backup GPT tables
    are corrupt.  Try making a fresh table, and using Parted's rescue
    feature to recover partitions.
    

Таким образом, как я редактирую MBR дистрибутива?

BTW, я НЕ спрашиваю, как зафиксировать перекрытие, поскольку это - способ, которым дистрибутив на самом деле, и от взглядов его, был в течение некоторого времени, (я также посмотрел на Ub-v16, 14 и 12), скорее я надеюсь выяснять, как отредактировать его, если это возможно.

Идеи:

  • Это могло быть вызвано слишком многими приложениями изогибрида (раньше добавлял MBR MS-DOS к CD-ROM 9 660 ISO, таким образом, это может загрузиться на USB)?

  • Существует ли другой, возможно более новый редактор таблицы разделов для использования?

  • Существует ли другое, возможно, более старое, дистрибутив Ubuntu, который не имеет этой проблемы?

5
задан 25 October 2016 в 10:40

2 ответа

Обходное решение

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

, Как создать живую Карту памяти Ubuntu с персистентностью для BIOS с помощью только терминал

<час>

Подсказки по Использованию для резервного копирования использования карты с интерфейсом USB: я сохраняю два идентичных USB палками резервной ОС, которые я использую для резервного копирования моей основной двойной загрузки Debian система W10. Я хочу, чтобы моя система не работала, когда я делаю резервное копирование. Я также хочу две идентичных палки, потому что иногда карта с интерфейсом USB изнашивается. Это позволяет мне легко делать новое только копией dd от остающейся хорошей палки до новой палки.

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

1
ответ дан 23 November 2019 в 08:54

Файлы изображений Ubuntu .iso используют формат Монстра Frankenstein, это разработано для поддержки нескольких методов начальной загрузки и устройств:

  • Загрузочный носитель
    • Запись изображения к DVD для начальной загрузки использования ISO 9660 и El Torito
    • Копирование изображения "сырые данные" к карте флэш-памяти с интерфейсом USB или подобным медиа для начальной загрузки использующих стандартных систем разбиения дисков на разделы
  • режим BIOS Режима начальной загрузки
    • , загружающийся
    • режим EFI, загружающийся

Для работы с таким количеством форматов и методов начальной загрузки, разработчики играют в игры со структурами данных. Эти изображения действительно нельзя рассматривать как "нормальные" образы дисков, и, в частности, Вы должны наиболее решительно НЕ попытка изменить изображения всегда, если Вы не эксперт верхнего уровня в этих структурах данных. FWIW, я записал GPT fdisk (gdisk, cgdisk, и sgdisk) разделение инструмента, и я не буду делать попытку того, что Вы говорите, что пытаетесь!

Вместо этого если необходимо изменить носитель установки, необходимо сделать одну из двух вещей:

  • Использование инструмент как Rufus, Перьевой Linux Диска, или UNetbootin для записи файла изображения в карту флэш-памяти с интерфейсом USB, затем изменяют карту флэш-памяти с интерфейсом USB. Причина это работает, состоит в том, что эти инструменты не делают простого dd - как копия содержания изображения к диску; вместо этого, они берут эти файлы из изображения и копируют их в традиционно фрагментированный диск с существующая ранее файловая система (или иногда тот, который инструмент создает). Результатом является более нормальный диск, который может быть изменен с нормальными редакторами таблицы разделов и другими утилитами.
  • Готовят Ваше собственное изображение. У меня нет указателей на документацию относительно того, как сделать, это, но изображения Ubuntu, конечно, создается автоматизированными инструментами, не редактирующими руку таблицами разделов с Hex-редакторами. Если Вы разыскиваете инструменты, и сценарии раньше создавали изображения, Вы можете создавать изображение, это изменяется способом, Вы хотели бы. Этот подход используется людьми, которые создают "вращения" Ubuntu, таким образом, Вы могли бы хотеть запуститься путем поиска документации относительно того, как сделать это.

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

, Если Вы когда-либо смогли сделать этот вид вещи прежде, возможности, это изменяется, потому что разработчики нашли потребность сделать более чудовищный взлом структуры данных для работы вокруг проблем с конкретными системами. Например, если компьютеры X Бренда не могут проанализировать таблицу разделов Монстра Frankenstein, разработчики могли бы настроить ее так, чтобы она работала с Брендом X компьютеров, даже если это означает, что структура данных является еще более странной, чем это было прежде. Это - просто предположение с моей стороны, тем не менее, и я, конечно, не могу говорить со специфическими особенностями, которые Вы описали.

8
ответ дан 23 November 2019 в 08:54

Другие вопросы по тегам:

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