Aller au contenu

[Résolu] [E1031] Récupérer des inodes sur une partition system saturée


zrt22

Recommended Posts

Ton explication est clair mais dans ce cas la partitipn actuelle systeme de la tablette est de 512 Mo
mtd8: 20000000 00004000 "system" = Hex 20000000 dec 524288 = 512 Mo
et elle est pleine à 233 Mo.
Donc est ce que de reformater la Nand va vraiment changer quelque chose ?
Ou le bridage est ailleurs?

Modifié par Titi66200E
Lien vers le commentaire
Partager sur d’autres sites

Tu n'as pas lu le sujet complètement, Titi66200E (celui-ci et un autre sujet sur les Logicom ou le problème est aussi expliqué). Le problème n'est absolument pas la taille de la partition /system mais les paramètres qui ont été utilisés lors de son formatage en usine. Un nombre très réduit d'inodes a été choisi, ce qui réduit énormément le nombre de fichiers/dossiers/liens que l'on peut avoir dans le filesystem. Chaque fichier/dossier ou lien consomme au moins un inode quelle que soit sa taille (l'inode étant l'endroit où sont stockées ce qu'on appelle les métadonnées du fichier : sa taille, ses protections, sa date de création/modification etc.).

Donc bien avant que /system soit rempli, on se heurte à cette limite.

Lien vers le commentaire
Partager sur d’autres sites

Pour ajouter une précision Lannig, en plus du peu d'inode restant, la partition /system n'avait de base qu'un Mo de libre. Il a aussi fallu ôter quelques applications dispensables de /system/app pour y mettre le store, superuser, su et busybox. Pas aussi problématique que de récupérer des inodes, mais à noter tout de même.

Lien vers le commentaire
Partager sur d’autres sites

Pas 512 Mo... 233 ! :emo_im_undecided:  On dirait qu'ils l'ont faite sur mesure.

 

Le premier df que j'ai fais quand je l'ai eu :

Filesystem             Size   Used   Free   Blksize
/system               233.4M  232.4M  1.0 M   1024

De ce que j'ai vu, ça varie d'un modèle à l'autre (taille et inode). C'est un peu la loterie.

Lien vers le commentaire
Partager sur d’autres sites

C'est apparemment ça. Le block mtd8 fait bien 512Mo (d'après le dump en manuel) mais /system ne fait que 233Mo. -_-

Alors reformater la partition résoudrait sans doute 2 problèmes d'un coup.

Sont vraiment nuls chez Logicom :)

 

Tu attends un make_ext4fs de ma part ou pas ? je ne sais plus où on en est là-dessus.

Modifié par Lannig
Lien vers le commentaire
Partager sur d’autres sites

Le reste du block n'est pas utilisé pour autre chose ? :huh:  Si c'est pas le cas ... <_<

 

Tu attends un make_ext4fs de ma part ou pas ? je ne sais plus où on en est là-dessus.

Oui, et la méthode pour formater ensuite. :P

Modifié par zrt22
Lien vers le commentaire
Partager sur d’autres sites

Le reste du block n'est pas utilisé pour autre chose ? :huh:  Si c'est pas le cas ... <_<

 

C'est probable si le dump image de la partition system fait bien 512Mo.

Oui, et la méthode pour formater ensuite. :P

OK mais cela nécessite un peu de recherche et de réflexion de ma part, donc sans doute pas avant ce week-end.
Lien vers le commentaire
Partager sur d’autres sites

 C'est probable si le dump image de la partition system fait bien 512Mo.

À l'hex editor, la seconde moitié du dump est bien remplie de FF pour dire d'atteindre les 512Mo en tout cas. Ce serait bête de laisser 279Mo non-alloués mais en même temps, ça ne me surprendrait pas plus que ça... -_-

 

OK mais cela nécessite un peu de recherche et de réflexion de ma part, donc sans doute pas avant ce week-end.

Ça me va, je ne suis pas pressé. Merci pour ton aide :)

Lien vers le commentaire
Partager sur d’autres sites

