4 votes

Comment créer et utiliser plusieurs partitions sur une carte SD externe avec différents systèmes de fichiers (Ext4, exFAT, NTFS) ?

Je veux créer 4 partitions sur une carte MicroSD externe par le biais de commandes shell ADB, pas sous Windows ou Linux. Je veux également afficher toutes les partitions dans l'interface graphique d'Android (PARAMÈTRES > STOCKAGE > SDCARD) et les rendre utilisables par toutes les applications et explorateurs de fichiers.

  1. Première partition dédiée exFAT ou NTFS ou FAT32 (celle qu'Android autorise et qui offre des performances optimales) pour stocker les applications, les photos et les médias.

  2. Deuxième partition ext4 dédié aux applications liées par Link2SD. Ou je veux des applications ou des scripts automatiques ou des outils ou des commandes pour configurer les applications principales pour qu'elles soient toujours installées sur la carte SD.

  3. Troisième partition ext4 ou NTFS ou exFAT, dédié à l'enregistrement automatique de sauvegardes aléatoires ou d'images fantômes de partitions pour différentes périodes, si possible par le biais de commandes, de scripts ou d'applications comme Titanium backup ou autres.

  4. Quatrième cloison ext4 ou NTFS ou exFAT, en dédiant à la mémoire virtuelle (comme nous le faisons pour pagefile.sys dans la partition swap de Windows ou Linux).

Si je formate la 1ère partition avec ext4 Le système Android OS ne l'affiche pas dans SETTINGS > STORAGE> SDCARD > PARTITIONS et demande de monter ou d'effacer les partitions.

Il s'agit maintenant de limiter et de préciser les questions :

  1. Une carte SD peut-elle avoir 4 partitions et Android et la carte SD le supporteront-ils ?

  2. Exemples de commandes à partitionner dans Android ; fdisk o parted ou le meilleur.

  3. Est-il nécessaire dans Android que la première partition soit FAT32 ? Ou peut-on la rendre exFAT ou NTFS sur laquelle Android Apps2SD et d'autres applications peuvent être téléchargées ?

  4. Peut-on forcer la commande mount dans certains démarrages ? init pour monter les quatre partitions ?

  5. Ce montage montrera-t-il les partitions dans les paramètres et le gestionnaire de fichiers du périphérique ?

  6. Ou pouvons-nous visualiser ces partitions via le gestionnaire de fichiers ES ou Solid Explorer ou Root Manager et prendre leurs sauvegardes également ?

Veuillez me guider vers une méthode et une procédure sûres, sécurisées, optimales et réalisables qui n'endommagent pas le matériel de l'appareil ou la carte SD.

3voto

Irfan Latif Points 16863

Quelques points sur quatre partitions :

  1. Première partition dédiée exFAT ou NTFS ou FAT32 (celle qu'Android autorise et qui offre des performances optimales) pour stocker les applications, les photos et les médias.

    Pour les applications, pensez à Classe d'application mais c'est cher. D'autres exerceront une pénalité de performance plus ou moins importante. En ce qui concerne le choix du système de fichiers, le plus gros inconvénient de la FAT32 est sa limite de taille de fichier maximale de 4 Go. Il ne dispose pas non plus d'un phénomène intégré pour gérer la fragmentation croissante, ce qui peut réduire les performances au fil du temps. Vous pouvez trouver de nombreuses ressources en ligne sur les avantages et les inconvénients de FAT32 et exFAT. Consultez également le site officiel de MS Comparaison des fonctionnalités des systèmes de fichiers .

    Est-il nécessaire dans Android que la première partition soit FAT32 ?

    Non nécessaire si votre appareil prend en charge d'autres systèmes de fichiers. FAT32 est le système par défaut d'Android pour le stockage externe secondaire (cartes SD et clés USB) depuis les premiers jours. Puisque les cartes SDXC (32GB+) sont préformatées avec la norme exFAT (bien qu'il ne s'agisse pas d'une limite technique), de nombreux OEM ajoutent la prise en charge d'exFAT à leurs appareils. Cependant, exFAT était une source fermée jusqu'à récemment Il ne fait donc pas partie de la version standard d'Android (à l'exception de certaines versions du logiciel). ajout limité dans Android 9). Mais il est maintenant très probable qu'il soit ajouté aux sources du noyau d'Android. Voir quelques détails pertinents dans cette réponse .

    Vérifiez donc si votre noyau prend en charge exFAT : grep exfat /proc/filesystems . NTFS est toujours une source fermée et n'a pas de pilote open-source stable dans le noyau. Cependant, il est possible de monter exFAT et NTFS en utilisant des pilotes FUSE. Dans chaque cas vold doit soutenir le système de fichiers.

    Ou pouvons-nous le rendre exFAT ou NTFS vers lequel Android Apps2SD et d'autres applications peuvent se télécharger ?

    Indépendamment du système de fichiers, toutes les applications n'ont pas accès en écriture à la carte SD externe, à moins que vous n'apportiez des modifications à la ROM. Voir les détails dans Comment enregistrer des fichiers sur une carte SD externe ? y Le parcours de stockage d'Android .

  2. Il existe des applications permettant de déplacer les applications non prises en charge vers la carte SD. Vous pouvez également monter manuellement une partition (ou un répertoire) de la carte SD à l'intérieur de l'application. /data . Vous avez sûrement besoin ext4 (ou f2fs sur les nouveaux périphériques) dans ce but (pour faire respecter les permissions UNIX). Mais il n'est pas nécessaire que ce soit une partition, vous pouvez placer un fichier de boucle sur la première partition.

    Essayer de modifier le manifeste d'une application (ou demander comment le faire) peut être considéré comme contraire à l'éthique ou illégal.

  3. Vous n'avez pas besoin d'une partition dédiée pour stocker les sauvegardes. La première partition peut être utilisée à la place.

  4. Si vous voulez utiliser la partition entière pour swap qui n'a pas besoin d'un système de fichiers. mkswap ). Si vous voulez créer swap à la place (ce qui n'est pas une mauvaise idée), là encore vous pouvez utiliser la première partition pour cela. Cependant, l'utilisation d'une carte SD externe pour swap n'est pas toujours une bonne idée. Sur le site zram commettre au noyau principal :

    Les systèmes embarqués sont normalement réticents à l'utilisation de l'eMMC ou de la SDCard en tant que swap car il y a un niveau d'usure.
    ...
    Bien que nous disposions d'un véritable espace de stockage, c'était aussi un problème. Parce qu'il finit parfois par rendre le système très peu réactif à cause de la lenteur des performances du stockage swap.

    Supports Android swap con zram back-end (qui crée un dispositif de blocs compressés dans la RAM) depuis Android 4.4 . Les tueurs d'OOM (old in-kernel) d'Android tueur de mémoire faible et le nouvel espace utilisateur lmkd ) ne prennent swap en compte. Si votre noyau supporte la ZRAM, l'utilisation d'une carte SD externe pour le SWAP n'est pas recommandée. Cela peut détériorer les performances et tuer la carte SD très rapidement à cause de l'augmentation des opérations d'E/S.

Si je formate la 1ère partition avec ext4 Le système Android OS ne l'affiche pas dans SETTINGS > STORAGE> SDCARD > PARTITIONS et demande de monter ou d'effacer les partitions.

Cela peut être dû à un système de fichiers non supporté (voir explication ci-dessus) ou à des partitions multiples (voir explication ci-dessous). Cependant, si une partition est montée manuellement avec les permissions appropriées, les applications sont capables de lire/écrire des fichiers à cet endroit. Vous pouvez utiliser sdcardfs ou FUSE pour émuler le système de fichiers pour les autorisations fixes. Mais de cette façon, le framework Android n'est pas au courant du système de fichiers monté et les applications Android ne seront pas notifiées du nouveau stockage. Vous ne pouvez pas non plus gérer le stockage monté à partir des paramètres de l'appareil.

Une carte SD peut-elle avoir 4 partitions et Android et la carte SD le supporteront-ils ?

Par défaut, le noyau Android prend en charge GPT, qui peut comporter jusqu'à 128 partitions. MBR supporte également 4 partitions primaires (ou plus logiques) (dans la partition étendue). En général, il n'y a pas de limite technique, mais l'espace utilisateur d'Android peut ne monter que la première partition, ou ne pas reconnaître du tout une carte SD multi-partitionnée, par exemple en raison d'un problème inconnu. type de partition y compris Linux ( 0x83 ). Bien que vold soutient partitions multiples avant Android 6 également, vous devez définir FUSE ( sdcard ) init les services, ajouter des entrées à fstab configurer le stockage dans framework-res.apk etc. Si le montage de plusieurs partitions ne fonctionne pas sans ces changements, vous devez monter des partitions (supplémentaires ou toutes) manuellement (ou reconstruire votre ROM avec le code modifié).

Ce montage montrera-t-il les partitions dans les paramètres et le gestionnaire de fichiers du périphérique ?

Non. Voir l'explication ci-dessus. Je ne suis pas sûr de ce que vous entendez par "gestionnaire de fichiers de périphériques".

Ou pouvons-nous visualiser ces partitions via le gestionnaire de fichiers ES ou Solid Explorer ou Root Manager et prendre leurs sauvegardes également ?

Oui et non ; cela dépend de comment, où et avec quelles permissions vous avez monté le système de fichiers. Voir l'explication ci-dessus. Je ne suis pas sûr de ce que vous voulez dire par "prendre leurs sauvegardes aussi".

Exemples de commandes à partitionner dans Android ; fdisk o parted ou le meilleur.

Le partitionnement fonctionne de la même manière sur tous les systèmes d'exploitation. Il existe une longue liste d'outils CLI et GUI et vous trouverez des centaines de tutoriels en ligne. En supposant que votre carte SD est répertoriée en tant que mmcblk1 et que vous voulez créer une première partition de 32 Go tout en laissant le reste pour la seconde, une doublure sur Android peut être :

~# sgdisk -Z -n 0:0:+32G -n 0:0:0 -p /dev/block/mmcblk1

Véase sgdisk page d'accueil pour une explication et plus d'options. Si nécessaire, utilisez partx -uv /dev/block/mmcblk1 pour mettre à jour le noyau des changements de table de partition, ou simplement réinsérer la carte SD.

Après le partitionnement, utilisez mkfs.fat / mkfs.exfat / mkfs.ntfs / mkfs.ext4 pour créer un système de fichiers. Tous les outils sont disponibles pour Linux et fonctionnent également sur Android.

Peut-on forcer la commande mount dans certains démarrages ? init pour monter les quatre partitions ?

Oui. Créez un init service ou init.d script. Voir les détails dans Comment lancer un exécutable au démarrage ?

1voto

alecxs Points 3105

Il suffit de partitionner et de formater à partir du shell adb (doit être umount )
(pour faire cela en récupération, supprimez toutes les chaînes de caractères /data/local y su -c de la liste des commandes)

adb push parted /data/local/tmp
adb shell chmod 0755 /data/local/tmp/parted
adb shell su -c "export PATH=$PATH:/data/local/tmp"
adb shell su -c "parted /dev/block/mmcblk1 mktable msdos"
adb shell su -c "parted /dev/block/mmcblk1 mkpart primary 1048576B 31914983423B"
adb shell su -c "mke2fs /dev/block/mmcblk1p1 -t ext4"
adb shell su -c "parted /dev/block/mmcblk1 unit B print"

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