[Problem] Gefreetzte 7390 kann kein ext3-Automount

HMZ

Neuer User
Mitglied seit
19 Jun 2006
Beiträge
70
Punkte für Reaktionen
0
Punkte
6
Hi,

seit ein paar Tagen bin ich stolzer Besitzer einer FB 7390. Als erstes habe ich mir ein aktuelles Freetz-Image aus dem Trunk gebaut, das soweit auch funktioniert. Probleme gibt es nur, wenn ich meine ext3 formatierte USB-Festplatte an die Box anschieße. Obwohl ich beim Konfigurieren meines Freetz-Images die Optionen ext2-automount und ext3-automount aktiviert habe, fängt kurz nach dem Anschließen meine Info-LED heftig an rot zu blinken. In den Systemmeldungen der Box steht dann:

Code:
11.05.11	20:21:46	USB-Gerät 2004 abgezogen
11.05.11	20:16:38	Der USB-Speicher 2004 enthält kein unterstütztes Dateisystem oder hat eine ungültige Partitionstabelle. (Das Gerät hat den folgenden Typ: 0411:002a)
11.05.11	20:16:38	Der USB-Speicher uStor01 (/dev/sda1) enthält kein unterstütztes Dateisystem oder hat eine ungültige Partitionstabelle. (Das Gerät hat den folgenden Typ: ext3)
11.05.11	20:16:24	USB-Gerät 2004, Klasse 'USB 2.0 (full-speed) storage', angesteckt

Habe ich da irgendwas übersehen?

Danke vorab für Eure Hilfe
Heiner

Nachtrag:
Die Partitionstabelle scheint in Ordnung zu sein, da die Platte unter Knoppix problemlos gemoutet wird.
 
Zuletzt bearbeitet:
Kannst du mal bitte die Ausgabe von den 2 folgenden Befehlen posten?
Code:
mount
lsmod
Wie ist die Festplatte partitioniert? Dieser Typ 0411:002a kommt mir komisch vor.

Gruß
Oliver
 
Sorry, ich habe gerade festgestellt, dass die Platte ext4 formatiert war. Nachdem ich sie mit ext3 neu formatiert habe, hat's geklappt.

Trotzdem Danke!

Heiner
 
Weiß jemand, von welchem Modul überhaupt ext4 unterstützt wird? Warum haben wir es immer noch nicht in FREETZ? Denn seit einigen Jahren gehört ext4 als quasi-Standard zumindest zu einigen Linux-Distributionen. SuSE legt bevorzugt z.B. schon seit Ewigkeiten ext4 als Standard-Formatierung. Müssen wir nicht auch langsam an der Stelle handeln?

MfG
 
Wie meinst du das? Von welchem Modul? Vom Modul "ext4". Es gibt bei Openwrt einen Patch mit dessen Hilfe ein ext4 Modul auch ext2 und ext3 Dateisysteme mounten kann. Leider können wir den schlecht aufnehmen, da nicht alle "replace kernel" machen. Und die ext2/ext3 Module bei den nächsten Firmwares fest im Kernel sind.

Gruß
Oliver
 
Ich meinte ext4 mit ext4-Modul bedienen, nicht querbet. Können wir das bereits? Ich frage nur so. Du weißt ja, ich bin leider nicht ständig hier und lese nicht überall mit.
Wie meinst du es, dass ext2/ext3 fest im Kernel sind? Nimmt AVM sie etwa wieder auf? Das ist ja interessant. Erst patchen sie die raus, jetzt haben sie endlich kapiert, dass die Welt nicht nur aus Windoof besteht. Ich erinnere mich in diesem Zusammenhang nur an die Diskussion über die Linux-Treiber zum WLAN-Stick von AVM. Damals war die Aussage, dass Linux-User nur etwa 2% der Kunden von AVM betragen, die so einen WLAN-Stick nutzen. Wegen diesen ein Paar Idioten werden wir doch nicht unsere Treiberquellen Preis geben (darum ging es damals). Und jetzt geben sie still zu, dass die Paar Idioten mit deren Linux doch eine Rolle spielen. Sonst würde mal ja nicht ext2/3 wieder einführen.

MfG
 
Wir haben ext4 nicht aktiviert. Es ist ab 2.6.19 im Kernel enthalten. Die alten Boxen würden also raus fallen.

Fest heißt, fest und nicht als Modul.
 
Kann man ext4 nicht Boxabhängig in menuconfig aufnehmen? Die breite Masse hat sowieso heutzutage mindestens eine 7270-Box, oder ähnliches, was 2.6.19 bereits hat. Dann wissen die anderen eben, dass eine 7170 z.B. ext4 nicht kann. Aber generell deswegen ext4 nicht aktivieren finde ich schade.
Was heißt denn Klartext "wir haben ext4 nicht aktiv"? Kann man es ohne replace kernel als Modul wenigstens für die Boxen mit 2.6.19 aktivieren? Oder benötigt ext4 auf jeden Fall "replace kernel"?

