Re: installkernel/installworld zu einer anderen Partition

From: Oliver Fromme <olli(at)lurza.secnetix.de>
Date: Tue, 18 Sep 2007 16:28:51 +0200 (CEST)

Peter Ross wrote:
> Eine Frage habe ich noch.. ich habe eine kleine Linux-/boot-Partition,
> die ich ideal fuer FreeBSD-/boot verwenden koennte (der Rest wuerde
> neupartitioniert werden).
>
> Unter FreeBSD habe ich das noch nie gemacht. Geht das?

Im Prinzip ja, ist aber ein bisschen umständlich. Ich
würde es eher vermeiden, wenn es keine Gründe gibt, es
trotzdem zu tun.

Wie groß ist denn die /boot-Partition? Wenn sie groß
genug ist, nimm sie doch einfach als normale Root-Parti-
tion her.

Anderenfalls, wenn Du's wirklich versuchen willst, wirf
mal einen Blick auf dieses Kochrezept:

http://wiki.freebsd.org/ZFSOnRoot

Da geht es darum, ZFS für ein gesamtes System inkl. root-
Dateisystem aufzusetzen, was aber ein separates /boot
erfordert. Das mit ZFS kannst Du ignorieren; es funktio-
niert im Prinzip genauso mit UFS.

Der Kniff ist, dass Du im neuen root-Dateisystem einen
eigenen Mountpoint anlegst (z.B. /bootdir), wo dann die
boot-Partition drauf gemountet wird. Diese enthält dann
das normale boot-Unterverzeichnis. Damit das von den
üblichen Tools gefunden wird, musst Du einen Symlink
/boot -> /bootdir/boot anlegen.

> Wenn ich die neue Root unter /mnt habe, wuerde ich die neue
> /boot-Partition unter /mnt/boot unterbringen?

Nein. Angenommen, die boot-Partition ist ad0s1a, und
die root-Partition ist ad0s1d:

# newfs -n /dev/ad0s1a
# cd /mnt
# mkdir bootdir
# mount /dev/ad0s1a bootdir
# mv boot bootdir/boot
# ln -s bootdir/boot
# echo 'vfs.root.mountfrom="ufs:ad0s1d"' >> boot/loader.conf

Beachte, dass die Partition, in der sich der Loader befin-
det (in diesem Fall also die boot-Partition), immer eine
»a«-Partition sein muss. Anderenfalls kann der Bootstrap
ihn nicht lokalisieren.

> Muss ich irgendwas beim Bootmanager beachten, oder begreift der dann, dass
> der Kernel auf der Partition ohne /boot liegt?

Mit Bootmanager meinst Du die Bootblöcke (Bootstrap), oder?
Denen ist es egal, wo der Kernel liegt; sie müssen ihn ja
nicht laden. Das macht der Loader. Die Bootblöcke laden
nur den Loader, und den finden sie in /boot/loader auf der
»a«-Partition. Ob das nun das (spätere) root-Dateisystem
ist oder ein separates Dateisystem, das später als /bootdir
gemountet wird, ist den Bootblöcken egal. Die wissen von
Mountpoints ebensowenig wie der Loader. Der Loader gibt
lediglich einen »Hint« an den Kernel weiter, wo dieser sein
root-Dateisystem findet; das ist obige vfs.root.mountfrom-
Variable.

Also, funktionieren tut das ganze problemlos, ist halt nur
ein bisschen Aufwand beim Einrichten, und im Normalfall
(wenn man das root-Dateisystem nicht auf ZFS haben möchte)
hat man auch keinen konkreten Nutzen davon. Daher würde
ich von dieser Konstruktion abraten.

Gruß
   Olli

-- 
Oliver Fromme, secnetix GmbH & Co. KG, Marktplatz 29, 85567 Grafing b. M.
Handelsregister: Registergericht Muenchen, HRA 74606,  Geschäftsfuehrung:
secnetix Verwaltungsgesellsch. mbH, Handelsregister: Registergericht Mün-
chen, HRB 125758,  Geschäftsführer: Maik Bachmann, Olaf Erb, Ralf Gebhart
FreeBSD-Dienstleistungen, -Produkte und mehr:  http://www.secnetix.de/bsd
"Python is an experiment in how much freedom programmers need.
Too much freedom and nobody can read another's code; too little
and expressiveness is endangered."
        -- Guido van Rossum
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Tue 18 Sep 2007 - 16:30:18 CEST

search this site