Touch'ta daha büyük bir kök bölümü nasıl edinilir


9

Touch'ın (14.10) bir Ubuntu sunucusu olarak çalışmasını sağlıyorum. Ancak kök bölüm sadece 2 GB ve yüklemem gereken paketler için yetersiz. Kök bölümde daha fazla alan elde etmenin bir yolu var mı?

Şimdiye kadar denedim:

  • / dev / loop0 üzerindeki resize2fs, çekirdek çevrimiçi yeniden boyutlandırmayı desteklemediğinden ve kök bağlantısını kesemediğimden (ro -f ile bile kesmiyor).

  • /Userdata/ubuntu.img sonuna 2 GB eklemek işe yarar, ancak dosyadaki resize2fs yardımcı olmaz.


Bu yeni bir kullanıcı için çok ilginç bir soru. Topluluğa hoş geldiniz.
Akiva

Yanıtlar:


1

Ben sonuçta ben benim taşınmaya karar verdi, benzer bir sorun vardı /usriçin /home/usr( /homeek paketler için bana bol verir 14G dosya sisteminden monte edilir).

Bunu yapmanın biraz acayip bir yolu, ama benim için çalışıyor gibi görünüyor. Aşağıdaki kod örnekleri, $komutun normal kullanıcı olarak çalıştırılması gerektiğini ve #kök kullanıcı rolünü (sudo veya log olarak root olarak alınabilir) belirtmek için kullanılır.

  1. Kök kullanıcı için parola belirleyin, sizin için bir şey bozmanız durumunda kök olarak oturum açabilmeniz gerekir /usr/bin/sudo. Böyle yaparak:

    $ sudo su
    # passwd
    
  2. /usrSahipliği ve izinleri koruma içeriğini kopyalayın :

    $ cd /usr
    $ sudo find . -depth -print0 | sudo cpio --null --sparse -pvd /home/usr/
    
  3. Bir sonraki mantıklı adım , önyüklemede olduğu gibi fstabmonte etmek için kullanmak olurdu , ancak Ubuntu'yu yeniden başlattıktan sonra yapmaya çalıştığım tüm değişiklikler kayboluyordu. Bu yüzden montajı yapmak için basit bir komut dosyası oluşturdum ve şöyle kaydettim :/home/usr/usrfstab/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 
    

    Ben fark olarak chmod hattı, tabi suid bitolduğu bazen montaj sonrasında eksik. Vardı dosyaların listesi suid bitüzerinde setini çalıştırarak bulunabilir # find /usr -user root -perm -4000orijinal üzerinde /usrdizine. Daha sonra kullanmakta olduğunuz bir şey yüklerseniz suid bit, listeye eklemediğiniz sürece bozulabileceğini lütfen unutmayın .

    İçeri sembolik bir bağlantı oluşturmak gerekir /etc/rcS.diçin bind.sh:

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

    Not: durumunuza bağlı olarak 36'dan farklı bir sayı seçmek isteyebilirsiniz /etc/rcS.d.

    Alternatif /lib/init/fstabolarak , fstab dosyasında kalıcı değişiklikler olması için burada açıklandığı gibi düzenleyebilirsiniz .

  4. Sistemi yeniden başlattığınızda artık kullanarak olmalı /home/usrolarak /usröylesine umarım ek paketler için daha fazla alana sahip olmalıdır. Eski /usrdizinin hala var olduğunu, ancak yeni dizin bağlandığı sürece erişilemediğini unutmayın .

    Bir şeyler ters giderse, içindeki sembolik bağlantıyı yeniden adlandırarak /etc/rcS.dve yeniden başlatarak önceki duruma dönebilirsiniz :

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

Önerilen çözümünüzde "Xstart" ı görmek, bunun bir Ubuntu Touch cihazında yaptığınız bir şey olmadığını düşündürdü, değil mi?
Kris Jace


2

İşte bunu yapmanın en hızlı yolu.

Uyarı : Yanlış yazıldığında telefonunuzu kırabilir. Başlamadan önce tam yedek aldığınızdan ve telefonunuzdaki tüm verileri kaybetmeniz durumunda hata yapmaya hazır olduğunuzdan emin olun. Bu örnek komut kök dosya sistemini 6GB olarak yeniden boyutlandırır, bu yüzden zaten bundan daha büyükse kesilir ve telefonunuz büyük olasılıkla önyüklenemez hale gelir (yeniden görüntülenene kadar). Bu komutu yalnızca kök dosya sistemi görüntünüz 6GB'den küçükse kullanın (Ubuntu Touch varsayılanı 2GB).

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

bana biraz daha iyi açıklayabilir misin, bu nasıl çalışır?
Alko

@Alko, burada Touch için bilgi içeren daha eksiksiz bir cevap .
Scrooge McDuck

0

