2 votes

Pourquoi stat indique-t-il qu'il n'y a pas d'espace sur / (Root) mais de l'espace disponible sur /system ?

Sur mon téléphone Android 4.4.2 Samsung Galaxy S4 avec chipset armv7l, si je démarre un shell, je peux utiliser la fonction stat mais certains dispositifs signalent des anomalies. En particulier, le / Le périphérique affiche une taille nulle, des blocs nuls, alors qu'en tant que /system rapporte des numéros valides :

root@jfltevzw:/ # stat /
stat /
  File: /
  Size: 0           Blocks: 0          IO Block: 4096   directory
Device: 1h/1d   Inode: 1           Links: 31
Access: (0755/drwxr-xr-x)  Uid: (    0/ UNKNOWN)   Gid: (    0/ UNKNOWN)
Access: 1970-01-01 00:00:00.000000000
Modify: 2015-04-25 00:48:54.000000000
Change: 2015-04-25 00:48:54.000000000

root@jfltevzw:/ # stat /system
stat /system
  File: /system
  Size: 4096        Blocks: 8          IO Block: 4096   directory
Device: b310h/45840d    Inode: 2           Links: 25
Access: (0755/drwxr-xr-x)  Uid: (    0/ UNKNOWN)   Gid: (    0/ UNKNOWN)
Access: 1970-01-01 00:00:00.000000000
Modify: 2015-01-10 01:52:27.000000000
Change: 2015-01-10 01:52:27.000000000

En regardant mes montages, je vois ces deux entrées :

/dev/block/platform/msm_sdcc.1/by-name/system /system ext4 rw,seclabel,relatime,data=ordered 0 0
rootfs / rootfs rw,relatime 0 0

Pourquoi ma partition racine s'affiche via stat comme n'ayant pas d'espace disponible. Existe-t-il un moyen de déterminer de manière fiable l'espace disponible à partir d'une commande shell ou via un point d'entrée C tel que statvfs() qui rapporte également zéro espace disponible pour mon application.

1voto

moonbutt74 Points 663

stat rapporte 0 espace/blocs sur / car / = ramdisk qui vit dans la RAM, la RAM n'est pas un périphérique de bloc. Votre disque ram réel vit dans le stockage avec votre noyau et dt.img sur une partition emmc spécifique nommée boot .

La combinaison du ramdisk, du binaire du noyau et du dt.img (binaire de l'arbre des périphériques) sont connus collectivement comme votre boot.img

L'image d'amorçage contient également quelques répertoires réels [real] qui fonctionnent comme des emplacements, ils sont généralement /data /dev /proc /system.

Votre ramdisk contient également la configuration *.rc et *.sh nécessaire et les scripts shell nécessaires pour démarrer votre appareil et établir/amorcer votre système d'exploitation. Le ramdisk contient également la configuration de la politique selinux de votre appareil, les fichiers sepolicy et context, enfin votre ramdisk contient le répertoire /sbin, qui est l'endroit où vit le daemon adb et généralement les binaires charger, healthd, et ueventd et tout binaire spécifique au fabricant lié aux services, généralement la sécurité. Le ramdisk/ramdrive est temporaire et est vidé de la mémoire lorsque vous éteignez ou redémarrez, et rechargé à l'endroit désigné dans la mémoire lorsque votre appareil redémarre.

-1voto

Abbas Elmas Points 182

Pensez-y comme à Windows. Sur le même disque dur de 1 To. Vous pouvez avoir C:\ et D:\ en même temps sur le même disque. Vous ne pouvez pas simplement chercher l'espace libre de tous.

Sur Android, il y a des partitions sur mmc

/cache /données /système etc.

chacun a ses propres informations ; recherchez-les.

Je vais joindre quelques captures d'écran de mon N7000 de 16 Go et de ses partitions. Peut-être que ces images vous mèneront quelque part.

(Cliquez sur l'image pour l'agrandir)

IMG: cat paritions IMG: cat mounts IMG: cat mountstats

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X