Hinzufügen einer Linux-Installation

wobo

Vorsichtigreintapsender
Ich habe auf meinem Rechner das beim Kauf dort befindliche Vista (aufs Nötigste zusammengeschrumpft), dann einen Slice für FreeBSD. Nun möchte/muss ich zusätzlich ein Linuxsystem installieren.

Von Linux her betrachtet, sieht es so aus, dass ich mit dessen cfdisk hinter die von FreeBSD belegte primäre Partition eine Extended Partition lege und dann die Linux-Partitionen als logische Laufwerke einrichte. Das alles ist kein Problem. Die Frage ist, wie gestalte ich das mit dem Bootloader?

Zur Zeit ist ja boot0 von FreeBSD installiert, das mir brav Windows und FreeBSD als Bootoptionen zeigt.

Ich habe 2 Optionen:

1. Ich installiere Linux mit eigenem Grub im BR der Linux-Rootpartition. Dann müsste ich im FreeBSD-Bootloader diese Partition als Root angeben. Wie mache ich das? Das FreeBSD-Handbuch erzählt zwar, was boot0 ist, nicht aber, wie man ihn in der gewünschten Weise verändert, z.B. ein System hinzufügt.

2. Ich installiere Linux mit eigenem GRUB im MBR. Dann müsste ich nur einen Eintrag (chainloader) für FreeBSD hinzufügen. Reicht das, wenn ich da mit dem Chainloader auf hda2 zeige?

Mit dem Linux Grub kenne ich mich recht gut aus, der FreeBSD-Bootloader ist mir aber noch fremd. Habe eben das Verzeichnis /boot durchsucht und keine Konfigurationsdatei für boot0 gefunden. Wo liegt die?

wobo
 
Boot0 bietet dir einfach alle Partition zum Booten an. Das heißt wenn du die Extended anlegst, wird sie automatisch mit angezeigt. Es gibt dafür keine Konfiguration.

Allerdings kann der Loader keine logischen Partition. Ich weiß nicht ob das geht, aber möglicherweise kannst du in der Extended einen Loader hinterlegen, der dann das Linux startet.

Im Moment benutze ich den Vist Bootloader mit EasyBCD.
 
Allerdings kann der Loader keine logischen Partition.
Nun, dann ist er für meine Zwecke ungeeignet, da ich vorhabe, noch weitere Linux-Installationen zu testen. Da komme ich mit den maximal 3 primären Partitionen lange nicht aus.
Frage am Rande: Was macht eigentlich jemand, der sich 4 *BSD-Installationen gönnen will? Brauch der dann eine zweite Festplatte, nur weil *BSD unbedingt eine primäre Partition will? Ein Manko, wie mir scheint, aber jetzt kein Diskussionsthema.

Also muss ich den umgekehrten Weg gehen, den Grub der Haupt-Linux-Installation verwenden und FreeBSD dann davon starten.

wobo
 
Ich würde Grub in den MBR legen. Grub kann UFS2 lesen und /boot/loader direkt laden, diesen Kram mit Chainbloader uns so kann man sich dort völlig sparen. boot0 und boot2 fallen in dem Fall schlicht weg. Jetztendlich ist es Geschmackssache, nur ich halte diese Lösung im Zusammenspiel mit Linux am saubersten.

Frage am Rande: Was macht eigentlich jemand, der sich 4 *BSD-Installationen gönnen will? Brauch der dann eine zweite Festplatte, nur weil *BSD unbedingt eine primäre Partition will?
Im Moment leider ja. Mit 7.1 nicht mehr, denn dann wird FreeBSD von GPT starten können und du kannst weit mehr als einhundert Installationen parallel auf einer Platte betreiben. Leider hat der Kram es nicht mehr in 7.0 geschafft.
 
Hallo wobo,

also ich habe bei mir immer deine Option 2 (Linux GRUB im MBR, von dort die anderen OSe starten) verfolgt und bin damit gut gefahren

zZt siehts so aus
...
title Ubuntu 7.10, kernel 2.6.22-14-386
root (hd1,0)
kernel /boot/vmlinuz-2.6.22-14-386 root=UUID=1aa856a4-a0b5-48e4-a707-5fcc4ce10ed9 ro quiet splash locale=de_DE
initrd /boot/initrd.img-2.6.22-14-386
quiet

title Ubuntu 7.10, kernel 2.6.22-14-386 (recovery mode)
root (hd1,0)
kernel /boot/vmlinuz-2.6.22-14-386 root=UUID=1aa856a4-a0b5-48e4-a707-5fcc4ce10ed9 ro single
initrd /boot/initrd.img-2.6.22-14-386

# This entry automatically added by the Debian installer for a non-linux OS
# on /dev/sda1
title Microsoft Windows XP Professional
root (hd0,0)
savedefault
makeactive
chainloader +1

#######
title FreeBSD
root (hd1,2,a)
kernel /boot/loader

Gruß
 
Ja, das wird auch meine Lösung sein, allerdings habe ich nur eine Festplatte.
Alles über den Grub von Mandriva Linux, da ich aufgrund meiner Arbeit Mandriva auf jeden Fall benötige:

