Comment obtenir une partition racine plus grande sur Touch


9

J'essaie de faire fonctionner Touch (14.10) en tant que serveur Ubuntu. Cependant, la partition racine ne fait que 2 Go et est insuffisante pour les packages que j'ai besoin d'installer. Existe-t-il un moyen d'obtenir plus d'espace sur la partition racine?

Jusqu'à présent, j'ai essayé:

  • resize2fs sur / dev / loop0 ne fonctionnera pas car le noyau ne prend pas en charge le redimensionnement en ligne et je ne peux pas démonter root (ro ne le coupe pas, même avec -f).

  • L'ajout de 2 Go à la fin de /userdata/ubuntu.img fonctionne, mais resize2fs sur le fichier n'aide pas.


C'est une question très intéressante pour un nouvel utilisateur. Bienvenue dans la communauté.
Akiva

Réponses:


1

J'ai eu un problème similaire, j'ai finalement décidé de déplacer mon /usrvers /home/usr( /homeest monté à partir du système de fichiers 14G, ce qui me donne beaucoup d'espace pour des packages supplémentaires).

C'est une façon un peu hackée de le faire, mais cela semble fonctionner pour moi. Les exemples de code suivants sont utilisés $pour indiquer que la commande doit être exécutée en tant qu'utilisateur normal et #pour indiquer le rôle d'utilisateur root (qui peut être obtenu par sudo ou loggig en tant que root).

  1. Définissez le mot de passe de l'utilisateur root, vous aurez besoin de pouvoir vous connecter en tant que root au cas où vous feriez quoi que ce soit avec votre /usr/bin/sudo. Faire cela:

    $ sudo su
    # passwd
    
  2. Copiez le contenu de la /usrpréservation de la propriété et des autorisations:

    $ cd /usr
    $ sudo find . -depth -print0 | sudo cpio --null --sparse -pvd /home/usr/
    
  3. La prochaine étape logique serait d'utiliser fstabpour monter /home/usrcomme /usrau démarrage, cependant toutes les modifications que j'ai essayé d'apporter à fstabdisparaissaient après le redémarrage d'Ubuntu. J'ai donc créé un script simple pour faire le montage et l'ai enregistré sous /etc/init.d/bind.sh:

    #!/bin/sh
    if [ "X$1" = "Xstart" ]; then
      echo "Binding /home/usr to /usr..."
      chmod 4755 /home/usr/bin/passwd /home/usr/bin/chsh /home/usr/bin/pkexec /home/usr/bin/sudo /home/usr/bin/newgrp /home/usr/bin/gpasswd /home/usr/bin/chfn /home/usr/lib/pt_chown /home/usr/lib/eject/dmcrypt-get-device /home/usr/lib/openssh/ssh-keysign /home/usr/lib/dbus-1.0/dbus-daemon-launch-helper /home/usr/lib/policykit-1/polkit-agent-helper-1 /home/usr/lib/arm-linux-gnueabihf/oxide-qt/chrome-sandbox /home/usr/lib/arm-linux-gnueabihf/lxc/lxc-user-nic
      mount -o bind,suid /home/usr /usr
      echo "...done"
    fi 
    

    La ligne chmod est nécessaire, comme je l' ai remarqué suid bitest parfois manquant après le montage. La liste des fichiers sur lesquels le suid bitjeu était activé peut être trouvée en s'exécutant # find /usr -user root -perm -4000sur le /usrrépertoire d' origine . Veuillez noter que si vous installez quelque chose par la suite qui utilise le, suid bitil peut devenir cassé à moins que vous ne l'ajoutiez à la liste.

    Vous devrez créer un lien symbolique /etc/rcS.dpour bind.sh:

     # ln -s /etc/init.d/bind.sh /etc/rcS.d/S36bind.sh
    

    Remarque: vous pouvez choisir un nombre différent de 36 selon l'état de votre /etc/rcS.d.

    Alternativement, vous pouvez éditer /lib/init/fstabcomme décrit ici pour avoir des changements persistants dans fstab.

  4. Après le redémarrage, le système devrait maintenant être utilisé /home/usr, /usralors j'espère que vous devriez avoir plus d'espace pour des packages supplémentaires. Notez que l'ancien /usrexiste toujours mais est inaccessible tant que le nouveau répertoire est monté.

    En cas de problème, vous pouvez revenir à l'état précédent en renommant le lien symbolique /etc/rcS.det en redémarrant:

     # mv /etc/rcS.d/S36bind.sh /etc/rcS.d/K36bind.sh
    

voir "Xstart" dans votre solution proposée m'a fait penser que ce n'est pas quelque chose que vous avez fait sur un appareil Ubuntu Touch, n'est-ce pas?
Kris Jace


2

Voici le moyen le plus rapide que j'ai trouvé pour le faire.

Avertissement : cela peut casser votre téléphone s'il n'est pas tapé correctement. Assurez-vous d'avoir des sauvegardes complètes avant de commencer et êtes prêt à faire des erreurs au cas où vous perdriez toutes les données sur votre téléphone. Cet exemple de commande redimensionne le système de fichiers racine à 6 Go, donc s'il est déjà plus grand que cela, il sera tronqué et votre téléphone deviendra probablement non amorçable (jusqu'à ce qu'il soit réimagé). Utilisez cette commande uniquement si votre image du système de fichiers racine est inférieure à 6 Go (la valeur par défaut d'Ubuntu Touch est 2 Go).

$ sudo -s
# dd if=/dev/null of=/userdata/ubuntu.img bs=1M seek=6000 count=0
# resize2fs -f /userdata/ubuntu.img
# reboot

pouvez-vous m'expliquer un peu mieux, comment ça marche?
Alko

@Alko, voici également une réponse plus complète contenant des informations pour Touch.
Scrooge McDuck

0

Ok, voici comment je l'ai fait sur mon meizu pro5. Votre kilométrage peut varier.

O et vous pouvez briquer votre téléphone.

Prenez ce guide comme un indice pour votre chemin à suivre. Ne reviens pas pleurer.

Faites fabriquer un nouveau téléphone par ubuntu-device-flash. Dans le téléphone, vous devriez avoir une carte SD suffisamment grande pour contenir les fs de la partition userdata plus 512M plus 700M pour la partition personnalisée et cache.

  • mettez twrp3.0 comme image de récupération.
  • utilisez fdisk -l / dev / block / sda pour voir les partitions.
  • enregistrez ce rapport. Vous devez avoir les 4 dernières partitions en tant que système, personnalisé, cache et données utilisateur.
  • mkdir / tmp / userdata
  • mount / dev / block / sda44 (pour moi c'était 44) / tmp / userdata
  • cd / tmp
  • tar -czf /external_sd/userdata.tar.gz userdata
  • umount / tmp / userdata
  • dd if = / dev / block / sda43 of = / externa_sd / cache.img
  • dd if = / dev / block / sda42 of = / externa_sd / custom.img

Vous avez maintenant enregistré les données, maintenant pour refaire les partitions, nous allons utiliser le fdisk d'ubuntu car le fdisk de twrp n'est pas assez bon.

  • mkdir / tmp / ubuntu
  • mount -o loop /system/var/lib/lxc-andoid/system.img / tmp / ubuntu
  • mknod -m 666 b 8 0 / tmp / ubuntu / dev / sda
  • chroot / tmp / ubuntu / sbin / fdisk / dev / sda

Vous supprimez les 41,42,43,44 partitions et créez:

  • un nouveau 41 partant du même endroit mais en plus grand.
  • un nouveau 42 commençant après 41 avec la même taille que l'ancien 42.
  • un nouveau 43 commençant après 42 avec la même taille que l'ancien 43.
  • un nouveau 44 commençant après 43 et se terminant sur le même secteur que l'ancien 44.
  • enregistrer la nouvelle table de partition
  • umount / tmp / ubuntu

Remettez les données utilisateur, personnalisées et cache.

  • dd if = / externa_sd / cache.img of = / dev / block / sda43
  • dd if = / externa_sd / custom.img of = / dev / block / sda42
  • créer un nouvel ext4 sur 44: mke2fs / dev / block / sda44
  • mount / dev / block / sda44 / tmp / userdata
  • cd / tmp
  • tar -xzf /external_sd/userdata.tar.gz
  • umount / tmp / userdata
  • umount / tmp / ubuntu
  • umount / system
  • augmentez maintenant la partition système: resize2fs / dev / block / sda41

Vous devriez maintenant avoir une plus grande partition racine dans votre système ubuntu-touch.

S'amuser.


0

Après un peu plus de jeu, voici ce que vous devez savoir et faire.

Ubuntu touch démarre à partir d'un appareil Android, les partitions doivent donc être appropriées.

Le système Android identifie les partitions par l' étiquette de partition .

Vous avez pour meizu pro 5 ces partitions: système (la partition racine), cache (utilisé pour les mises à jour par Ubuntu, vous devriez avoir environ 1G dessus), personnalisé (aucune idée de ce qui est utilisé pour), userdata (utilisé pour / home et beaucoup d'autres dossiers qui sont montés avec des liens vers différentes parties de la racine)

phablet@ubuntu-phablet:~$ sudo fdisk /dev/sda

Welcome to fdisk (util-linux 2.25.2).

Changes will remain in memory only, until you decide to write them.

Be careful before using the write command.


Command (m for help): x

Expert command (m for help): p
Disk /dev/sda: 58.2 GiB, 62537072640 bytes, 15267840 sectors
Units: sectors of 1 * 4096 = 4096 bytes
Sector size (logical/physical): 4096 bytes / 16384 bytes
I/O size (minimum/optimal): 16384 bytes / 8192 bytes
Disklabel type: gpt
Disk identifier: 00042021-0408-4601-9DCC-xxxxxxxxxxx
First LBA: 6
Last LBA: 15267834
Alternative LBA: 15267839
Partitions entries LBA: 2
Allocated partition entries: 128

Device       Start      End Sectors Type-UUID                            UUID                                 Name      Attrs
/dev/sda1     1024     1279     256 EBD0A0A2-B9E5-4433-87C0-xxxxxxxxxxxx D117F98E-6F2C-D04B-A5B2-xxxxxxxxxxxx private   
/dev/sda2     1280     1343      64 EBD0A0A2-B9E5-4433-87C0-xxxxxxxxxxxx 25718777-D0AD-7443-9E60-xxxxxxxxxxxx proinfo   
/dev/sda3     1344     1407      64 EBD0A0A2-B9E5-4433-87C0-xxxxxxxxxxxx 8A4BB8B4-E304-AE48-8536-xxxxxxxxxxxx misc      
/dev/sda21    2048     3071    1024 EBD0A0A2-B9E5-4433-87C0-xxxxxxxxxxxx 08992135-13C6-084B-9322-xxxxxxxxxxxx param     
/dev/sda22    3072     5119    2048 EBD0A0A2-B9E5-4433-87C0-xxxxxxxxxxxx 333A128E-D3E3-B94D-92F4-xxxxxxxxxxxx efs       
/dev/sda23    5120     5631     512 EBD0A0A2-B9E5-4433-87C0-xxxxxxxxxxxx F20AA902-1C5D-294A-9177-xxxxxxxxxxxx pnv       
/dev/sda24    5632     6655    1024 EBD0A0A2-B9E5-4433-87C0-xxxxxxxxxxxx DB88503D-34A5-3E41-836D-xxxxxxxxxxxx ldfw      
/dev/sda25    6656     7679    1024 EBD0A0A2-B9E5-4433-87C0-xxxxxxxxxxxx 012B3303-34AC-284D-99B4-xxxxxxxxxxxx dtb       
/dev/sda26    7680    13823    6144 EBD0A0A2-B9E5-4433-87C0-xxxxxxxxxxxx FAEC2ECF-8544-E241-B19D-xxxxxxxxxxxx bootimg   
/dev/sda27   13824    22015    8192 EBD0A0A2-B9E5-4433-87C0-xxxxxxxxxxxx F13A0978-B1B5-1A4E-8821-xxxxxxxxxxxx recovery  
/dev/sda28   22016    30207    8192 EBD0A0A2-B9E5-4433-87C0-xxxxxxxxxxxx B710EB04-45B9-E94A-8D0B-xxxxxxxxxxxx bootlogo  
/dev/sda29   30208    35327    5120 EBD0A0A2-B9E5-4433-87C0-xxxxxxxxxxxx AD5EC4B6-2D9F-8544-9417-xxxxxxxxxxxx rstinfo   
/dev/sda30   35328    40447    5120 EBD0A0A2-B9E5-4433-87C0-xxxxxxxxxxxx CCEB0B18-39CB-D547-9DB7-xxxxxxxxxxxx mnv       
/dev/sda31   40448    45567    5120 EBD0A0A2-B9E5-4433-87C0-xxxxxxxxxxxx D4981A2B-0478-544E-9607-xxxxxxxxxxxx reserved1 
/dev/sda32   45568    50687    5120 EBD0A0A2-B9E5-4433-87C0-xxxxxxxxxxxx 6D6C9A36-E919-264D-A9EE-xxxxxxxxxxxx reserved2 
/dev/sda33   50688    55807    5120 EBD0A0A2-B9E5-4433-87C0-xxxxxxxxxxxx 60B98C0E-BEAD-B043-9CC6-xxxxxxxxxxxx reserved3 
/dev/sda41   65536  7929855 7864320 EBD0A0A2-B9E5-4433-87C0-xxxxxxxxxxxx F2ECCD60-9303-46B1-B193-xxxxxxxxxxxx system    
/dev/sda42 7929856  8060927  131072 EBD0A0A2-B9E5-4433-87C0-xxxxxxxxxxxx DD8D25F3-92F2-4B24-9558-xxxxxxxxxxxx custom    
/dev/sda43 8060928  8323071  262144 EBD0A0A2-B9E5-4433-87C0-xxxxxxxxxxxx 01573816-7EBF-4860-8AB7-xxxxxxxxxxxx cache     
/dev/sda44 8323072 15267834 6944763 EBD0A0A2-B9E5-4433-87C0-xxxxxxxxxxxx E15F5427-031C-4BB0-89D5-xxxxxxxxxxxx userdata  


Expert command (m for help): 

Parce que vous avez beaucoup de liaisons à la racine, vous devez modifier la récupération du formulaire des partitions.

Premier écueil , l'image de récupération par défaut pour Ubuntu n'est pas adb activée. J'ai utilisé TWRP 3.0.

Deuxième écueil , l'utilitaire TWRP fdisk n'est pas assez bon, c'est la variante busybox et il n'a pas les commandes de modification. Il suffit donc de faire une copie (avec dd de l'image système dans un fichier pour pouvoir monter en tant que périphérique de boucle) de la partition système sur la carte SD, de la monter, de créer avec mknod / dev / sda dans ce montage et chroot / sbin / fdisk

Vous pouvez maintenant jouer avec des partitions. Faites juste attention à ne rien gâcher sauf les quatre partitions cibles. N'oubliez pas de mettre les noms sur les étiquettes de la partition.

Toutes les quatre partitions sont ext4 font les systèmes de fichiers et alors vous devriez pouvoir les monter à partir du menu TWRP. Si vous venez de développer la partition système, vous devriez pouvoir vous échapper en redimensionnant le fs.

Vous pouvez refaire les partitions puis reflasher le système Ubuntu avec ubuntu-device-flash.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.