Tamam, işte benim meizu pro5'te bunu yapmanın yolu. Kilometreniz değişebilir.

O ve sen telefonunu tutabilirsin .

Bu kılavuzu izleyeceğiniz yolun ipucu olarak alın. Geri dönme ağlama.

Ubuntu-cihaz-flash tarafından yapılmış yeni bir telefon var. Telefonda, kullanıcı veri bölümündeki fs artı özel ve önbellek bölümü için 512M artı 700M tutacak kadar büyük bir SD kartınız olmalıdır.

  • kurtarma görüntüsü olarak twrp3.0'ı koy.
  • bölümleri görmek için fdisk -l / dev / block / sda kullanın.
  • raporu kaydedin. Sistem, özel, önbellek ve kullanıcı verileri olarak son 4 bölümünüz olmalıdır.
  • mkdir / tmp / kullanıcı verileri
  • mount / dev / block / sda44 (benim için 44 idi) / tmp / userdata
  • cd / tmp
  • tar -czf /external_sd/userdata.tar.gz kullanıcı verileri
  • umount / tmp / kullanıcı verileri
  • dd if = / dev / block / sda43 / = / externa_sd / cache.img
  • dd if = / dev / block / sda42 / = / externa_sd / custom.img

Şimdi verileri kaydettiniz, şimdi bölümleri yeniden yapmak için ubuntu'dan fdisk'i kullanacağız, çünkü twrp'den fdisk yeterince iyi değil.

  • mkdir / tmp / ubuntu
  • mount -o döngüsü /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

41,42,43,44 bölümlerini silin ve oluşturun:

  • aynı yerden başlayarak daha büyük yeni bir 41.
  • eski 42 ile aynı büyüklükte 41'den sonra başlayan yeni bir 42.
  • eski 43 ile aynı boyutta 42'den sonra başlayan yeni bir 43.
  • 43'ten sonra başlayan ve eski 44 ile aynı sektörde biten yeni bir 44.
  • yeni bölüm tablosunu kaydet
  • umount / tmp / ubuntu

Kullanıcı verilerini, özel ve önbelleği geri koyun.

  • dd if = / externa_sd / cache.img = / dev / block / sda43
  • dd if = / externa_sd / custom.img / = / dev / block / sda42
  • 44'te yeni bir ext4 oluştur: mke2fs / dev / block / sda44
  • mount / dev / block / sda44 / tmp / kullanıcı verileri
  • cd / tmp
  • tar -xzf /external_sd/userdata.tar.gz
  • umount / tmp / kullanıcı verileri
  • umount / tmp / ubuntu
  • umount / sistem
  • şimdi sistem bölümünü artırın: resize2fs / dev / block / sda41

Artık ubuntu-touch sisteminizde daha büyük bir kök bölümünüz olmalıdır .

İyi eğlenceler.


0

Biraz daha oynadıktan sonra bilmeniz ve yapmanız gerekenler.

Ubuntu touch bir android cihazdan önyükleme yapıyor, bu yüzden bölümlerin uygun olması gerekiyor.

Android sistemi bölümleri bölüm etiketi ile tanımlamaktadır .

Meizu pro 5 için bu bölümlere sahipsiniz: sistem (kök bölüm), önbellek (Ubuntu tarafından yükseltmeler için kullanılır, üzerinde yaklaşık 1G olması gerekir), özel (ne için kullanıldığına dair bir fikir yok), kullanıcı verileri (/ home ve Kökün farklı bölümlerine bağlanan diğer birçok klasör)

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

Kök için çok sayıda bağlantınız olduğundan, bölüm kurtarma formunu değiştirmeniz gerekir.

İlk tuzak , Ubuntu için varsayılan kurtarma görüntüsü adb etkin değil. TWRP 3.0 kullandım.

İkinci tuzak , TWRP fdisk yardımcı programı yeterince iyi değil, meşgul kutusu varyantı ve değişiklik komutları yok. Bu nedenle, SD kartta sistem bölümünün bir kopyasını (sistem görüntüsünden bir dosyaya bir dize ile bir döngü aygıtı olarak monte edebilirsiniz) yapın, takın, bu yuvada mknod / dev / sda ve chroot / sbin / fdisk

Şimdi bölümlerle oynayabilirsiniz. Sadece dört hedef bölümden başka bir şeyi karıştırmamaya dikkat edin. Adları bölümün etiketlerine koymayı unutmayın.

Dört bölümün tamamı ext4'tür ve dosya sistemlerini oluştururlar ve sonra bunları TWRP menüsünden bağlayabilmelisiniz. Sadece sistem bölümünü büyüttüyseniz, fs'yi yeniden boyutlandırarak kaçabilmeniz gerekir.

Bölümleri yeniden yapabilir ve daha sonra Ubuntu sistemini ubuntu-device-flash ile yeniden kırabilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.