Pour ce qui est du make_ext4fs, voici celui qui vient du dump de ma eZee'Tab'704 : http://www.mediafire.com/download/9w5sy5mcey75wkh/make_ext4fs.zip

- processeur différent (mais toujours ARM v7)

- version du kernel différente (mais cela m'étonnerait beaucoup que cela joue)

- potentiellement linké avec une librairie C différente (à moins que ce soit un binaire statique, je ne suis pas allé voir)

malgré tout cela je pense qu'il devrait marcher. En tous cas si l'exécutable se lance (ne crache pas une erreur "shared library bla bla bla") il est quasiment certain qu'il fera le boulot.

Pour ce qui est de son utilisation, tu peux chercher un peu dans Google, sinon on fait le point ce w-e.

 

EDIT : zip réuploadé (lien modifié ci-dessus) car le binaire n'est pas linké statiquement, donc il a besoin (au moins) d'une librairie libext4utils.so incluse dans le zip et à mettre là où sont les librairies .so dans le ramdisk du recovery.

Si tout est linké statiquement dans le recovery (pas du tout de librairie .so) alors c'est cuit, make_ext4fs ne pourra pas tourner dans ce contexte et il faudra s'en passer. Cela veut dire trouver comment le menu de recovery procède quand on lui demande de reformater une partition, ou alors passer par ce menu sans se poser de question pour reformater /system et espérer que lui mettra une quantité de inodes raisonnable (probable).

Modifié par Lannig
Lien vers le commentaire
Partager sur d’autres sites

EDIT : zip réuploadé (lien modifié ci-dessus) car le binaire n'est pas linké statiquement, donc il a besoin (au moins) d'une librairie libext4utils.so incluse dans le zip et à mettre là où sont les librairies .so dans le ramdisk du recovery.

Si tout est linké statiquement dans le recovery (pas du tout de librairie .so) alors c'est cuit, make_ext4fs ne pourra pas tourner dans ce contexte et il faudra s'en passer. Cela veut dire trouver comment le menu de recovery procède quand on lui demande de reformater une partition, ou alors passer par ce menu sans se poser de question pour reformater /system et espérer que lui mettra une quantité de inodes raisonnable (probable).

J'ai essayé d'ajouter le make_ext4fs de ton premier lien au CWM et j'obtiens "/sbin/sh: make_ext4fs: not found" quand j'essaie de l'appeler, où que ce soit (la commande est bien dans /sbin). /sbin/sh est un lien symbolique vers busybox pour info.

Je n'ai pas de .so dans le ramdisk, donc c'est raté. Celle ci ne pourrait pas faire l'affaire ?

 

Je ne vois que mke2fs comme commande de formatage mais en l'appelant, les options n'indiquent pas le -t que j'ai vu sur le net, -T renvoie le fs-type :

Usage: mke2fs [-c|-l filename] [-b block-size] [-f fragment-size]
        [-i bytes-per-inode] [-I inode-size] [-J journal-options]
        [-G meta group size] [-N number-of-inodes]
        [-m reserved-blocks-percentage] [-o creator-os]
        [-g blocks-per-group] [-L volume-label] [-M last-mounted-directory]
        [-O feature[,...]] [-r fs-revision] [-E extended-option[,...]]
        [-T fs-type] [-U UUID] [-jnqvFKSV] device [blocks-count]

Au pire ce sera via le menu, c'est difficile d'imaginer qu'il ne mettrait qu'1.4k inodes pour une partition comme ça.

 

@ZRT22

Preneur pour ton recovery

Sinon quelqu'un sait comment démonter la partition system car j'ai lu sur un site qu'il était peut être possible de modifier les inodes.

Je te l'upload dès que je le termine.

Le CWM Recovery permet de monter et démonter /system sinon.

Lien vers le commentaire
Partager sur d’autres sites

@Titi66200E : on ne peut pas démonter  /system en ayant démarré dessus, il faut avoir démarré depuis "autre chose" (en général un recovery) de la même façon qu'on ne peut pas reformater C: sur un PC sans un CD Live.

 

@zrt22 : j'ai l'impression que j'ai écrit pas mal d'âneries :( . Visiblement make_ext4fs ne sert que à faire des images de filesystems, il ne peut pas être utilisé pour formater une partition. C'est le mke2fs qui fait partie de ton ramdisk CWM Recovery qu'il faut utiliser, avec l'option "-t ext4" comme tu l'avais suggéré toi-même je crois.

 

Donc à ce stade si tu veux te lancer :

- boot sur CWM Recovery

- soit reformatage de /system depuis le menu de CWM Recovery, soit en ligne de commande par ADB :

mke2fs -t ext4 /dev/block/mtdblock8

- montage de /system depuis le menu de CWM Recovery ou :

mount -t ext4 /dev/block/mtdblock8 /system

- redescente de ton tar :

cd /

tar xpzf /sdcard/<la-ou-il-est>/system.tgz

- demontage de /system depuis le menu de CWM Recovery ou :

umount /system

 

Reboot en croisant les doigts.

 

EDIT : commandes corrigées !

Modifié par Lannig
Lien vers le commentaire
Partager sur d’autres sites

@Lannig

 

Ha, j'ai vu la première version des commandes et je me demandais quoi :P C'est mieux avec mtdblock8 !

 

Seul point où je me questionne maintenant : à la redescente du backup, le system.tgz, c'est celui du dump ? Car celui du backup nandroid est en .tar(.a)

Edit : Probablement le dump, vu le z

 

Je refais mon CWM Recovery sans make_ext4fs et je le teste avant d'y aller. :)

Modifié par zrt22
Lien vers le commentaire
Partager sur d’autres sites

@zrt22 : les deux sont utilisables, je pense. Le tar.a du backup nandroid doit être aussi un tar compressé bien que son nom ne comprenne pas 'z' (à vérifier'). Sinon enleve le 'z' :

 

tar xpf /sdcard/<la-ou-il-est>/system.ext4.tar.a

(je crois, pas sûr du nom exact)


@zrt22 : oui c'est sans doute l'option -T et pas -t pour ta version de mk2efs.

Ca a varié d'une version à l'autre, c'est assez énervant.

 

Le binaire make_ext4fs vers lequel tu as donné un lien plus haut est un binaire Intel x86 :)

Modifié par Lannig
Lien vers le commentaire
Partager sur d’autres sites

Hm, mke2fs ne me fait que 1024 inodes par défaut. L'option -I me limite de 128 à 1024 inodes et via ratio (-i), c'est minimum 1024, ce qui donne 4096 inodes. C'est peu je trouve (mais assez pour mon utilisation). Quelque chose m'échappe ? :huh:

 

Avec -t, j'obtiens ça :

mke2fs 1.41.14 (22-Dec-2010)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
1024 inodes, 4096 blocks
204 blocks (4.98%) reserved for the super user
First data block=1
Maximum filesystem blocks=4194304
1 block group
8192 blocks per group, 8192 fragments per group
1024 inodes per group

Avec -T :

mke2fs 1.41.14 (22-Dec-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
256 inodes, 1024 blocks
51 blocks (4.98%) reserved for the super user
First data block=0
1 block group
32768 blocks per group, 32768 fragments per group
256 inodes per group

Je crois qu'il faut préciser la taille de la partition... :)

Modifié par zrt22
Lien vers le commentaire
Partager sur d’autres sites

Après la galère:

C:\Adb>adb shell busybox df -hi /system
Filesystem              Inodes      Used Available Use% Mounted on
/dev/block/mtdblock8     32.0k      1.4k     30.6k   4% /system

C:\Adb>adb shell df /system
Filesystem             Size   Used   Free   Blksize
/system               503.9M  227.1M  276.9M   4096

Lien vers le commentaire
Partager sur d’autres sites

Sauf erreur (je n'ai pas mes références habituelles sous les yeux) :

-i <bytes-per-inode>

-I <inode-size>

 

Il fait donc diminuer la valeur passée à -i (petit i) et aussi celle passée à -I (grand I) pour avoir le maximum d'inodes.

Je te suggère : -i 1024 -I 256

Lien vers le commentaire
Partager sur d’autres sites

Rejoignez la conversation

Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.

Invité
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...