Ich habe versucht, Arch Linux zu installieren. Nach der Installation wird der BIOS-Bildschirm angezeigt. Danach wird die Meldung "Kein bootfähiges Gerät gefunden" angezeigt.
Ich habe das ganze Szenario jetzt einige Male wiederholt, trotzdem zeigt es nur die gleiche Meldung ...
Bei der Installation habe ich den inoffiziellen Anfängerleitfaden aus dem ArchLinux-Wiki befolgt.
Folgendes habe ich getan:
Zuerst habe ich die Festplatte gelöscht (auf der vor dem Löschen Windows Vista installiert war) und GPT mithilfe von gdisk darauf gelegt. Dann habe ich einige Partitionen eingerichtet, die nun wie folgt aussehen (Ausgabe von 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
Dann habe ich die Root-Partition (sda2) auf / mnt gemountet, danach auch den Boot und die Home-Partition (sda3 und sda5) auf / mnt / boot und / mnt / home und am Ende die Swap-Partition (sda4) formatiert und aktiviert. .
Jetzt begann ich das Basissystem zu installieren. Nachdem ich die Spiegel ausgewählt hatte, installierte ich base und base-devel.
Am Ende der Installation habe ich eine fstab generiert.
Dann habe ich endlich in / mnt chrooted, einige Locales, stellen Sie ein Root - Passwort einrichten und dann installiert und konfiguriert Grub2, genau so , wie es erklärt hier .
Am Ende habe ich die Chroot-Umgebung verlassen, die Partitionen ausgehängt und neu gestartet. Sie kennen den Rest ... Es wurde nur die Meldung angezeigt, dass keine bootfähigen Geräte gefunden werden konnten.
Ich habe übrigens versucht, es auf diesem Computer zu installieren .
dd if=/dev/sda bs=1 skip=510 count=2 2>&- | hexdump
(oder xxd anstelle von hexdump) gleich 55aa? Wenn nicht, ist der MBR schlecht.0000000 aa55 0000002
Wenn der MBR schlecht ist, wie Sie sagen, kann ich etwas tun, um ihn wieder gut zu machen?aa55
ist die korrekte MBR-Signatur (55aa
auf dem Little-Endian-System).Antworten:
Ich hatte das gleiche Problem und bei der Suche stellte ich fest, dass die UUID von root / partition in grub.cfg falsch ist. Sie können dies versuchen:
mount /dev/sdxx /mnt
(sdxx ist Ihre Root-Partition)arch-chroot /mnt
grub-mkconfig -o /boot/grub/grub.cfg
grub-install
Fertig.
quelle
grub-install
festgestellt: Es wurde angegeben, dass keine Bios-Boot-Partition aktiviert ist/dev/sda
, während es tatsächlich eine gibt.OK. Wurde ein bisschen lang für einen Kommentar. Dies steht nicht in direktem Zusammenhang, sondern nur zur Erläuterung des
aa55
Kommentars.Wenn das Basic Input / Output System (BIOS) startet funktioniert es ein Power-On Self Test (POST), prüft die Hardware usw. Dann sieht es für Geräte , die sowohl bootfähig und aktiv im Auftrag von CMOS (Ihre Konfiguration im BIOS gegeben sind - das wiederum ist gegeben durch einen komplementären Metalloxidhalbleiter ). Wenn eine Festplatte
0xaa55
mit dem Offset 510 gefunden wird, lädt sie diesen Abschnitt der Festplatte (Sektor 1) in den Speicher und überlässt ihm die Steuerung unter der Adresse 0x00000 dieses Codes. Diese 512 Bytes sind der Master Boot Record (MBR).Dieser Code, in diesem Fall " GRUB - boot" , überprüft verschiedene Bytes dieser 512 und fragt das BIOS nach verschiedenen Informationen. In diesem Prozess wird ermittelt, auf welcher Festplatte der Rest von GRUB vorhanden ist, und dieser Abschnitt der Festplatte wird in den Speicher geladen. Anschließend erhält dieser Teil des Codes die Kontrolle. Dieser montiert Kernel usw. und überlässt die Kontrolle dem.
Bei Verwendung von GPT befindet sich das Image, das GRUB aus dem MBR lädt, in der
bios_grub
Partition, die Sie haben und die groß genug ist usw. Sie können also nicht erkennen, wie das falsch sein könnte.Ein "Kein bootfähiges Gerät gefunden." Nachricht vom BIOS - es kann vorkommen, dass der MBR der Bootdiskette beschädigt ist, wenn der MBR endet
0xaa55
und der MBR beschädigt ist, wird normalerweise ein anderer Fehler angezeigt - oder das System hängt einfach.Jedenfalls. Das ist komisch. Ich stelle fest, dass Sie keine Partition als "boot" markiert haben . Verwenden Sie GPT, das korrekt ist - aber obwohl es verboten ist, können Sie versuchen, eine zu markieren, z
sda5
. B. als Boot.In gparted:(erfuhr, dass (g) auch GPT geändert hat, die nicht wollen) fdisk:Es kann sein, dass Ihr BIOS mehr tut als es sollte und die Partitionstabelle in MBR überprüft.
BEARBEITEN - Update zum Kommentar:
AFAIK spielt keine Rolle, welches Sie einstellen, da es nicht tatsächlich verwendet wird. Punkt ist, für wen jemals gesagt wird, dass kein "bootfähiges Gerät gefunden" wurde , werden sie zufrieden sein. Dies
sda1
ist keine Boot-Partition im herkömmlichen Sinne, sondern Speicherplatz für GRUB-Boot-Dateien.In einem herkömmlichen Partitionslayout (nicht GPT) haben Sie normalerweise Folgendes:
Das würde 3 Partitionen bedeuten. Alles , bevor ich 0x400 auf dem HDD - Offset rohes Bytes - wie in nicht Teil einer Partition usw.
Hier ist die Boot- Partition Partition 2 , eine Systempartition mit Linux.
Die Dateien des GRUB-Moduls 1 befinden sich direkt nach dem MBR und vor der ersten Partition. Es kann sich überall befinden, normalerweise jedoch auf derselben Festplatte und mit einem Versatz von 512 MBR-Festplatten.
Auch auf einem GPT-System - GPT verwendet diesen Abschnitt der Festplatte für sich selbst, daher müssen diese GRUB-Dateien an einen anderen Speicherort verschoben werden. Dafür ist das gedacht
bios_grub
-core.img
für GRUB 2 zu speichern .Das "Set Boot Flag" ist nur ein Schuss in die Dunkelheit - und wäre überrascht, wenn es funktioniert. Aber irgendwo hat man angefangen.
EDIT2:
Was ist, wenn Sie dies tun:
Aktuellen MBR sichern:
Erstellen Sie ein Bild von
Code TEST
unten, das in der Datei gespeichert isttest.s
von:Kopieren Sie die
test.img
Datei in MBR:Stiefel
Code TEST:
So stellen Sie MBR wieder her:
Dies sollte einfach "Hallo!" auf den Bildschirm, wenn der MBR geladen wurde, dann stoppen. Getestet unter qemu-system-x86_64, qemu-system-i386, VirtualBox, stationärem Intel PC 32 und 64-Bit.
quelle
sda5
als Boot-Partition festlegen sollte ? Ist es nichtsda1
eine bessere Option, als Boot-Partition festzulegen, da es nur dafür ist?Ich kann mich irren und habe nicht das Richtige getan, aber ich hatte zuerst das gleiche Problem wie Sie. Nach einer Weile habe ich gefunden hier , dass
GRUB has to have a 512MB EFI partition, with a vfat filesystem
. Dies ist für den Fall, dass Sie Ihr System als EFI installieren:Dies bedeutet, dass Sie diese Tatsache beim Erstellen Ihrer Partitionen berücksichtigen müssen. Während Sie dies tun (z. B. mit cfdisk), müssen Sie Ihr / dev / sdX1 als EFI festlegen und es dann in ein FAT32-Dateisystem formatieren (mit dem Befehl
mkfs.vfat -F32 /dev/sdX1
während des Installationsvorgangs). Nur dann wird Maden erkannt.Ich gehe davon aus, dass Syslinux mit Ihrer ext2-Partition arbeiten kann, wenn Sie es versuchen möchten.
Wenn Sie Arch nicht als EFI installieren, können Sie wahrscheinlich das Wiki überprüfen. In diesem Fall kann ich nicht weiter helfen.
Ich weiß, dass dieser Beitrag alt ist, aber dies ist für den Fall, dass jemand hierher kommt und hofft, eine Lösung zu finden.
quelle
512MB (at least)
, es war umgekehrt ...