
Я пытаюсь изучить и особенно понять, как работают разделы и загрузчики. Проблема в том, что я все перепутал в своей голове. В итоге я больше ничего не понимаю.
Я знаю, как разбить жесткий диск на разделы с помощью fdisk
, parted
, gdisk
. Я пробовал последовательно загружать файлы iso (например, ubuntu.iso, arch.iso) с помощью syslinux.
Чтобы проиллюстрировать свое замешательство, вот что я сделал: создал раздел Linux:
$ gdisk /dev/sdb
Command (? for help): n
Partition number (1-128, default 1):
First sector (34-7821278, default = 36) or {+-}size{KMGTP}:
Last sector (36-7821278, default = 7821278) or {+-}size{KMGTP}:
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300):
Changed type of partition to 'Linux filesystem'
Command (? for help): p
Disk /dev/sdb: 7821312 sectors, 3.7 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): F7F2BE49-B8D8-4910-8E69-381DEBD954DC
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 7821278
Partitions will be aligned on 4-sector boundaries
Total free space is 2 sectors (1024 bytes)
Number Start (sector) End (sector) Size Code Name
1 36 7821278 3.7 GiB 8300 Linux filesystem
Command (? for help): w
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!
Do you want to proceed? (Y/N): Y
OK; writing new GUID partition table (GPT) to /dev/sdb.
The operation has completed successfully.
Затем я отформатировал этот раздел как ext2:
$ mkfs.ext2 /dev/sdb1
Теперь я хочу установить MBR с syslinux (взято из немногих руководств, которые я нашел)
$ syslinux -m /dev/sdb1
syslinux: invalid media signature (not a FAT filesystem?)
Так что это должен быть раздел FAT. Однако я читал, что syslinux поддерживает файлы Fat32, ext2, ext3, ext4 (https://wiki.archlinux.org/index.php/syslinux#Установка)
1) Что здесь не так, ведь syslinux должен поддерживать разделы ext2?
Поэтому я отформатировал раздел как раздел Fat32:
$ mkfs.vfat -F 32 /dev/sdb1
Теперь установка syslinux MBR работает:
$ syslinux -m /dev/sdb1
$ syslinux -i /dev/sdb1
2) Нужно ли мне устанавливать MBR, разве syslinux не совместим с GPT? Я читал в документации, что GPT
имеет больше преимуществ по сравнению с MBR
, например, позволяет создавать гораздо больше основных разделов. Я неправильно понял?
Затем я обнаружил, что мне нужно пометить раздел как загрузочный (http://www.linuxquestions.org/questions/linux-general-1/booting-iso-images-from-a-usb-disk-917161/). Могу ли я сделать это с gdisk
? Мне кажется, это невозможно, так как в руководстве не говорится о флагах загрузки. С другой стороны, fdisk
позволяет мне это сделать. Однако вот еще одна проблема:
$ fdisk /dev/sdb
WARNING: GPT (GUID Partition Table) detected on '/dev/sdb'! The util fdisk doesn't support GPT. Use GNU Parted.
3) Создает ли gdisk автоматически GPT?
$ gdisk /dev/sdb
GPT fdisk (gdisk) version 0.8.8
Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: present
4) Откуда взялся этот MBR? Как MBR и GPT могут так сосуществовать?
Как видите, как только я попытался сделать более глубокие манипуляции с разделами, я понял, что все перепутано. Я был бы искренне признателен, если бы вы ответили на мои вопросы и особенно предоставили мне дополнительную документацию:https://wiki.archlinux.orgиhttp://www.syslinux.org/wikiна самом деле сделал мое понимание хуже, чем когда-либо. Большое спасибо.
решение1
1) Что здесь не так, ведь syslinux должен поддерживать разделы ext2?
Да, Syslinux поддерживает ext2 fs через Extlinux. Если вы используете систему на базе UEFI/EFI, то вам нужен раздел fat32. Для GPT вам не нужен раздел fat32, просто используйте традиционный. т. е. ext?
2) Нужно ли мне устанавливать MBR, разве syslinux не совместим с GPT? Я читал в документации, что GPT имеет больше преимуществ перед MBR, например, позволяет создавать гораздо больше первичных разделов. Я неправильно понял?
Что именно вы хотите использовать, решать вам, поддерживаются обе таблицы разделов: msdos и gpt.
В случае GPT вы можете использовать gdisk для установки флага загрузки legacy bios. Необходимо иметь флаг загрузки legacy bios на загрузочном разделе. После входа в меню gdisk используйте 'x' для перехода в экспертный режим, а затем используйте 'a' для установки атрибутов.
3) Создает ли gdisk автоматически GPT?
Да, посетитьhttp://linux.die.net/man/8/gdisk
Для получения инструкций посетитеhttp://wiki.gentoo.org/wiki/Syslinux
решение2
Я думаю, что проблема/путаница здесь в терминологии, сначала говорится «установка MBR», а затем «почему MBR вместе с GPT». MBR — это то, что необходимо для работы диска, GPT — это схема разбиения на разделы, которая существует (создается) за пределами MBR. Программное обеспечение для разбиения на разделы, такое как gparted, представляет вам MBR и GPT как две взаимоисключающие вещи. GPT или отсутствие GPT было бы точнее. Есть и другие системы, которые используют другие схемы, нежели GPT, по-прежнему определенные в MBR диска. Поэтому, чтобы лучше понять это в обеих схемах разбиения на разделы, первый сектор 0-1 всегда является MBR, определение GPT начинается после него. То, что мы называем разбиением на разделы MBR и расширенным разбиением на разделы, — это то, что не требует различия для расширенного, оно допускает столько частей, сколько они могут поместиться по минимальному размеру раздела и размеру диска).
Вы не устанавливаете MBR, он существует по умолчанию, и лучше бы он был там, иначе ваш диск будет мусором. Вы устанавливаете вещи в MBR, например, core.img grub или эквивалент syslinux, который является программным обеспечением, помогающим вам перейти к следующему шагу. Маленькая операционная система, помогающая вам «перезагрузиться» в определенную другую систему. Определение GPT существует в MBR для работы схемы GPT.
Это те операционные системы *.img, которые предлагают вам сделать что-то вручную, если /boot/grub или /boot/syslinux стерты или еще не созданы. Если вы будете возиться с установками достаточно долго, однажды вы увидите это. GRUB> попробуйте help в этот момент. Способ, которым это помогает мне понять, заключается в том, что эта операционная система загрузчика создает это меню или приглашение, и там вы указываете перезагрузить grub/syslinux в определенную целевую операционную систему. Если бы не перезагрузка, то загрузчик был бы процессом 1 PID1.
Часть того, что я говорю, может быть не на 100% точной, но я думаю, что для 96,4% пользователей Linux это помогает перейти к тому, что они хотят делать. Разработчикам загрузчиков и тем, кто работает над программным обеспечением для резервного копирования, копирования, сжатия образов дисков и т. д., понадобятся более точные детали. Если поискать, то можно найти часовые лекции о проблемах и динамике этой первой маленькой ячейки диска и о том, что должно быть там, чтобы все остальное существовало. Наши системы висят на этой нити очень конфиденциальной информации. Это как ваша карта в лабиринте, иначе вы просто закуска для Минотавра.