Cara mendapatkan partisi root yang lebih besar di Touch

9

Saya mencoba membuat Touch (14.10) berfungsi sebagai server Ubuntu. Namun partisi root hanya 2 GB dan tidak cukup untuk paket yang perlu saya instal. Apakah ada cara untuk mendapatkan lebih banyak ruang pada partisi root?

Sejauh ini saya sudah mencoba:

  • resize2fs di / dev / loop0 tidak akan berfungsi karena kernel tidak mendukung pengubahan ukuran online dan saya tidak bisa melepas root (ro tidak memotongnya, bahkan dengan -f).

  • Menambahkan 2 GB di akhir /userdata/ubuntu.img berfungsi, tetapi mengubah ukuran2fs pada file tidak membantu.

pengguna319608
sumber
Ini adalah pertanyaan yang sangat menarik bagi pengguna baru. Selamat datang di komunitas.
Akiva

Jawaban:

1

Saya memiliki masalah yang sama, akhirnya saya memutuskan untuk pindah /usrke /home/usr( /homedipasang dari sistem file 14G, yang memberi saya banyak ruang untuk paket tambahan).

Ini adalah sedikit cara hack untuk melakukan ini, tetapi tampaknya berhasil bagi saya. Contoh kode follwing digunakan $untuk menunjukkan bahwa perintah harus dijalankan sebagai pengguna normal dan #untuk menunjukkan peran pengguna root (yang dapat diperoleh baik dengan sudo atau loggig sebagai root).

  1. Setel kata sandi untuk pengguna root, Anda akan membutuhkan kemampuan untuk login sebagai root jika Anda mengacaukan sesuatu dengan Anda /usr/bin/sudo. Untuk melakukannya:

    $ sudo su
    # passwd
    
  2. Salin konten dari /usrmempertahankan kepemilikan dan izin:

    $ cd /usr
    $ sudo find . -depth -print0 | sudo cpio --null --sparse -pvd /home/usr/
    
  3. Langkah logis berikutnya akan digunakan fstabuntuk me /home/usr- mount seperti /usrpada boot, namun semua perubahan yang saya coba buat fstabmenghilang setelah me-reboot Ubuntu. Jadi saya telah membuat skrip sederhana untuk melakukan pemasangan, dan menyimpannya sebagai /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 
    

    Garis chmod diperlukan, karena saya perhatikan bahwa kadangsuid bit - kadang hilang setelah pemasangan. Daftar file yang telah suid bitdiset pada dapat ditemukan dengan menjalankan # find /usr -user root -perm -4000di /usrdirektori asli . Harap dicatat, bahwa jika Anda menginstal apa pun yang menggunakannya suid bitdapat rusak kecuali Anda menambahkannya ke daftar.

    Anda harus membuat tautan simbolis /etc/rcS.duntuk bind.sh:

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

    Catatan: Anda mungkin ingin memilih nomor yang berbeda dari 36 tergantung pada kondisi Anda /etc/rcS.d.

    Atau Anda dapat mengedit /lib/init/fstabseperti yang dijelaskan di sini untuk mendapatkan perubahan fstab yang persisten.

  4. Setelah reboot sistem harus sekarang menggunakan /home/usrsebagai /usrsehingga mudah-mudahan Anda harus memiliki lebih banyak ruang untuk paket tambahan. Perhatikan bahwa yang lama /usrmasih ada tetapi tidak dapat dijangkau selama direktori baru dipasang.

    Jika terjadi kesalahan, Anda dapat kembali ke keadaan sebelumnya dengan mengganti nama tautan simbolis /etc/rcS.ddan me-reboot:

     # mv /etc/rcS.d/S36bind.sh /etc/rcS.d/K36bind.sh
    
Belickim
sumber
melihat "Xstart" dalam solusi yang Anda usulkan membuat saya berpikir bahwa ini bukan sesuatu yang Anda lakukan pada perangkat Ubuntu Touch, bukan?
Kris Jace
2

Inilah cara tercepat yang saya pikirkan untuk melakukannya.

Peringatan : Ini dapat merusak ponsel Anda jika mengetik salah. Pastikan Anda memiliki cadangan lengkap sebelum memulai dan bersedia melakukan kesalahan jika Anda kehilangan semua data di ponsel Anda. Perintah contoh ini mengubah ukuran sistem file root menjadi 6GB, jadi jika itu sudah lebih besar daripada itu akan terpotong dan ponsel Anda kemungkinan akan menjadi tidak bisa di-boot (sampai dicitrakan kembali). Gunakan hanya perintah ini jika gambar sistem file root Anda kurang dari 6GB (default Ubuntu Touch adalah 2GB).

