Como obter uma partição raiz maior no Touch

6

Estou tentando fazer o Touch (14.10) funcionar como um servidor Ubuntu. No entanto, a partição raiz tem apenas 2 GB e é insuficiente para os pacotes que preciso instalar. Existe alguma maneira de obter mais espaço na partição raiz?

Até agora eu tentei:

  • resize2fs em / dev / loop0 não funciona, pois o kernel não suporta redimensionamento online e não consigo desmontar root (ro não corta, mesmo com -f).

  • Adicionar 2 GB ao final de /userdata/ubuntu.img funciona, mas resize2fs no arquivo não ajuda.

por user319608 23.08.2014 / 04:25

5 respostas

1

Eu tive um problema parecido, mas decidi mover meu /usr para /home/usr ( /home é montado a partir do sistema de arquivos 14G, o que me dá muito espaço para pacotes adicionais).

Esta é uma maneira um pouco hackeada de fazer isso, mas parece funcionar para mim. Os exemplos de código a seguir estão usando $ para indicar que o comando deve ser executado como usuário normal e # para indicar a função do usuário raiz (que pode ser obtida por sudo ou loggig como root).

  1. Defina a senha para o usuário root, você precisará da capacidade de registrar como root, caso estrague qualquer coisa com o /usr/bin/sudo . Para fazer isso:

    $ sudo su
    # passwd
    
  2. Copie o conteúdo de /usr preservando propriedade e permissões:

    $ cd /usr
    $ sudo find . -depth -print0 | sudo cpio --null --sparse -pvd /home/usr/
    
  3. A próxima etapa lógica seria usar fstab para montar /home/usr as /usr na inicialização, no entanto todas as alterações que eu tentei fazer no fstab estavam desaparecendo após a reinicialização do Ubuntu. Então, criei um script simples para fazer a montagem e salvei-o como /etc/init.d/bind.sh :

    #!/bin/sh
    if [ "X" = "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 
    

    A linha chmod é necessária, pois notei que suid bit está algumas vezes ausente após a montagem. A lista dos arquivos que tinham o suid bit definido pode ser encontrada executando # find /usr -user root -perm -4000 no diretório /usr original. Por favor, note que se você instalar qualquer coisa mais tarde que esteja usando o suid bit , ele poderá ser quebrado a menos que você o adicione à lista.

    Você precisará criar um link simbólico em /etc/rcS.d para bind.sh :

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

    Nota: você pode escolher um número diferente de 36, dependendo do estado do seu /etc/rcS.d .

  4. Após a reinicialização, o sistema deve estar usando /home/usr as /usr , portanto, esperamos que você tenha mais espaço para pacotes adicionais. Observe que o antigo /usr ainda existe, mas é inacessível, desde que o novo diretório seja montado.

    Caso algo dê errado, você poderá retornar ao estado anterior renomeando o link simbólico em /etc/rcS.d e reinicializando:

     # mv /etc/rcS.d/S36bind.sh /etc/rcS.d/K36bind.sh
    
por belickim 29.10.2014 / 10:57
2

Esta solução funcionou para mim:

link

Basicamente, é o script de instalação super-simples do KDE Plasma Mobile. Basta executá-lo, tirar um cochilo e você deve ter uma partição raiz de 6 GB.

    
por Tushar 15.01.2016 / 08:42
1

Aqui está a maneira mais rápida que eu descobri para fazer isso.

Aviso : Isso pode quebrar seu telefone se digitado incorretamente. Certifique-se de ter backups completos antes de começar e está disposto a cometer erros caso perca todos os dados no seu telefone.   Este comando de exemplo redimensiona o sistema de arquivos raiz para 6 GB, portanto, se ele já for maior do que isso, ele será truncado e o telefone provavelmente não será inicializado (até que a imagem seja reimplantada). Use este comando somente se a sua imagem do sistema de arquivos raiz for menor que 6GB (o padrão do Ubuntu Touch é 2GB).

$ sudo -s
# dd if=/dev/null of=/userdata/ubuntu.img bs=1M seek=6000 count=0
# resize2fs -f /userdata/ubuntu.img
# reboot
    
por Daniel van Vugt 13.08.2015 / 11:28
0

Ok, aqui está o jeito que eu fiz no meu meizu pro5. Sua milhagem pode variar.

O e você podem ligar o seu telefone.

Tome este guia como uma sugestão para o seu caminho a seguir. Não volte chorando.

Tenha um telefone novo feito pelo ubuntu-device-flash. No telefone, você deve ter um cartão SD grande o suficiente para manter o fs da partição userdata mais 512M mais 700M para a partição personalizada e de cache.

  • coloque twrp3.0 como a imagem de recuperação.
  • use fdisk -l / dev / block / sda para ver as partições.
  • salve esse relatório. Você deve ter a última partição 4 como sistema, personalizado, cache e userdata.
  • mkdir / tmp / userdata
  • mount / dev / block / sda44 (para mim foi 44) / tmp / userdata
  • cd / tmp
  • tar -czf /external_sd/userdata.tar.gz userdata
  • umount / tmp / userdata
  • dd if = / dev / block / sda43 de = / externa_sd / cache.img
  • dd if = / dev / block / sda42 de = / externa_sd / custom.img

Você agora salvou os dados, agora para refazer as partições que usaremos o fdisk do Ubuntu, já que o fdisk do twrp não é bom o suficiente.

  • 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

Você exclui as 41,42,43,44 partições e cria:

  • um novo 41 a partir do mesmo lugar, mas maior.
  • um novo 42 iniciando depois de 41 com o mesmo tamanho que o 42 antigo.
  • um novo 43 iniciando depois de 42 com o mesmo tamanho que o antigo 43.
  • um novo 44 iniciando depois de 43 e terminando no mesmo setor que o antigo 44.
  • salve a nova tabela de partições
  • umount / tmp / ubuntu

Coloque de volta os dados do usuário, personalizados e cache.

  • dd if = / externa_sd / cache.img de = / dev / block / sda43
  • dd if = / externa_sd / custom.img de = / dev / block / sda42
  • crie um novo ext4 em 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
  • aumenta agora a partição do sistema: resize2fs / dev / block / sda41

Você deve agora ter uma partição root maior em seu sistema ubuntu-touch.

Divirta-se.

    
por E. Timotei 03.06.2016 / 10:28
0

Depois de mais algumas jogadas aqui é o que você precisa saber e fazer.

O Ubuntu touch está inicializando a partir de um dispositivo Android, portanto as parções precisam ser adequadas.

O sistema android está identificando as partições pelo rótulo da partição .

Você tem para o meizu pro 5 partições: system (a partição root), cache (usado para upgrades pelo Ubuntu, você deve ter cerca de 1G nele), custom (sem idéia do que é usado), userdata (usado para / home e muitas outras pastas que são montadas com ligação a diferentes partes da raiz)

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

Como você tem muitos binds para a raiz, é necessário modificar a recuperação do formulário de partição.

Primeira armadilha , a imagem de recuperação padrão para o Ubuntu não é adb habilitada. Eu usei o TWRP 3.0.

Segunda armadilha , o utilitário TWRP fdisk não é bom o suficiente, é a variante busybox e não possui os comandos de modificação. Então, basta fazer uma cópia (com dd da imagem do sistema para um arquivo para que você possa montar como um dispositivo de loop) da partição do sistema no cartão SD, montá-lo, criar com mknod / dev / sda nesta montagem e chroot / sbin / fdisk

Agora você pode jogar com partições. Apenas tome cuidado para não mexer em nada além das quatro partições de destino. Não esqueça de colocar os nomes nos rótulos da partição.

Todas as quatro partições são ext4, fazem os sistemas de arquivos e então você deve ser capaz de montá-los a partir do menu TWRP. Se você acabou de crescer a partição do sistema, você deve ser capaz de refazer o redimensionamento do fs.

Você poderia refazer as partições e então apenas reflash o sistema Ubuntu com o ubuntu-device-flash.

    
por E. Timotei 09.06.2016 / 09:49