Я следовал руководству по установке Arch Linux и разделил свой жесткий диск с помощью fdisk . Я выбрал тип дисковой метки dos и создал три раздела. Один из этих разделов я пометил как загрузочный. Затем я продолжил и завершил всю установку в этом разделе без ошибок. Но теперь, когда я хочу загрузиться с этого раздела, BIOS даже не перечислит раздел как опцию. Кроме того, если я загружаюсь с установочного USB-накопителя, мне не предлагают "загрузить существующую ОС" вопреки моим ожиданиям.

Что здесь может быть не так?

1 ответ1

2

Короткий ответ:

Вы забыли установить загрузчик. В зависимости от того, какое руководство вы читаете, в нем должны быть инструкции для GRUB2 или Syslinux. (Так как он сказал вам установить флаг «загрузочный», я предполагаю, что это последний.)

Снова перезагрузитесь в USB-накопитель, смонтируйте разделы, которые вы сделали, чтобы вы могли в них выполнить arch-chroot , и следуйте инструкциям для Syslinux или GRUB2 , в зависимости от того, что вы предпочитаете.

(Обратите внимание, что после установки любого из них вам все равно нужно создать grub.cfg используя grub-mkconfig , или отредактировать syslinux.cfg вручную.)


Длинный ответ:

Во-первых, обычный BIOS вообще не загружает разделы. Он не понимает операционные системы, таблицы разделов и флаги «загрузки» - это задача любого загрузчика, установленного в загрузочном секторе диска (MBR). Другими словами, BIOS только загружает указанный диск , выполняя код из MBR, и тогда ваш загрузчик вступает во владение.

Если диск был ранее пуст, на нем вообще не будет загрузочного кода MBR. Вы можете установить, например, загрузочный код Syslinux MBR - который понимает таблицу разделов MBR, следует за флагом «загрузочного» и пытается запустить собственный загрузочный код раздела.

Но вы, вероятно, также не установили загрузочный код в раздел. Так что, хотя в разделе есть файловая система со всеми файлами, необходимыми для Linux - ядро и все остальное - все еще нет ничего, что знает, как найти и запустить этот файл ядра. Одной лишь установки флага «загрузочный» недостаточно для того, чтобы фактически сделать его загрузочным, это равносильно установке дорожных знаков без дороги.

(Как примечание, загрузочный код MBR вообще не должен заботиться о флаге «загрузочный»). Например, более популярный загрузчик GRUB не нуждается в нем, потому что его загрузочный код MBR уже напрямую встраивает правильный номер раздела.)

Чтобы установить все необходимое для перехода от BIOS к ядру Linux, необходимо выполнить процедуру полной загрузки загрузчика для GRUB или Syslinux.

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