Der FreeBSD-Bootloader bootet nicht vom richtigen Pool

Der FreeBSD-Bootloader bootet nicht vom richtigen Pool

Ich habe FreeBSD 10.1 auf einem System installiert, das über zwei ZFS-Pools verfügt und von einer anderen Festplatte bootet, die nur den Bootloader enthält. Die Hauptpool-Festplatten sind mit SATA-Ports auf einer PCI-E-Karte verbunden, während der Bootloader versucht, vom falschen Pool zu booten (dem zweiten Pool, der direkt mit den SATA-Ports auf dem Motherboard verbunden ist).

Der Fehler ist der folgende:

Can't find /boot/zfsloader
FreeBSD/x86 boot
Default: storage:/boot/kernel/kernel
boot:
/
Cant't find /boot/kernel/kernel
FreeBSD/x86 boot
Default: storage:/boot/kernel/kernel
boot: 

Ich habe versucht, vfs.root.mountfrom="zfs:zpool" oder "zfs:zpool/ROOT" in /mnt/boot/loader.conf festzulegen, aber es funktioniert nicht.

Wenn ich die Platten des zweiten Pools abziehe, bootet das System ordnungsgemäß.

Vielen Dank.

Antwort1

OK, das habe ich selbst herausgefunden.

ZFS Loader lässt nicht zu, dass ein Root-Pool zum Booten festgelegt wird, versucht jedoch, den richtigen zu erraten, indem das BIOS für die Boot-Prioritätsreihenfolge gepoolt wird.

Damit es aus dem richtigen Pool bootet, habe ich im BIOS als erstes Boot-Gerät das Laufwerk mit dem Bootloader und als zweites und drittes die Laufwerke festgelegt, die zum gespiegelten Root-Pool gehören.

Antwort2

Versuchen Sie, cp -r /bootvom richtigen Pool zum falschen Pool zu wechseln. Stellen Sie sicher, dass die bootfsEigenschaft im falschen Pool leer ist oder auf den richtigen Pool eingestellt ist.

Antwort3

Booten Sie von einer geeigneten Distributions-CD im „Live-CD“-Modus. Melden Sie sich als Root an.

Nehmen wir nun an, Ihr bootfähiger Pool heißt „Tank“.

den Pool importieren, ohne ihn zu mounten -

zpool import -N -f tank

Stellen Sie dann die Bootfs-Eigenschaft entsprechend ein. Ein gebräuchlicher Boot-Dateisystemname ist „tank/ROOT/default“;

zpool set bootfs=tank/ROOT/default tank

das war's für den bootfähigen Pool. Wiederholen Sie den Vorgang für den nicht bootfähigen Pool und setzen Sie dieses Mal die Bootfs-Eigenschaft auf "". Damit sind Sie fertig.

verwandte Informationen