Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Wheezy amd64 grub2 error: file '/grub/i386-pc/normal.mod' not found

66 views
Skip to first unread message

Ldten K

unread,
Aug 23, 2015, 11:20:06 PM8/23/15
to
Hi,

Am trying to restore my regular working HD from backup HD but booting from the restored HD results in "file '/grub/i386-pc/normal.mod' not found" error. This seems a bit odd since 1) my wheezy system is amd64 and 2) I can boot from my backup HD just fine. My regular working and backup HDs have the same size, the same partition structure and, at least in theory, the same data. I used dd to copy /boot partition data between my regular and backup HDs:

## backup /boot partition. Booting from the backup HD works fine.
# dd if=/dev/sda1 of=/dev/sdb1 conv=sync,noerror

What I tried:
1. Reinstall grub on the main HD (/dev/sdb, as the system is running off the backup HD which for now is /dev/sda). Did not help, the same "file '/grub/i386-pc/normal.mod' not found" error persists.
## /dev/sdb1 is /boot partiion
# mount /dev/sdb1 /mnt/1
# grub-install /dev/sdb --boot-directory=/mnt/1

2. In the grub rescue mode:
grub rescue> set prefix=(hd0,msdos1)/grub
grub rescue> insmod normal
file '/grub/i386-pc/normal.mod not found
grub rescue> insmod linux
file '/grub/i386-pc/linux.mod not found

Any ideas? Thanks


# aptitude show grub-pc
Package: grub-pc
State: installed
Automatically installed: no
Multi-Arch: foreign
Version: 1.99-27+deb7u2

# uname -a
Linux tsr7 3.2.0-4-amd64 #1 SMP Debian 3.2.68-1+deb7u3 x86_64 GNU/Linux

Brian

unread,
Aug 24, 2015, 6:10:04 AM8/24/15
to
On Sun 23 Aug 2015 at 20:14:32 -0700, Ldten K wrote:

> 2. In the grub rescue mode:
> grub rescue> set prefix=(hd0,msdos1)/grub
> grub rescue> insmod normal
> file '/grub/i386-pc/normal.mod not found
> grub rescue> insmod linux
> file '/grub/i386-pc/linux.mod not found
>
> Any ideas? Thanks

If the device and path for prefix is correct you should see a grub
directory in the output of