MfG
 
Wir haben ext4 nicht aktiviert. Es ist ab 2.6.19 im Kernel enthalten.
In Wikipedia steht dazu: "Testversion seit: Linux 2.6.19, Final: Linux 2.6.28".
Ich würde lieber ext3 oder ein anderes Dateisystem nehmen, statt die erste Testversion, die im Kernel enthalten war.
Außerdem sind in verschiedenen Kernel-Versionen neue Features dazu gekommen, es ist nicht einmal sicher ob die Version aus 2.6.19 überhaupt ein EXT4 mounten kann, das mit 2.6.28 erstellt wurde.
 
Danke, Ralf! Jetzt hast du alle wieder aufgeklärt und auf den Stand gebracht.
Ich hatte ja wieder ganz vergessen, dass wir AVM sei dank mit den Kernel-Versionen auf den Boxen ziemlich weit hinterher kriechen. In der PC-Linuxwelt kennt kaum einer schon 2.6.19, geschweige 2.6.13, die wir auf der 7170 haben. Und diejenigen, die es noch kennen, gehören schon fast in die Rente in dem Zeitalter der Kernelisierung. Von daher hast du wie immer Recht. Vergessen wir es mit ext4 für die nächsten 2-3 Jahre.

MfG
 
Die nächsten Firmwares von AVM werden die Kernelversionen 2.6.28 und 2.6.32 bringen. Ich denke, dass wir ext4 also höchstens für ein paar Wochen aufschieben können.

Gruß
Oliver

edit:
Code:
--- make/mod/files/root/usr/lib/libmodmount.sh	(revision 6985)
+++ make/mod/files/root/usr/lib/libmodmount.sh	(working copy)
@@ -120,14 +120,10 @@
 			mount -t vfat -o $rw_mode,uid=$ftp_uid,gid=$ftp_gid,fmask=0000,dmask=0000 $dev_node $mnt_path
 			err_mo=$?
 			;;
-		ext2)
-			mount -t ext2 $dev_node $mnt_path -o noatime,nodiratime,rw,async
+		ext2|ext3|ext4)
+			mount $dev_node $mnt_path -o noatime,nodiratime,rw,async
 			err_mo=$?
 			;;
-		ext3)
-			mount -t ext3 $dev_node $mnt_path -o noatime,nodiratime,rw,async
-			err_mo=$?
-			;;
 		ntfs)
 			[ -n "$ntfs_bin" ] && { $ntfs_bin $dev_node $mnt_path -o force ; err_mo=$? ; } || err_mo=111
 			;;
Funktioniert sowas oder kann es passieren, dass z.B. ein ext3 als ext2 gemountet wird?
 
Zuletzt bearbeitet:
Normalerweise sollte es funktionieren.
Auf einem neueren Kernel (2.6.34) habe ich nur das Modul ext4 geladen, aber ext2,ext3,ext4 in /proc/filesystems stehen.

Alternativ können wir $fs_type mit angeben, dann haben wir genau den gleichen Effekt wie vorher. Man könnte dann auch gleich noch reiserfs mit unterbringen:
Code:
ext2|ext3|ext4|reiserfs)
    mount -t $fs_type $dev_node $mnt_path -o noatime,nodiratime,rw,async
 
Leider haben wir mit der Erkennung von ext4 ein Problem. fstyp kann das nicht und busybox volume_id auch nicht. Wobei wir dann wieder bei blkid wären. Ich habe gerade noch "fstype" im Paket klibc-utils gefunden. Mal schauen wie groß das compiled.

Gruß
Oliver
 
Es gibt sicher eine Möglichkeit ext4 zu erkennen, die man auch in Busybox nachrüsten kann. Notfalls wird der Eintrag unter "*" ausgeführt, der ohne Angabe eine Typs mountet.

Dabei ist mir nebenbei folgendes aufgefallen, in /usr/lib/libmodmount.sh:
Code:
        local ntfs_bin="/bin/ntfs-3g"
...
                ntfs)
                        [ -n "$ntfs_bin" ] && { $ntfs_bin $dev_node $mnt_path -o force ; err_mo=$? ; } || err_mo=111
Mit -n wird überprüft, ob der String "$ntfs_bin" nicht leer ist, das kann er aber gar nicht sein, weil vorher ein konstanter Wert zugewiesen wurde. Vermutlich sollte es an dieser Stelle -x heißen.
 
