If you restart TrueNAS and it only loads into the GRUB terminal with no boot menu, the normal advice is to reinstall the OS and restore your configuration backup.
But if you’ve lost your backup, it’s out of date, or you can only access the server via remote console/KVM without OS install media, you may still be able to boot.
This guide is for cases where:
- The boot drive is intact (no major corruption or hardware failure).
- TrueNAS was running fine before reboot.
- GRUB itself is failing to load the menu.
If the boot device is dead or the pool is badly damaged, this won’t work.
Manual Boot Steps
GRUB behaves differently on different hardware, but these steps are generic enough to work in most cases.
-
Check if the all_video module is available:
echo $feature_all_video_moduleIf the output isy, go to step 2. Otherwise, go to step 3. -
Load all video modules at once:
insmod all_videoThen go to step 4. -
Load video modules individually:
insmod efi_gop
insmod efi_uga
insmod ieee1275_fb
insmod vbe
insmod vga
insmod video_bochs
insmod video_cirrus
Then go to step 4. -
Load compression and filesystem modules:
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod zfs -
Identify the boot-pool’s disk and UUID:
ls (hd0)
Check each(hdX)until you find:
- A small EFI partition (FAT)
- A ZFS partition labeled
boot-pool
Example:
Partition hd0,gpt3: Filesystem type zfs - Label 'boot-pool' - UUID 0123456789abcdef
-
Set the root device:
search --no-floppy --fs-uuid --set=root <UUID> -
Find the boot environment name (BE name). Usually it’s the TrueNAS version. Use that to find the kernel and initrd files:
ls /ROOT/<BE NAME>@/boot/ -
Load the kernel:
linux /ROOT/<BE NAME>@/boot/vmlinuz-6.12.15-production+truenas root=ZFS=boot-pool/ROOT/<BE NAME> ro libata.allow_tpm=1 amd_iommu=on iommu=pt kvm_amd.npt=1 kvm_amd.avic=1 intel_iommu=on zfsforce=1 nvme_core.multipath=N
Replace with your actualvmlinuzfilename. -
Load the initrd:
initrd /ROOT/<BE NAME>@/boot/initrd.img-6.12.15-production+truenas
Replace with your actualinitrdfilename. -
Boot:
boot
After Booting Successfully
-
Immediately export your TrueNAS configuration.
-
Run a scrub of the boot-pool:
zpool scrub boot-pool
Reboot afterwards. If it boots normally, GRUB’s issue may have been minor ZFS metadata damage that’s now fixed. -
If it still fails, repeat the manual boot, then as
root:
update-grub
grub-install /dev/<boot-device>
Replace<boot-device>with your actual boot device. Reboot again. -
If it still doesn’t boot, reinstall TrueNAS and restore your configuration.
I hope this helps.