[SOLVED] Grub boot error "not a directory"

Yakuraku

Active Member
Sep 24, 2016
69
0
26
38
Hello again,

after my first adventures with Proxmox, ZFS and Grub I can't start it again.

At boot I get the message:
Code:
error: not a directory
Entering rescure mode...
grub rescue>

I already boot with a live-cd to check if the pool is ok, and: It is ok!
If i type set I'll get the following output:
Code:
cmdpath=(hd0)
prefix=(hd0,gpt2)/ROOT/pve-1@/boot/grub
root=hd0,gpt2
which looks quite good!

If i list the directories
Code:
grub rescue> ls /
@/ ROOT/ data/
grub rescure> ls $prefix
i386-pc locale fonts/ grubenv grub.cfg

What makes me a bit thinking is the following output
Code:
grub rescue> linux
Unknown command 'linux'.
grub rescue> linux
error: not a directory

I'm sure, I didn't do something stupid like running an update or similar.
Any idea how to continue to boot?
boot=zfs does nothing!

Also tried to chroot in the installation and update/reinstall grub!
 
can you do "insmod normal" ?
 
I tried to perform a "Rescue Boot" with PVE-4.3 cd and get the following output:

Code:
ZFS Rescue Boot ...
error: lz4 decompression failed.
error: you need to load the kernel first.
error: you need to load the kernel first.

Press any key to continue...

This message have I always gotten, when I tried to boot with the 4.4.19-1-pve kernel. (have been using the 4.4.6-1-pve kernel). Can I somehow select a different kernel to boot with Rescue Boot?
 
what does "ls $prefix/i386-pc/" show? (an error message or a long list of files? no need for the complete content)
 
Code:
grub rescue> ls $prefix/i386-pc/
error: not a directory
However
Code:
grub rescue> ls $prefix/
i386-pc locale fonts/ grub.cfg grubenv

An ls on /ROOT/pve-1 just returns
Code:
@/


When I boot in rescue and chroot into the system I get
Code:
ls /boot/grub/i386-pc/
.... A lot of files ...
 
Last edited:
Got the system up and running again.
Used this guide to create a USB-Grub/-Boot device: https://www.nerdoncoffee.com/operating-systems/re-install-grub-on-proxmox/
Rebooted (using the current kernel)
Reinstalled grub (backup of /boot, copy of image/kernel files, grub-install, grub-update)
Now the system boots without the usb-stick. (But still have to select the Kernel 4.4.6 to boot instead of 4.4.19 due to the strange "lz4 decompression failed"error.
 
Got the system up and running again.
Used this guide to create a USB-Grub/-Boot device: https://www.nerdoncoffee.com/operating-systems/re-install-grub-on-proxmox/
Rebooted (using the current kernel)
Reinstalled grub (backup of /boot, copy of image/kernel files, grub-install, grub-update)
Now the system boots without the usb-stick. (But still have to select the Kernel 4.4.6 to boot instead of 4.4.19 due to the strange "lz4 decompression failed"error.

could you try reinstalling the 4.4.19 kernel ("apt-get install --reinstall pve-kernel-4.4.19-1-pve") and regenerating the initramfs ("update-initramfs -u -k 4.4.19-1-pve"), if any warnings/error messages are printed please post them here.
 
I tried a different approach.
- moved /boot to /boot_backup
- created a new dataset /boot in the root pool
- set compression=off in the pool
- copied the files from the backup to /boot
- run install-grub and update-grub

Success. No more error about lz4.
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!