Я пытался установить Arch Linux. После установки отображается экран BIOS, после чего появляется сообщение «Загрузочное устройство не найдено».
Я повторил весь сценарий несколько раз, но он показывает то же сообщение ...
При установке я следовал неофициальному руководству для начинающих из ArchLinux wiki.
Вот что я сделал:
Прежде всего, я стер с жесткого диска (на котором до очистки была установлена Windows Vista) и установил на него GPT с помощью gdisk. Затем я установил несколько разделов, которые теперь выглядят следующим образом (вывод parted):
Model: ATA ST9160310AS (scsi)
Disk /dev/sda: 160GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 2097kB 1049kB BIOS boot partition bios_grub
2 2097kB 107MB 105MB ext2 Linux filesystem
3 107MB 21.6GB 21.5GB ext4 Linux filesystem
4 21.6GB 30.2GB 8590MB linux-swap(v1) Linux swap
5 30.2GB 160GB 130GB ext4 Linux filesystem
Затем я смонтировал корневой раздел (sda2) в / mnt, после этого также загрузочный и домашний раздел (sda3 и sda5) в / mnt / boot и / mnt / home, а в конце отформатировал и активировал раздел подкачки (sda4) ,
Теперь я начал установку базовой системы. После выбора зеркал я установил base и base-devel.
В конце установки я сгенерировал fstab.
Затем я наконец-то подключился к / mnt, настроил несколько Locales, установил пароль root, а затем установил и настроил Grub2, в точности так, как описано здесь .
В конце я вышел из среды chroot, размонтировал разделы и перезагрузился. Вы знаете все остальное ... Он только что показал сообщение, что не может найти никаких загрузочных устройств.
Кстати, я пытался установить его на этот компьютер.
dd if=/dev/sda bs=1 skip=510 count=2 2>&- | hexdump
(или xxd вместо hexdump) равен 55aa? Если не MBR это плохо.0000000 aa55 0000002
если MBR плохой, как вы говорите, могу ли я что-нибудь сделать, чтобы он снова стал хорошим?aa55
- это правильная подпись MBR (55aa
в системе с прямым порядком байтов).Ответы:
У меня возникла та же проблема, и, выполнив поиск, я обнаружил, что uuid root / partition неправильно в grub.cfg, вы можете попробовать это:
mount /dev/sdxx /mnt
(sdxx - ваш корневой раздел)arch-chroot /mnt
grub-mkconfig -o /boot/grub/grub.cfg
grub-install
Конец.
источник
grub-install
: там сказано, что загрузочный раздел Bios не будет включен/dev/sda
, хотя на самом деле он есть.ХОРОШО. Стало немного долго комментировать. Это не связано напрямую, но только для объяснения
aa55
комментария.Когда Basic Input / Output System начинает (BIOS) она делает Power-On Self Test (POST), проверка аппаратных средств и т.д. Тогда это выглядит для устройств , которые одновременно являются загрузочным и активным по заказу заданной CMOS (Ваша конфигурация в BIOS - что в свою очередь дается Дополнительный металл-оксид-полупроводник ). Когда он находит диск
0xaa55
со смещением 510, он загружает эту часть диска (сектор 1) в память и оставляет ему управление по адресу 0x00000 этого кода. Эти 512 байтов являются основной загрузочной записью (MBR).Этот код, в данном случае « GRUB-boot» , дополнительно проверяет различные байты этих 512, чтобы запросить у BIOS различную информацию. В этом процессе он определяет, на каком диске находится GRUB, и загружает этот раздел диска в память - тогда эта часть кода получает контроль. Это монтирует ядро и т. Д. И оставляет контроль над этим.
Используя GPT, образ GRUB, загружаемый из MBR, находится в
bios_grub
разделе, который у вас есть, и он достаточно большой, и т. Д., Поэтому вы не видите, как это может быть неправильно.На «Загрузочное устройство не найдено». сообщение из BIOS - может случиться так, что MBR загрузочного диска поврежден, если MBR заканчивается,
0xaa55
а MBR поврежден, обычно возникает другая ошибка - или система просто зависает.Так или иначе. Это странно Я заметил, что у вас нет раздела, помеченного как «загрузочный» . Используя GPT, это правильно, но, хотя это запрещено, вы можете попробовать пометить один, например,
sda5
как загрузочный.В gparted:(узнал, что (g) расстался и измените GPT, который не хотите) fdisk:Возможно, ваш BIOS делает больше, чем следует, и проверяет таблицу разделов в MBR.
РЕДАКТИРОВАТЬ - Обновить, чтобы комментировать:
AFAIK, не имеет значения, какой из них вы установили, поскольку он на самом деле не используется. Скорее всего, для тех, кто никогда не скажет «загрузочное устройство найдено» , они будут удовлетворены. В
sda1
традиционном смысле это не загрузочный раздел, а место для загрузочных файлов GRUB.В традиционной схеме разделов (не GPT) у вас обычно есть что-то вроде:
Это будет означать 3 раздела. Все до смещения 0x400 на жестком диске в необработанных байтах - как не в любом разделе и т.д.
Здесь загрузочным разделом является Раздел 2, который является системным разделом с Linux.
Файлы GRUB модуля 1 находятся сразу после MBR и перед первым разделом. Он может находиться где угодно, но обычно на одном диске со смещением 512 MBR-диска.
Также в системе GPT - GPT использует этот раздел диска для себя, поэтому необходимо переместить эти файлы GRUB в другое место. Для этого и
bios_grub
нужно хранитьcore.img
GRUB 2.«Набор загрузочный флаг» является лишь выстрел в темноте, - и был бы удивлен , если он работает. Но у кого-то есть начало.
EDIT2:
Что делать, если вы делаете это:
Резервное копирование текущей MBR:
Создайте изображение
Code TEST
снизу, сохраните в файлtest.s
:Скопируйте
test.img
файл в MBR:ботинок
Код ТЕСТ:
Для восстановления MBR выполните:
Это должно просто напечатать "Привет!" на экран, если MBR был загружен, затем остановите. Протестировал его, запустив под управлением qemu-system-x86_64, qemu-system-i386, VirtualBox, стационарные ПК Intel 32 и 64 бит.
источник
sda5
качестве загрузочного раздела. Неsda1
лучше ли установить загрузочный раздел, так как он здесь только для этого?Я могу ошибаться и не поступил правильно, но сначала у меня была та же проблема, что и у вас. Через некоторое время я нашел здесь это
GRUB has to have a 512MB EFI partition, with a vfat filesystem
. Это в случае, если вы устанавливаете свою систему как EFI:Это означает, что вы должны предвидеть этот факт при создании ваших разделов. При этом (например, с помощью cfdisk) вам нужно установить / dev / sdX1 как EFI, а затем отформатировать его в файловую систему FAT32 (с помощью команды
mkfs.vfat -F32 /dev/sdX1
во время процесса установки). Только тогда личинка будет признана.Я предполагаю, что Syslinux может работать с вашим разделом ext2, хотя, если вы хотите попробовать это.
Если вы не устанавливаете Arch как EFI, вы, вероятно, сможете проверить вики. Я не могу помочь в этом деле.
Я знаю, что этот пост старый, но это на тот случай, если кто-то придет сюда и надеется найти решение.
источник
512MB (at least)
, это было наоборот ...