Sie sind nicht angemeldet.

1

02.07.2009, 09:35

Crosscompiling Gentoo: Probleme mit dem RootFS

Hallo Miteinander

Ich versuche gerade ein Gentoo-Image für ein PPC-Board zu erstellen. Dazu habe ich als erstes crossdev installiert und anschliessend Portage fürs Kreuzkompilieren vorbereitet (gemäss [1]). Als nächstes habe ich einen Kernel konfiguriert und übersetzt. Das RootFS habe ich erstellt in dem ich von Hand die wichtigsten Gerätedateien angelegt habe und mittels emerge die wichtigsten Packete für PPC übersetzt habe (init, coreutils, baselayout, ...). Aus dieser Dateihirarchie habe ich danach ein komprimiertes Image mit ext2 Dateisystem erstellt (mittels genext2fs und gzip) und dieses anschliessend mit mkimage zu einem Multi-Image mit dem Kernel-Image zusammengepackt. Dieser Klumpen wird vom Target (ein EM9 von MEN) per FTP heruntergeladen und gestartet. Soweit so gut, das Multi-Image wird zerlegt, der Kernel gebootet und Init ausgeführt. Probleme gibt es erst wenn das Root-Filesystem überprüft wird:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
* Remounting root filesystem read-only ...                               [ ok ]

* Checking root filesystem ...ext2fs_check_if_mount: No such file or directory
while determining whether /dev/ROOT is mounted.
fsck.ext3: No such file or directory while trying to open /dev/ROOT
/dev/ROOT:
The superblock could not be read or does not describe a correct ext2
filesystem.  If the device is valid and it really contains an ext2
filesystem (and not swap or ufs or something else), then the superblock
is corrupt, and you might try running e2fsck with an alternate superblock:
   e2fsck -b 8193 <device>

* Filesystem couldn't be fixed :(                                        [ !! ]

* Give root password for maintenance
  (or type Control-D to continue): 


Kann mir irgendjemand erklären, was mit dieser Fehlermeldung gemeint ist? Das RootFS kann ja nicht beschädigt sein, denn sonst würde doch init & co. nicht funktionieren. Auch ist mir nicht klar wieso er den FS-Check mit fsck.ext3 druchführen will, denn es gibt nur eine Ramdisk mit ext2...

Kann mir jemand ein paar Tipps geben? Oder kennt jemand eine gute Anleitung zu diesem Thema?

Bin für jeden Tipp dankbar ;)

Schöne Grüsse aus der Schweiz
Martin

[1] http://www.gentoo.org/proj/en/base/embed…dbook/index.xml

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »tdc« (03.07.2009, 11:15)


2

02.07.2009, 14:33

Schnellschuß:

Hast Du die fstab angepasst?

Sieht mir hier nach dem Klassischen fehler "fstab aus Bootmedium übernommen" aus ....
Meine Rechtschreibfehler sind gewollt und unterliegen dem Copyright des Verfassers, es sei denn, sie sind explizit unter die GPL gestellt .....

Außerdem sind sie ein Ausdruck der Persönlichkeit des Schreibers!

3

03.07.2009, 08:41

Hallo Wernieman

Stimmt, hatte ich wirklich vergessen :whistling: Danke für den Hinweis!

Leider klappt es aber auch nicht wenn ich in der fstab als rootfs /dev/ram eintrage:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
* Checking root filesystem ...ext2fs_check_if_mount: No such file or directory
while determining whether /dev/ram is mounted.
fsck.ext2: Bad magic number in super-block while trying to open /dev/ram
/dev/ram:
The superblock could not be read or does not describe a correct ext2
filesystem.  If the device is valid and it really contains an ext2
filesystem (and not swap or ufs or something else), then the superblock
is corrupt, and you might try running e2fsck with an alternate superblock:
    e2fsck -b 8193 <device>


 * Filesystem couldn't be fixed :(                                [ !! ]


/dev/ram ist ein symlink auf /dev/ram0 welches ich mit

Quellcode

1
mknod -m 600 ram0 b 1 0
angelegt habe.

Kennt sich jemand mit Plattenlosen Systemen aus und kann mir weiterhelfen?

Danke und Gruss Martin
------------------------------------------------------------------------
Details:
RootFS angelegt mittels:

Quellcode

1
2
$ genext2fs -U -d /usr/powerpc-unknown-linux-gnu/ -b 60000 -r 100 -i 6010 /tmp/ramdisk.img
$ gzip -v /tmp/ramdisk.img

Multi-Image erstellt mittels:

Quellcode

1
$ mkimage - A ppc -O Linux -T multi -C gzip -n 'Gentoo Multi Image' -e 0 -a 0 -d /urs/src/linux/arch/ppc/boot/images/vmlinux.gz:/tmp/ramdisk.img.gz pMulti

Komplettes Boot-Log:
EM9_GentooBootLog_20090703-1.txt

4

03.07.2009, 08:58

Sorry, da muß ich passen
Meine Rechtschreibfehler sind gewollt und unterliegen dem Copyright des Verfassers, es sei denn, sie sind explizit unter die GPL gestellt .....

Außerdem sind sie ein Ausdruck der Persönlichkeit des Schreibers!

5

03.07.2009, 11:14

Das Problem mit der Ramdisk hat sich erledigt! :)

Meine von Hand angelegte Gerätedatei wurde von udev überschrieben und der symlink gelöscht. Nun habe ich in der /etc/fstab einfach /dev/ramdisk eingetrgen und udev legt automatisch einen Symlink ramdisk -> ram0 an. So klappt es wunderbar.

Danke und schöne Grüsse
Martin

6

09.03.2011, 10:38

Es gibt auch ein /dev/root (!= deinem /dev/ROOT), damit müsste es auch funktionieren.
<Signatur beschlagnahmt>