ls ((hd0,msdos1)/

Do you?

It would be more usual for the prefix to be (hd0,msdos1)/boot/grub on a
Debian machine with a standard installation.

Pascal Hambourg

unread,
Aug 24, 2015, 3:40:06 PM8/24/15
to
Ldten K a écrit :
>
> Am trying to restore my regular working HD from backup HD but booting
> from the restored HD results in "file '/grub/i386-pc/normal.mod' not
> found" error. This seems a bit odd since 1) my wheezy system is amd64

Indeed this seems odd, but not for that reason. "i386-pc" is just the
platform (PC BIOS), not the system software architecture. i386 and amd64
architectures both share the same i386-pc platform.

The oddness is that AFAIK, the GRUB version 1.99 from Wheezy does not
use the /grub/<platform>/ scheme yet but still puts *.mod files directly
into /grub.

Ldten K

unread,
Aug 24, 2015, 5:00:09 PM8/24/15
to
On Mon, 8/24/15, Brian <ad...@cityscape.co.uk> wrote:

// If the device and path for prefix is correct you should see a grub
// directory in the output of
//
// ls ((hd0,msdos1)/
//
// Do you?

Yes.

grub rescue> ls (hd0,msdos1)/
config-3.2.0-4-amd64 grub initrd.img-3.2.0-4-amd64 lost+found System.map-3.2.0-4-amd64 vmlinuz-3.2.0-4-amd64

grub rescue> set prefix=(hd0,msdos1)/grub
grub rescue> insmod normal
file '/grub/i386-pc/normal.mod not found
grub rescue> insmod (hd0,msdos1)/grub/normal.mod
file '/grub/i386-pc/gfxterm.mod not found // writing from memory, I think it was gfxterm.mod
grub rescue> insmod (hd0,msdos1)/grub/gfxterm.mod
file '/grub/i386-pc/video.mod not found

// It would be more usual for the prefix to be (hd0,msdos1)/boot/grub on a
// Debian machine with a standard installation.

(hd0,msdos1) is my boot partion, not /. The HD is partitioned as follows:
/dev/sda1 /boot partition
/dev/sda2 / partition
/dev/sda3 swap partition

Thanks

Pascal Hambourg

unread,
Aug 25, 2015, 2:50:05 PM8/25/15
to
Ldten K a écrit :
>
> grub rescue> ls (hd0,msdos1)/
> config-3.2.0-4-amd64 grub initrd.img-3.2.0-4-amd64 lost+found System.map-3.2.0-4-amd64 vmlinuz-3.2.0-4-amd64
>
> grub rescue> set prefix=(hd0,msdos1)/grub
> grub rescue> insmod normal
> file '/grub/i386-pc/normal.mod not found

What does "ls (hd0,msdos1)/grub/" show ? Just a few files and
directories or plenty of *.mod files ?

Ldten K

unread,
Aug 25, 2015, 6:40:06 PM8/25/15
to
On Tue, 8/25/15, Pascal Hambourg <pas...@plouf.fr.eu.org> wrote:

// What does "ls (hd0,msdos1)/grub/" show ? Just a few files
// and directories or plenty of *.mod files?

I have the drive disconnected at the moment but, as far as I remember, "ls (hd0,msdos1)/grub/"
shows all the files that are normally expected to be there.

The /boot partition of the problem drive was restored using dd:
# dd if=/dev/sda1 of=/dev/sdb1 conv=sync,noerror
where /dev/sda1 is the /boot partion of the good working HD that boots properly
/dev/sdb1 is the /boot partion of the HD that fails to boot and that I'm trying to get working

Thanks





Pascal Hambourg

unread,
Aug 26, 2015, 4:10:06 AM8/26/15
to
Ldten K a écrit :
> On Tue, 8/25/15, Pascal Hambourg <pas...@plouf.fr.eu.org> wrote:
>
>> What does "ls (hd0,msdos1)/grub/" show ? Just a few files
>> and directories or plenty of *.mod files?
>
> I have the drive disconnected at the moment but, as far as I remember, "ls (hd0,msdos1)/grub/"
> shows all the files that are normally expected to be there.

That does not answer my question.

File location differs between versions of GRUB. As I previously wrote,
the version of GRUB up to Wheezy (1.99) installs *.mod files directly in
(/boot)/grub whereas the version since Jessie (2.02) installs *.mod
files in a subdirectory (/boot)/grub/<platform>.

If the GRUB core image (not stored on the /boot partition) which boots
searches files in (/boot)/grub/<platform> but the files are in in
(/boot)/grub/ or the other way around, then there is a version mismatch.

Didn't you install a more recent version of GRUB (possibly from a new
installation) at some time on that disk ? Can you see the GRUB version
which boots ?

Ldten K

unread,
Aug 26, 2015, 5:00:05 AM8/26/15
to
On Wed, 8/26/15, Pascal Hambourg <pas...@plouf.fr.eu.org> wrote:

// Didn't you install a more recent version of GRUB (possibly from a new
// installation) at some time on that disk ?

That could be it. The drive originally had a working wheezy installation that booted
properly and worked just fine. I then decided to upgrade this working wheezy installation
to testing/stretch, just to see how it would go. It did not go too well, so I decided to revert
back to wheezy by restoring the data from my backup drive. The /boot partition was restored
by dd-ing the data from /boot partition of the working backup drive (/dev/sda1):

# dd if=/dev/sda1 of=/dev/sdb1 conv=sync,noerror

// Can you see the GRUB version which boots ?

When booting, GRUB immediately drops me into the "grub rescue" mode. I did not see any
version number nor I found any way to check the version number from "grub rescue" mode.

Thanks

Brian

unread,
Aug 26, 2015, 9:30:06 AM8/26/15
to
I do not think there is a way of checking but the evidence for a version
mismatch between GRUB and its modules seems strong.

I would run a Wheezy installer image in rescue mode and reinstall GRUB
to the MBR of the disk.
0 new messages