So erhalten Sie eine größere Root-Partition auf Touch

9

Ich versuche, Touch (14.10) als Ubuntu-Server zu verwenden. Die Root-Partition ist jedoch nur 2 GB groß und reicht nicht für die Pakete aus, die ich installieren muss. Gibt es eine Möglichkeit, mehr Speicherplatz auf der Root-Partition zu erhalten?

Bisher habe ich versucht:

  • resize2fs on / dev / loop0 funktioniert nicht, da der Kernel die Online-Größenänderung nicht unterstützt und ich root nicht aushängen kann (ro schneidet es nicht, auch nicht mit -f).

  • Das Hinzufügen von 2 GB am Ende von /userdata/ubuntu.img funktioniert, aber resize2fs in der Datei hilft nicht.

user319608
quelle
Dies ist eine sehr interessante Frage für einen neuen Benutzer. Willkommen in der Community.
Akiva

Antworten:

1

Ich hatte ein ähnliches Problem, letztendlich entschied ich mich, mein /usrzu verschieben /home/usr( /homewird vom 14G-Dateisystem gemountet, was mir viel Platz für zusätzliche Pakete gibt).

Dies ist ein bisschen hackisch, aber es scheint für mich zu funktionieren. Die folgenden Codebeispiele $geben an, dass der Befehl als normaler Benutzer ausgeführt werden soll, und #geben die Root-Benutzerrolle an (die entweder von sudo oder loggig als root abgerufen werden kann).

  1. Wenn Sie ein Passwort für den Root-Benutzer festlegen, müssen Sie sich als Root anmelden können, falls Sie etwas mit Ihrem Benutzer vermasseln /usr/bin/sudo. Um dies zu tun:

    $ sudo su
    # passwd
    
  2. Kopieren Sie den Inhalt der /usrEigentums- und Berechtigungserhaltung:

    $ cd /usr
    $ sudo find . -depth -print0 | sudo cpio --null --sparse -pvd /home/usr/
    
  3. Der nächste logische Schritt wäre, fstabdas Mounten /home/usrwie /usrbeim Booten zu verwenden. Alle Änderungen, die ich am vorgenommen habe, fstabverschwanden jedoch nach dem Neustart von Ubuntu. Also habe ich ein einfaches Skript für die Montage erstellt und es gespeichert als /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 
    

    Die chmod Linie benötigt wird , als ich bemerkte , dass suid bitsie manchmal nach der Montage fehlt. Die Liste der Dateien, für die das suid bitSet aktiviert war, finden Sie # find /usr -user root -perm -4000im ursprünglichen /usrVerzeichnis. Bitte beachten Sie, dass wenn Sie später etwas installieren, das das verwendet, suid bites beschädigt werden kann, es sei denn, Sie fügen es der Liste hinzu.

    Sie müssen einen symbolischen Link erstellen /etc/rcS.dfür bind.sh:

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

    Hinweis: Abhängig von Ihrem Status möchten Sie möglicherweise eine andere Nummer als 36 auswählen /etc/rcS.d.

    Alternativ können Sie /lib/init/fstabwie hier beschrieben bearbeiten , um dauerhafte Änderungen in fstab zu erhalten.

  4. Nach dem Neustart sollte das System jetzt verwendet werden, /home/usrso /usrdass Sie hoffentlich mehr Platz für zusätzliche Pakete haben sollten. Beachten Sie, dass das alte /usrnoch vorhanden ist, aber nicht erreichbar ist, solange das neue Verzeichnis bereitgestellt wird.

    Falls etwas schief geht, können Sie zum vorherigen Status zurückkehren, indem Sie den symbolischen Link umbenennen /etc/rcS.dund neu starten:

     # mv /etc/rcS.d/S36bind.sh /etc/rcS.d/K36bind.sh
    
belickim
quelle
Als ich "Xstart" in Ihrer vorgeschlagenen Lösung sah, dachte ich, dass dies nicht etwas ist, was Sie auf einem Ubuntu Touch-Gerät getan haben, oder?
Kris Jace
4

Diese Lösung hat bei mir funktioniert:

https://github.com/plasma-mobile/plasma-phone-dev-setup/blob/master/usr/bin/resize-root-partition

Im Grunde ist es das supereinfache Installationsskript von KDE Plasma Mobile. Führen Sie es einfach aus, machen Sie ein Nickerchen und Sie sollten eine 6-GB-Root-Partition haben.

tusing
quelle
Hier ist ein Permalink, da der Link zur ursprünglichen Ressource unterbrochen ist: github.com/KDE/plasma-phone-dev-setup/commit/…
Aᴄʜᴇʀᴏɴғᴀɪʟ
2

Hier ist der schnellste Weg, den ich gefunden habe.

Warnung : Dies kann Ihr Telefon beschädigen, wenn Sie es falsch eingeben. Stellen Sie sicher, dass Sie vollständige Backups haben, bevor Sie beginnen, und bereit sind, Fehler zu machen, falls Sie alle Daten auf Ihrem Telefon verlieren. Mit diesem Beispielbefehl wird die Größe des Root-Dateisystems auf 6 GB geändert. Wenn es also bereits größer ist, wird es abgeschnitten und Ihr Telefon kann wahrscheinlich nicht mehr gestartet werden (bis es erneut abgebildet wird). Verwenden Sie diesen Befehl nur, wenn Ihr Root-Dateisystem-Image weniger als 6 GB groß ist (der Ubuntu Touch-Standardwert ist 2 GB).