Code:
   if (ext2magic(sb.e2s) == EXT2_SUPER_MAGIC
        || ext2magic(sb.e2s) == EXT2_PRE_02B_MAGIC
        || ext2magic(sb.e2s) == swapped(EXT2_SUPER_MAGIC)) {
         type = "ext2";

         /* maybe even ext3? */
         if ((assemble4le(sb.e2s.s_feature_compat)
              & EXT3_FEATURE_COMPAT_HAS_JOURNAL) &&
             assemble4le(sb.e2s.s_journal_inum) != 0)
                 type = "ext3";

[I]        /* or even ext4? */
        if ((assemble4le(sb.e2s.s_feature_incompat)
              & EXT3_FEATURE_INCOMPAT_UNSUPPORTED) ||
            (assemble4le(sb.e2s.s_feature_ro_compat)
              & EXT3_FEATURE_RO_COMPAT_UNSUPPORTED))
                 type = "ext4";[/I]
        }
Ich habe versucht die für ext4 notwendigen Änderungen an fstyp vorzunehmen. Auf dem PC wird mir auch ext4 für meine Partition angezeigt. Ich bin mir jedoch nicht sicher, ob man die zweite Abfrage für ext3 (sb.e2s.s_journal_inum != 0) oder noch eine weitere Überprüfung einbauen muss?

Gruß
Oliver
 
@Ralf: Das ist "historisch gewachsen" und kann eigentlich mittlerweile raus. Vor ntfs-3g gab es auch ntfs-Unterstützung als Modul, wenn ich mich nicht irre. Auf jeden Fall gab es AVM-Binary (oder eben Modul), was ntfs (ohne 3g) hies und unsere FREETZ-eigene Lösung "ntfs-3g", wobei sie auch noch meines Erachtens an unterschiedlichen Orten (/bin und /usr/bin) lagen. Irgendwo vorher gab es ursprünglich eine Bedingung, die gecheckt hat, welche von beiden Binaries da existieren und je nach dem Ergebnis war dann die Variable gefüllt. Wenn aus irgendeinem Grund (alles rausgepatcht) keine der beiden Binaries gefunden wurde, dann war die Variable leer. Daher kommt dieser check mit -n.

Ich würde mal sagen, da hat wieder einer zu viel wegoptimiert, ohne sich tief in die Materie einzusteigern. Ich gebe zu und nehme die ganze Schuld auf mich: Meine Skripterei ist sehr unleserlich und kaum verständlich. Daran lag es vermutlich.

MfG
 
Vermutlich hab ich oder cuma beim wegoptimieren nicht genau hingeschaut. ;-)

Stand der Dinge:
Code:
root@fritz:~# ./fstyp /dev/sda3
ext3
root@fritz:~# ./tune2fs -O extents,uninit_bg,dir_index /dev/sda3
tune2fs 1.41.14 (22-Dec-2010)
root@fritz:~# ./fstyp /dev/sda3
ext4
root@fritz:~# mount -t ext4 /dev/sda3 /var/media/ftp/uStor03
mount: mounting /dev/sda3 on /var/media/ftp/uStor03 failed: Invalid argument
Warum klappt das mounten trotz geladenem Modul nicht?

Gruß
Oliver
 
Vielleicht liegt es an den Dingen, die Ralf bereits angesprochen hat, dass man nicht unbedingt erwarten sollte anderswo formatierte ext4 mit diesen "halbfertigen" Kernels einzubinden?
Die Meldung klingt aber zumindest für mich so, als ob mount an sich Probleme mit dem Argument "ext4" hat. Vielleich findet innerhalb von mount eine Plausibilisierung gängiger Systeme statt und da ist einfach noch nicht ext4 eingepflegt?

MfG
 
Das war von einer 7270 mit Kernel 2.6.32.21. Da ist ext4 "fertig".

Gruß
Oliver

edit: Am PC mountet die Partition ohne Probleme. Auf der Box jedoch nicht:
Code:
root@fritz:/# mount -t ext4 /dev/sda3 /var/media/ftp/uStor03/
getblk(): invalid block size -1751726592 requested
logical block size: 512
EXT4-fs (sda3): unable to read superblock
mount: mounting /dev/sda3 on /var/media/ftp/uStor03/ failed: Invalid argument
 
Zuletzt bearbeitet:
Ich gebe zu und nehme die ganze Schuld auf mich: Meine Skripterei ist sehr unleserlich und kaum verständlich.

Es geht hier nicht darum, wer "Schuld" an etwas hat, sondern nur darum, dass es in der jetzigen Form so nicht mehr sinnvoll ist, und wenn man schon dabei ist, die Datei zu ändern, kann man das auch gleich mit anpassen.

Was das Mounten betrifft, "block size -1751726592" ist tatsächlich ungewöhnlich. Da müsste man mal nachverfolgen, wo das herkommt.
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.