Tried to boot the service with liveCD kernel but from local system via below command
load /boot/kernel/kernel
load /boot/kernel/zfs.ko
load /boot/kernel/nullfs.ko
set currdev="zfs:zroot/ROOT/default:"[/CODE]
TryI'm using a Dell server with PERC 330 card in HBA mode,
load /boot/kernel/mrsas.ko
then set currdev.1 EFI (300MB)
2 freebsd-swap (3.9G)
3 freebsd-zfs (3.6T) NO CHANGE
load /boot/kernel/kernel
load /boot/kernel/zfs.ko
load /boot/kernel/nullfs.ko
load /boot/kernel/mrsas.ko
set currdev="zfs:zroot/ROOT/default:"
boot
Dell server doesn't have setting like legacy mode.Check your Bios->HBA settings, it's limiting your disk to 2TB in Legacy mode.
edit:
If you have a full backup and you are going to risk, you can try to remove the SWAP partitions create a new ESP partition on each disk, then create again the SWAP partition and switch from BIOS to EFI.
It will look like this:
I have a FreeBSD production system with 12 3TB SATA drives in a a JBoD triple-parity ZFS configuration spanning around 30TB. This was working well for months, through numerous reboots, however after a power outage Friday it's been unable to boot, giving 3 or more (it varies) `zio_read error: 97` entries, followed by or with interspersed `ZFS: i/o error - all block copies unavailable` in what appears to be every fourth entry (e.g. 3 error 97 entries then 1 all block copies unavailable entry, repeating 0 or more times.) The subsequent message is usually `ZFS: can not read MOS config`...
It would be safer for the time your current physical boot disk becomes faulty.Do I need to do this on every disk?
What's the exact type of that 330 card?I'm using a Dell server with PERC 330 card in HBA mode, and 12 SSD with raidz2
Enabling boot support
NOTE: See your system documentation to ensure that the proper boot order is selected in the system BIOS.
In a multiple controller environment, you can enable BIOS on multiple controllers. However, if you want to boot from a specific controller, enable the BIOS on that controller and disable it on the other controllers. The system can then boot from the BIOS-enabled controller.
NOTE: BIOS displays 4 KB and 512-byte drives, whereas you can only boot using 512-byte drives. All 4 KB drives must boot only from UEFI mode.
Perform the following steps to enable the controller BIOS:
Press <Ctrl> <N> to access Ctrl Mgmt menu screen.
Press <Tab> to move the cursor to Enable Controller BIOS in the Settings box.
Press the spacebar to select Enable Controller BIOS.
An X is displayed beside Enable Controller BIOS.
Press <Tab> to move the cursor to the Apply button, and then press <Enter> to apply the selection.
The controller BIOS is enabled.
To disable the controller BIOS, use the spacebar to de-select the Enable Controller BIOS control, and then select Apply and press <Enter>.
Ok, Then you can try thisyes. But with more than 20T data, restore is painful…
gpart show
gpart delete -i 1 da0
gpart delete -i 2 da0
gpart add -a 4k -l efiboot0 -t efi -s 260M "da0"
newfs_msdos "/dev/gpt/efiboot0"
mkdir /tmp/boot/
mount -t msdosfs /dev/da0p1 /tmp/boot
mkdir -p /tmp/boot/efi/EFI/BOOT
cp /boot/loader.efi /tmp/boot/efi/EFI/BOOT/BOOTX64.efi
efibootmgr --create --activate --label "FreeBSD" --loader "/tmp/boot/efi/EFI/BOOTX64.efi"
umount /tmp/boot
shutdown -r now
Yes, it;s this H330What's the exact type of that 330 card?
Because it looks like the first one of these: Dell PowerEdge RAID Controller 9 User’s Guide H330, H730, and H830:
Thanks for the instruction. I'll have a try.Ok, Then you can try this
Boot from LiveCD under UEFI, you need to set your BIOS to UEFI only and disable the legacy BIOS so you can set the boot var using efibootmgr
Check if the disk that you want to convert from freebsd-boot to EFI is correct one. In the example bellow is da0
gpart show
Delete freebsd-boot, freebsd-swap on da0
gpart delete -i 1 da0
gpart delete -i 2 da0
create ESP
gpart add -a 4k -l efiboot0 -t efi -s 260M "da0"
Format ESP
newfs_msdos "/dev/gpt/efiboot0"
Create new SWAP to the rest of the freespace between ESP and freebsd-zfs (Note: You must NOT have any free space at the end of the disk otherwise you will need to specify the start offset for the partition)
gpart add -a 1m -l swap0 -t freebsd-swap "da0"
mount the ESP partition
mkdir /tmp/boot/
mount -t msdosfs /dev/da0p1 /tmp/boot
Copy the EFI and create the boot record in the UEFI
mkdir -p /tmp/boot/efi/EFI/BOOT
cp /boot/loader.efi /tmp/boot/efi/EFI/BOOT/BOOTX64.efi
efibootmgr --create --activate --label "FreeBSD" --loader "/tmp/boot/efi/EFI/BOOTX64.efi"
umount /tmp/boot
shutdown -r now
Note:
By default the efi partitons is also mounted under /boot/efi so the update of the future efi could be easy but this is valid only for the first disk, when you are using for example raid1 you need to update the efi on the secondary disk by hand. So check your /etc/fstab