$ sudo -s
# dd if=/dev/null of=/userdata/ubuntu.img bs=1M seek=6000 count=0
# resize2fs -f /userdata/ubuntu.img
# reboot
Daniel van Vugt
quelle
Kannst du mir etwas besser erklären, wie das funktioniert?
Alko
@Alko, hier eine vollständigere Antwort mit Informationen auch für Touch.
Scrooge McDuck
0

Ok, hier ist die Art und Weise, wie ich es auf meinem Meizu Pro5 gemacht habe. Ihr Kilometerstand kann variieren.

O und du darfst dein Handy ziegeln.

Nehmen Sie diesen Leitfaden als Hinweis für Ihren Weg. Komm nicht weinend zurück.

Habe ein neues Handy von Ubuntu-Device-Flash gemacht. Im Telefon sollte eine SD-Karte vorhanden sein, die groß genug ist, um die fs von der Benutzerdatenpartition plus 512 MB plus 700 MB für die benutzerdefinierte Partition und die Cache-Partition aufzunehmen.

  • Geben Sie twrp3.0 als Wiederherstellungsimage ein.
  • Verwenden Sie fdisk -l / dev / block / sda, um die Partitionen anzuzeigen.
  • Speichern Sie diesen Bericht. Sie sollten die letzten 4 Partitionen als System-, benutzerdefinierte, Cache- und Benutzerdaten haben.
  • mkdir / tmp / userdata
  • mount / dev / block / sda44 (für mich war es 44) / tmp / userdata
  • cd / tmp
  • tar -czf /external_sd/userdata.tar.gz Benutzerdaten
  • umount / tmp / userdata
  • dd if = / dev / block / sda43 von = / externa_sd / cache.img
  • dd if = / dev / block / sda42 von = / externa_sd / custom.img

Sie haben jetzt die Daten gespeichert. Um die Partitionen zu wiederholen, verwenden wir die fdisk von ubuntu, da die fdisk von twrp nicht gut genug ist.

  • 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

Sie löschen die 41,42,43,44 Partitionen und erstellen:

  • eine neue 41 ab dem gleichen Ort, aber größer.
  • eine neue 42 beginnt nach 41 mit der gleichen Größe wie die alte 42.
  • eine neue 43 beginnt nach 42 mit der gleichen Größe wie die alte 43.
  • eine neue 44, die nach 43 beginnt und auf demselben Sektor endet wie die alte 44.
  • Speichern Sie die neue Partitionstabelle
  • umount / tmp / ubuntu

Setzen Sie die Benutzerdaten, die benutzerdefinierten Daten und den Cache zurück.

  • dd if = / externa_sd / cache.img von = / dev / block / sda43
  • dd if = / externa_sd / custom.img von = / dev / block / sda42
  • Erstellen Sie eine neue ext4 auf 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
  • Erhöhen Sie jetzt die Systempartition: resize2fs / dev / block / sda41

Sie sollten jetzt eine größere Root-Partition in Ihrem Ubuntu-Touch-System haben.

Habe Spaß.

E. Timotei
quelle
0

Nach einigem Spielen ist hier das, was Sie wissen und tun müssen.

Ubuntu Touch bootet von einem Android-Gerät, daher müssen die Partitionen entsprechend sein.

Das Android-System identifiziert die Partitionen anhand der Partitionsbezeichnung .

Sie haben für meizu pro 5 diese Partitionen: System (die Root-Partition), Cache (von Ubuntu für Upgrates verwendet, Sie sollten ungefähr 1G darauf haben), benutzerdefiniert (keine Ahnung, wofür verwendet wird), Benutzerdaten (verwendet für / home und viele andere Ordner, die mit Bindung an verschiedene Teile des Stamms gemountet sind)

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): 

Da Sie viele Bindungen an das Stammverzeichnis haben, müssen Sie die Partitionen für die Wiederherstellung ändern.

Erste Gefahr , das Standard-Wiederherstellungsimage für Ubuntu ist nicht adb-fähig. Ich habe TWRP 3.0 verwendet.

Zweite Gefahr , TWRP fdisk-Dienstprogramm ist nicht gut genug, es ist die Busybox-Variante und es hat nicht die Änderungsbefehle. Erstellen Sie einfach eine Kopie (mit dd vom Systemabbild in eine Datei, damit Sie als Loop-Gerät mounten können) der Systempartition auf der SD-Karte, mounten Sie sie, erstellen Sie sie mit mknod / dev / sda in diesem Mount und chroot / sbin / fdisk

Jetzt können Sie mit Partitionen spielen. Achten Sie nur darauf, dass Sie nur die vier Zielpartitionen durcheinander bringen. Vergessen Sie nicht, die Namen auf die Beschriftungen der Partition zu setzen.

Alle vier Partitionen sind ext4 machen die Dateisysteme und dann sollten Sie sie über das TWRP-Menü mounten können. Wenn Sie gerade die Systempartition vergrößert haben, sollten Sie in der Lage sein, die Größe der fs zu ändern.

Sie könnten die Partitionen wiederholen und dann einfach das Ubuntu-System mit Ubuntu-Device-Flash neu flashen.

E. Timotei
quelle