$ 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
sumber
dapatkah Anda menjelaskan kepada saya sedikit lebih baik, bagaimana ini bekerja?
Alko
@Alko, di sini jawaban yang lebih lengkap berisi informasi untuk Touch juga.
Gober McDuck
0

Ok, inilah cara yang saya lakukan pada meizu pro5 saya. Jarak tempuh Anda mungkin bervariasi.

O dan Anda dapat menutup telepon Anda.

Ambil panduan ini sebagai petunjuk agar jalan Anda diikuti. Jangan kembali menangis.

Miliki telepon baru yang dibuat oleh ubuntu-device-flash. Di telepon Anda harus memiliki kartu SD yang cukup besar untuk menahan fs dari partisi data pengguna ditambah 512M plus 700M untuk partisi custom dan cache.

  • menempatkan twrp3.0 sebagai gambar pemulihan.
  • gunakan fdisk -l / dev / block / sda untuk melihat partisi.
  • simpan laporan itu. Anda harus memiliki 4 partisi terakhir sebagai sistem, custom, cache, dan data pengguna.
  • mkdir / tmp / userdata
  • mount / dev / block / sda44 (bagi saya itu 44) / tmp / userdata
  • cd / tmp
  • tar -czf /external_sd/userdata.tar.gz userdata
  • umount / tmp / userdata
  • dd if = / dev / block / sda43 dari = / externa_sd / cache.img
  • dd if = / dev / block / sda42 dari = / externa_sd / custom.img

Anda sekarang telah menyimpan data, sekarang untuk mengulang partisi kita akan menggunakan fdisk dari ubuntu karena fdisk dari twrp tidak cukup baik.

  • 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

Anda menghapus 41,42,43,44 partisi dan membuat:

  • 41 baru mulai dari tempat yang sama tetapi lebih besar.
  • 42 baru dimulai setelah 41 dengan ukuran yang sama dengan 42 lama.
  • 43 baru dimulai setelah 42 dengan ukuran yang sama seperti 43 lama.
  • 44 baru dimulai setelah 43 dan berakhir di sektor yang sama seperti 44 lama.
  • simpan tabel partisi baru
  • umount / tmp / ubuntu

Masukkan kembali data pengguna, kustom, dan cache.

  • dd if = / externa_sd / cache.img dari = / dev / block / sda43
  • dd if = / externa_sd / custom.img dari = / dev / block / sda42
  • buat ext4 baru di 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 / sistem
  • tingkatkan sekarang partisi sistem: resize2fs / dev / block / sda41

Anda sekarang harus memiliki partisi root yang lebih besar di sistem ubuntu-touch Anda.

Selamat bersenang-senang.

E. Timotei
sumber
0

Setelah bermain lagi di sini adalah apa yang perlu Anda ketahui dan lakukan.

Ubuntu touch mem-boot dari perangkat android sehingga partisi harus sesuai.

Sistem android mengidentifikasi partisi dengan label partisi .

Anda memiliki untuk meizu pro 5 partisi ini: sistem (partisi root), cache (digunakan untuk upgrates oleh Ubuntu, Anda harus memiliki sekitar 1G di atasnya), kustom (tidak tahu apa yang digunakan untuk), data pengguna (digunakan untuk / rumah dan banyak folder lain yang di-mount dengan mengikat ke berbagai bagian root)

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

Karena Anda memiliki banyak ikatan ke root, Anda harus memodifikasi partisi dari pemulihan.

Perangkap pertama , gambar pemulihan default untuk Ubuntu tidak adb diaktifkan. Saya menggunakan TWRP 3.0.

Jebakan kedua , utilitas TWRP fdisk tidak cukup baik, ini adalah varian busybox dan tidak memiliki perintah modifikasi. Jadi cukup buat salinan (dengan dd dari gambar sistem ke file sehingga Anda dapat me-mount sebagai perangkat loop) dari partisi sistem pada kartu SD, pasang, buat dengan mknod / dev / sda di mount ini dan chroot / sbin / fdisk

Sekarang Anda bisa bermain dengan partisi. Hanya berhati-hatilah untuk tidak mengacaukan apa pun kecuali empat partisi target. Jangan lupa untuk memasukkan nama ke label partisi.

Semua dari empat partisi ext4 membuat sistem file dan kemudian Anda harus dapat me-mount mereka dari menu TWRP. Jika Anda baru saja menumbuhkan partisi sistem Anda harus dapat melarikan diri dengan mengubah ukuran fs.

Anda bisa mengulang partisi dan kemudian hanya reflash sistem Ubuntu dengan ubuntu-device-flash.

E. Timotei
sumber