I had a setup with 4x4 TB disks, with two mirrors consisting of two disks each, giving me about 8 TB of usable storage space. One mirror consists of ada0 & ada2, the other mirror of ada1 & ada3.
I needed to upgrade storage space, so I decided to upgrade one mirror by resilvering two times. I removed ada2, replaced it with a bigger one, booted the system, and let the resilvering do its job while still being able to use the storage in a degraded state. Everything went great so far.
Then I wanted to do the same, but for ada0. At first I discovered that the hardware is so old that it just boots from the C: drive. Hot-Swapping is not possible on this machine. So I downloaded the FreeBSD-13.0-RELEASE-amd64-bootonly.iso image, booted from the network, attached the encrypted partitions, manually imported the pool, and started to do a resilver from the rescue system, which in turn completely finished, only to discover that I’m no longer able to boot the system.
This is currently where I’m stuck at. Apparently no kernel can be found, but I fail to understand why. This is how the boot process currently looks like:
From what I understand the boot process is either looking at the wrong place, or the loader / kernel are missing from the right place (which really might be the same configuration issue).
Both ada0 & ada2 consist of two partitions, the first one being boot, the second one data. This is how I initialize a new disk in the pool:
I get a confirmation that the bootcode & partcode were both successfully installed. Just to be sure I booted a second time into the rescue system and recreated both bootcode & partcode for ada0 & ada2 with the
I should also add that initially each disk contained three partitions, with a swap partition in between (ada?p1 = boot, ada?p2 = swap, ada?p3 = data). I decided that it is a little bit excessive to have 4 swap partitions with 32 GB each, so I left them out on the newer disks. I imagine that the slightly changed partition layout could also be the cause of the issue, but I’m not sure.
When I put the old 4 TB drive into its bay, everything is back to normal again. At this point I wonder what I’ve missed? The partitions are there, the bootcode & partcode were installed, and the ZFS resilvering finished. There must be something else I need to do, right?
P. S. I’m sorry that I couldn’t paste the command output into my post, which would’ve made things clearer, as I’m currently unable to copy & paste from the rescue system.
I needed to upgrade storage space, so I decided to upgrade one mirror by resilvering two times. I removed ada2, replaced it with a bigger one, booted the system, and let the resilvering do its job while still being able to use the storage in a degraded state. Everything went great so far.
Then I wanted to do the same, but for ada0. At first I discovered that the hardware is so old that it just boots from the C: drive. Hot-Swapping is not possible on this machine. So I downloaded the FreeBSD-13.0-RELEASE-amd64-bootonly.iso image, booted from the network, attached the encrypted partitions, manually imported the pool, and started to do a resilver from the rescue system, which in turn completely finished, only to discover that I’m no longer able to boot the system.
This is currently where I’m stuck at. Apparently no kernel can be found, but I fail to understand why. This is how the boot process currently looks like:
Code:
Attempting Boot From Hard Drive (C:)
BIOS drive C: is disk0
BIOS drive D: is disk1
BIOS drive E: is disk2
BIOS drive F: is disk3
GELI Passphrase for disk3p3:
Calculating GELI Decryption Key for disk3p3: …
-
Can’t find /boot/zfsloader
Can’t find /boot/loader
Can’t find /boot/kernel/kernel
FreeBSD/x86 boot
Default: disk-1:/boot/kernel/kernel
boot: _
From what I understand the boot process is either looking at the wrong place, or the loader / kernel are missing from the right place (which really might be the same configuration issue).
Both ada0 & ada2 consist of two partitions, the first one being boot, the second one data. This is how I initialize a new disk in the pool:
gpart create -s gpt ada0
gpart add -a 4k -s 512K -t freebsd-boot -l gptboot2 ada0
gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada0
gpart add -a 1m -t freebsd-zfs -l zfs2 ada0
I get a confirmation that the bootcode & partcode were both successfully installed. Just to be sure I booted a second time into the rescue system and recreated both bootcode & partcode for ada0 & ada2 with the
gpart bootcode
command from above, but with different parameters for each disk.I should also add that initially each disk contained three partitions, with a swap partition in between (ada?p1 = boot, ada?p2 = swap, ada?p3 = data). I decided that it is a little bit excessive to have 4 swap partitions with 32 GB each, so I left them out on the newer disks. I imagine that the slightly changed partition layout could also be the cause of the issue, but I’m not sure.
When I put the old 4 TB drive into its bay, everything is back to normal again. At this point I wonder what I’ve missed? The partitions are there, the bootcode & partcode were installed, and the ZFS resilvering finished. There must be something else I need to do, right?
P. S. I’m sorry that I couldn’t paste the command output into my post, which would’ve made things clearer, as I’m currently unable to copy & paste from the rescue system.