В таблице разделов 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, который не имеет этой проблемы?
Обходное решение
Вы можете корректировать размеры раздела своей карты с интерфейсом USB, если вместо того, чтобы использовать инструмент производителя USB для создания палки, Вы вместо этого создаете свою карту с интерфейсом USB с нуля с помощью только терминальные команды. Вот подробные инструкции, которые работают, если Ваша система использует BIOS:
, Как создать живую Карту памяти Ubuntu с персистентностью для BIOS с помощью только терминал
<час>Подсказки по Использованию для резервного копирования использования карты с интерфейсом USB: я сохраняю два идентичных USB палками резервной ОС, которые я использую для резервного копирования моей основной двойной загрузки Debian система W10. Я хочу, чтобы моя система не работала, когда я делаю резервное копирование. Я также хочу две идентичных палки, потому что иногда карта с интерфейсом USB изнашивается. Это позволяет мне легко делать новое только копией dd от остающейся хорошей палки до новой палки.
Они сохранили меня несколько раз, когда я получил свою систему, так поврежденную, что я не мог зафиксировать ее! И процедуры инкрементного резервного копирования и восстановления, которые я включаю в эту ссылку выше, довольно быстры также. Вы должны однако, делать полное резервное копирование время от времени, поскольку для Вашего тока, возрастающего возможно не работать, когда Вы хотите это, потому что системный дефект был записан в него, повредив его. Я теперь пытаюсь сделать полное резервное копирование еженедельно.
Файлы изображений Ubuntu .iso
используют формат Монстра Frankenstein, это разработано для поддержки нескольких методов начальной загрузки и устройств:
Для работы с таким количеством форматов и методов начальной загрузки, разработчики играют в игры со структурами данных. Эти изображения действительно нельзя рассматривать как "нормальные" образы дисков, и, в частности, Вы должны наиболее решительно НЕ попытка изменить изображения всегда, если Вы не эксперт верхнего уровня в этих структурах данных. FWIW, я записал GPT fdisk (gdisk
, cgdisk
, и sgdisk
) разделение инструмента, и я не буду делать попытку того, что Вы говорите, что пытаетесь!
Вместо этого если необходимо изменить носитель установки, необходимо сделать одну из двух вещей:
dd
- как копия содержания изображения к диску; вместо этого, они берут эти файлы из изображения и копируют их в традиционно фрагментированный диск с существующая ранее файловая система (или иногда тот, который инструмент создает). Результатом является более нормальный диск, который может быть изменен с нормальными редакторами таблицы разделов и другими утилитами. Из этих двух подходов, первым является, вероятно, лучший для того, что Вы хотите. На самом деле я вполне уверен, некоторые инструменты того вида предлагают опцию сделать точно, что Вы хотите. (Я не вспоминаю который предложение инструмента (инструментов) такая функция, все же.) Второй подход, более вероятно, будет полезен для задач как добавляющие пакеты к изображению пользовательской установки.
, Если Вы когда-либо смогли сделать этот вид вещи прежде, возможности, это изменяется, потому что разработчики нашли потребность сделать более чудовищный взлом структуры данных для работы вокруг проблем с конкретными системами. Например, если компьютеры X Бренда не могут проанализировать таблицу разделов Монстра Frankenstein, разработчики могли бы настроить ее так, чтобы она работала с Брендом X компьютеров, даже если это означает, что структура данных является еще более странной, чем это было прежде. Это - просто предположение с моей стороны, тем не менее, и я, конечно, не могу говорить со специфическими особенностями, которые Вы описали.