hd0,1 --> Vista
hd0,2,a --> FreeBSD
hd0,5 --> Linux Swap
hd0,6 --> DATEN
hd0,7 --> Mandriva 2008.1 Beta2
hd0,8 --> dto.

Der Rest ist frei für weitere (Ubuntu Test, ArchLinux Test, etc.)

wobo
 
Was macht eigentlich jemand, der sich 4 *BSD-Installationen gönnen will? Brauch der dann eine zweite Festplatte, nur weil *BSD unbedingt eine primäre Partition will?

Beispielsweise mit Emulation oder Virtualisierung. Oder eben mit mehreren Laufwerken - was ich heutzutage eh für die einzig empfehlenswerte Methode halte (wenn es denn unbedingt ein Multiboot-System sein muss).

Zur testweisen Installation kann man ja prima USB-Sticks verwenden. Am Hauptsystem (und dessen Festplatte) würde ich erstmal gar nicht rumexperimentieren. Einen GRUB kann man ja auch fürs erste von einer CD oder einem USB-Stick booten und damit die verschiedenen Systeme starten.
 
Mit 7.1 nicht mehr, denn dann wird FreeBSD von GPT starten können und du kannst weit mehr als einhundert Installationen parallel auf einer Platte betreiben. Leider hat der Kram es nicht mehr in 7.0 geschafft.

Hat eh noch Zeit: aktuelle PC-Boards bieten ja immer noch keine Unterstützung für EFI/UEFI. Das P35 Neo3 von MSI ist zwar für Februar angekündigt, wurde aber bislang nur mit einem üblichen BIOS gesichtet:

http://www.computerbase.de/news/hardware/mainboards/intel-systeme/2008/januar/msi_bios_p35_neo3
 
Du brauchst kein EFI oder das neuere UEFI. FreeBSD 7.1 missbraucht den pmbr, welcher vor der GPT liegt. Das dort liegende gptboot startet dir das System von einer GPT-Partition, unabhängig davon ob du ein BIOS, ein EFI oder eine OpenFirmware hast :)
 
Beispielsweise mit Emulation oder Virtualisierung.
Beides ist keine praktikable Lösung für mich, da sich bei einer virtuellen Maschine nicht die Hardwareerkennung der zu testenden Linux-Distribution testen lässt, ein wesentlicher Faktor.

Zur testweisen Installation kann man ja prima USB-Sticks verwenden.
Das wäre eine Notlösung. Aber da es ja den einfachen Weg über den Grub des Linux-Systems gibt, ist das ja nicht notwendig.

wobo
 
Hmm... Also es gab zumindest Pläne das Verfahren der Zweckentfremdung des pmbr auch in Grub2 umzusetzen. Wie weit das ganze gediegen ist, weiß ich allerdings nicht. Per Google habe ich jetzt auf die Schnelle das hier gefunden, es klingt sehr ermutigend:
As of 1.95+20070505-1, grub2 supports GPT on PC/BIOS systems [1]. When user
is installing a GPT disk, grub-installer should automaticaly switch to grub2
(or the install will fail with errors).

Die einzige "Doku", wenn man es denn so nennen will, ist meines Wissens nach der initiale Commit vor einigen Monaten:
First cut at support for booting a GPT labeled disk via the BIOS bootstrap
on i386 and amd64 machines. The overall process is that /boot/pmbr lives
in the PMBR (similar to /boot/mbr for MBR disks) and is responsible for
locating and loading /boot/gptboot. /boot/gptboot is similar to /boot/boot
except that it groks GPT rather than MBR + bsdlabel. Unlike /boot/boot,
/boot/gptboot lives in its own dedicated GPT partition with a new
"FreeBSD boot" type. This partition does not have a fixed size in that
/boot/pmbr will load the entire partition into the lower 640k. However,
it is limited in that it can only be 545k. That's still a lot better than
the current 7.5k limit for boot2 on MBR. gptboot mostly acts just like
boot2 in that it reads /boot.config and loads up /boot/loader. Some more
details:
- Include uuid_equal() and uuid_is_nil() in libstand.
- Add a new 'boot' command to gpt(8) which makes a GPT disk bootable using
/boot/pmbr and /boot/gptboot. Note that the disk must have some free
space for the boot partition.
- This required exposing the backend of the 'add' function as a
gpt_add_part() function to the rest of gpt(8). 'boot' uses this to
create a boot partition if needed.
- Don't cripple cgbase() in the UFS boot code for /boot/gptboot so that
it can handle a filesystem > 1.5 TB.
- /boot/gptboot has a simple loader (gptldr) that doesn't do any I/O
unlike boot1 since /boot/pmbr loads all of gptboot up front. The
C portion of gptboot (gptboot.c) has been repocopied from boot2.c.
The primary changes are to parse the GPT to find a root filesystem
and to use 64-bit disk addresses. Currently gptboot assumes that the
first UFS partition on the disk is the / filesystem, but this algorithm
will likely be improved in the future.
- Teach the biosdisk driver in /boot/loader to understand GPT tables.
GPT partitions are identified as 'disk0pX:' (e.g. disk0p2:) which is
similar to the /dev names the kernel uses (e.g. /dev/ad0p2).
- Add a new "freebsd-boot" alias to g_part() for the new boot UUID.
 
Zurück
Oben