Derzeit habe ich die gesamte Festplatte /dev/sda
als ext4 formatiert und Gentoo installiert.
(Es gibt keinen MBR, überhaupt keine Partition.)
Aber schließlich kann ich GRUB nicht darauf installieren, da GRUB anscheinend an MBR schreiben muss.
# grub-install /dev/sda
Unknown partition table signature
Unknown partition table signature
Unknown partition table signature
Unknown partition table signature
Unknown partition table signature
The file /boot/grub/stage1 not read correctly.
auch nicht grub
arbeiten,
# grub
grub> root (hd0)
Filesystem type unknown, using whole disk
grub> setup (hd0)
Error 17: Cannot mount selected partition
Wie kann ich GRUB ohne MBR in / dev / sda installieren?
PS Das /boot
Verzeichnis und die grub.conf
Dateien:
# tree /boot
/boot
|-- boot -> .
|-- grub
| |-- default
| |-- device.map
| |-- e2fs_stage1_5
| |-- fat_stage1_5
| |-- ffs_stage1_5
| |-- grub.conf
| |-- iso9660_stage1_5
| |-- jfs_stage1_5
| |-- menu.lst -> grub.conf
| |-- minix_stage1_5
| |-- reiserfs_stage1_5
| |-- splash.xpm.gz
| |-- stage1
| |-- stage2
| |-- stage2_eltorito
| |-- ufs2_stage1_5
| |-- vstafs_stage1_5
| `-- xfs_stage1_5
`-- kernel-2.6.36-gentoo-r5
# cat /boot/grub/grub.conf
default 0
timeout 30
splashimage=(hd0)/boot/grub/splash.xpm.gz
title Gentoo Linux 2.6.36-r5
root (hd0)
kernel /boot/kernel-2.6.36-gentoo-r5 root=/dev/sda
title Gentoo Linux 2.6.36-r5 Rescue
kernel /boot/kernel-2.6.36-gentoo-r5 root=/dev/sda init=/bin/bb
# cat /boot/grub/devices
(fd0) /dev/fd0
(hd0) /dev/sda
boot
grub-legacy
Xiè Jìléi
quelle
quelle
grub-install /dev/sda
?Antworten:
Das BIOS liest den ersten Sektor (512 Byte) der Festplatte und verzweigt in diesen Sektor. Wenn Ihre Festplatte Partitionen im PC-Stil enthält, enthält der erste Sektor auch die Partitionstabelle. Wenn Ihre Festplatte ein einzelnes Dateisystem enthält, enthält der erste Sektor alles, was das Dateisystem dort ablegen möchte. Im Fall von ext [234] (und vielen anderen Dateisystemen) ist der erste Sektor¹ für den Bootloader reserviert (und wird anfänglich auf Null gesetzt). Du kannst Grub auf installieren
/dev/sda
.Abgesehen davon gibt es gelegentlich BIOS, die sich weigern, von einem Gerät zu starten, das keine Partitionstabelle enthält. (Es gibt aber auch BIOS, die sich weigern, von einigen externen Geräten zu booten, wenn sie eine Partitionstabelle enthalten!) Wenn Sie eines dieser BIOS haben, müssen Sie eine Partitionstabelle erstellen.
Auch wenn eine Partitionstabelle nicht erforderlich ist, wird sie empfohlen. Sie verschwenden nur ein paar Kilobyte und erhalten Lesbarkeit unter vielen Nicht-Linux-Betriebssystemen und weniger Überraschung für jeden Co-Sysadmin. Wenn Sie Ihre Festplatte versehentlich an einen Computer anschließen, auf dem Windows ausgeführt wird, empfiehlt es sich möglicherweise, die Festplatte neu zu formatieren, wenn keine Partitionstabelle angezeigt wird. Es wird jedoch nur beanstandet, dass die Daten nicht gelesen werden können, wenn eine Partitionstabelle mit angezeigt wird Ein Partitionstyp, den es nicht erkennt.
¹ In der Tat, der erste Block, denke ich, wo ein Block 1kB, 2kB oder 4kB ist, abhängig von den übergebenen Optionen
mkfs
.quelle
image.ext4
. Der Grund, warum ich die gesamte Festplatte für ein Dateisystem verwende, ist, dass ich das Volume direkt im Host-Betriebssystem einbinden möchte, ohne dass der schwierige Partitions-Offset wie-o loop,offset=1048576
.--recheck
, wird die Zuordnungstabelle mit diesen Laufwerken ohne Partition aktualisiert. Beschweren Sie sich dann, wenn die nicht vorhandene Partitionstabelle überprüft wird. Wenn ich diese Laufwerkspfade aus der Kartendatei entferne, verschwindet die Warnung.GRUB muss nicht zwingend in MBR geschrieben werden. Sie können es im Partitionsbootsektor installieren und den anderen Bootloader vom MBR laden lassen, z. B. den Windows 7-Loader.
http://www.linuxselfhelp.com/gnu/grub/html_chapter/grub_3.html
quelle
Fast alles erwartet eine Partitionstabelle. Ich denke, Sie müssen neu installieren und die vorgeschlagenen Richtlinien befolgen, um mindestens eine / boot-, Swap- und / root-Partition zu haben. Wo ist dein Swap?
quelle
/boot
auf moderner Hardware nicht mehr empfohlen (es war ein Trick, die BIOS-Beschränkungen hinsichtlich der Festplattengröße zu umgehen und erweiterte Festplattenmodi wie LVM in Grub 1 nicht zu unterstützen)./boot
? Wenn ja, warum ist es besser,/boot
in derselben Partition wie zu belassen/
?/boot
mit Lilo oder Graben 2, aber nicht mit Graben 1. Eine Trennung/boot
hat ein administrativ Kosten (Sie müssen eine weitere Partition machen, und Sie müssen vorsichtig sein , nicht zu verwechseln/boot
mit/
), Sie würden also nur einen verwenden, wenn es einen Grund gibt (z. B. wenn Ihr Bootloader LVM nicht versteht).