Як отримати більший корінний розділ на Touch


9

Я намагаюся змусити Touch (14.10) працювати як сервер Ubuntu. Однак кореневий розділ становить лише 2 Гб і недостатньо для пакетів, які мені потрібно встановити. Чи є спосіб отримати більше місця в кореневому розділі?

Поки що я намагався:

  • resize2fs on / dev / loop0 не працюватиме, оскільки ядро ​​не підтримує зміну розміру в Інтернеті, і я не можу відключити root (ro не вирізає його, навіть із -f).

  • Додавання 2 Гб в кінці /userdata/ubuntu.img працює, але resize2fs у файлі не допомагає.


Це дуже цікаве питання для нового користувача. Ласкаво просимо до громади.
Аківа

Відповіді:


1

У мене була подібна проблема, врешті-решт я вирішив переїхати /usrдо /home/usr( /homeмонтується з файлової системи 14G, що дає мені багато місця для додаткових пакетів).

Це трохи хакітський спосіб зробити це, але це, здається, працює для мене. Приклади коду слідуючого коду використовуються $для вказівки, що команду слід запустити як звичайного користувача та #вказати роль кореневого користувача (яку можна отримати або sudo, або loggig як root).

  1. Встановіть пароль для користувача root, вам знадобиться можливість увійти як корінь у випадку, якщо ви щось накрутите на ваш /usr/bin/sudo. Робити так:

    $ sudo su
    # passwd
    
  2. Скопіюйте вміст /usrзбереження права власності та дозволів:

    $ cd /usr
    $ sudo find . -depth -print0 | sudo cpio --null --sparse -pvd /home/usr/
    
  3. Наступним логічним кроком буде використання fstabдля монтажу /home/usrяк /usrпід час завантаження, проте всі зміни, які я намагався зробити fstab, зникали після перезавантаження Ubuntu. Тому я створив простий скрипт, щоб зробити монтаж, і зберег його як /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 
    

    CHMOD лінія потрібна, як я помітив , що suid bitце іноді НЕ вистачає після монтажу. Список файлів, на які було suid bitвстановлено, можна знайти, запустивши # find /usr -user root -perm -4000в оригінальній /usrдиректорії. Зауважте, що якщо ви встановите що-небудь пізніше, що використовується, suid bitвоно може зламатися, якщо ви не додасте його до списку.

    Вам потрібно буде створити символічне посилання /etc/rcS.dдля bind.sh:

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

    Примітка. Ви можете вибрати інше число, ніж 36, залежно від вашого стану /etc/rcS.d.

    Крім того, ви можете редагувати, /lib/init/fstabяк описано тут, для постійних змін у fstab.

  4. Після перезавантаження системи повинна бути в даний час використовують в /home/usrякості /usrтак що сподіваюся , ви повинні мати більше місця для додаткових пакетів. Зауважте, що старий /usrвсе ще існує, але недоступний, поки встановлено новий каталог.

    Якщо щось піде не так, ви можете повернутися до попереднього стану, перейменувавши символічне посилання /etc/rcS.dта перезавантажившись:

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

побачення "Xstart" у запропонованому вами рішенні змусило мене думати, що це не те, що ви робили на пристрої Ubuntu Touch, чи не так?
Кріс Джейс

4

Це рішення працювало для мене:

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

В основному, це суперпростий сценарій встановлення KDE Plasma Mobile. Просто запустіть його, подрімайте, і у вас повинен бути кореневий розділ на 6 ГБ.


Ось постiйне посилання , так як посилання на ресурс початкового зламана: github.com/KDE/plasma-phone-dev-setup/commit / ...
Aᴄʜᴇʀᴏɴғᴀɪʟ

2

Ось найшвидший спосіб я зрозумів це зробити.

Попередження : неправильне введення тексту може пошкодити ваш телефон. Переконайтеся, що ви маєте повністю резервні копії перед початком і готові помилитися, якщо ви втратите всі дані на своєму телефоні. Ця прикладна команда змінює розмір кореневої файлової системи до 6 Гб, тому, якщо вона вже більша, ніж вона буде усічена, і ваш телефон, швидше за все, стане незавантаженим (до повторного зображення). Використовуйте цю команду, лише якщо зображення вашої кореневої файлової системи менше 6 Гб (за замовчуванням Ubuntu Touch - 2 ГБ).

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

ви можете мені пояснити трохи краще, як це працює?
Алько

@Alko, тут є і більш повна відповідь, що містить інформацію для Touch.
Скрудж МакДак

0

Гаразд, ось так, як я це зробив на своєму meizu pro5. Ваш пробіг може змінюватися.

О, і ви можете цеглити телефон.

Візьміть це керівництво як підказку для вашого шляху. Не повертайся плакати.

Майте свіжий телефон, зроблений ubuntu-device-flash. У телефоні у вас повинна бути SD-карта достатньо велика, щоб вмістити файли з розділу розділів даних користувача плюс 512M плюс 700M для розділу користувача та кешу.

  • помістіть twrp3.0 як зображення для відновлення.
  • використовуйте fdisk -l / dev / block / sda для перегляду розділів.
  • збережіть цей звіт. У вас повинен бути останні 4 розділи як системні, користувацькі, кешовані та користувацькі дані.
  • mkdir / tmp / userdata
  • mount / dev / block / sda44 (для мене це було 44) / tmp / userdata
  • cd / tmp
  • tar -czf /external_sd/userdata.tar.gz userdata
  • umount / tmp / userdata
  • dd, якщо = / dev / block / sda43 of = / externa_sd / cache.img
  • dd, якщо = / dev / block / sda42 of = / externa_sd / custom.img

Тепер ви зберегли дані, тепер для повторної роботи розділів ми будемо використовувати fdisk від ubuntu, оскільки fdisk від twrp недостатньо хороший.

  • 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

Ви видаляєте 41,42,43,44 розділи та створюєте:

  • новий 41, починаючи з того самого місця, але більше.
  • новий 42, починаючи після 41, такого ж розміру, як і старий 42.
  • новий 43, починаючи після 42, того ж розміру, що і старий 43.
  • новий 44, починаючи після 43 та закінчуючи тим же сектором, що і старий 44.
  • збережіть нову таблицю розділів
  • umount / tmp / ubuntu

Поверніть назад дані користувача, користувацькі та кеш-пам'ять.

  • dd, якщо = / externa_sd / cache.img of = / dev / block / sda43
  • dd, якщо = / externa_sd / custom.img = / dev / block / sda42
  • створити новий ext4 на 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 / система
  • збільшити зараз системний розділ: resize2fs / dev / block / sda41

Ви повинні бути більший корінний розділ у вашій системі ubuntu-touch.

Весело.


0

Після ще однієї гри тут є те, що вам потрібно знати і робити.

Ubuntu touch - це завантаження із пристрою Android, тому розділи повинні бути придатними.

Система android ідентифікує розділи за міткою розділу .

У вас для meizu pro 5 є такі розділи: система (кореневий розділ), кеш (використовується для оновлень Ubuntu, у вас повинно бути близько 1G), власні (не маю уявлення, для чого використовується), користувацькі дані (використовуються для / home та багато інших папок, які встановлені з прив’язкою до різних частин кореня)

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

Оскільки у вас багато прив’язок до кореня, ви повинні змінити відновлення форми розділів.

По-перше, підводне зображення, зображення відновлення за замовчуванням для Ubuntu не ввімкнено adb. Я використовував TWRP 3.0.

Другий підводний камінь, утиліта TWRP fdisk недостатньо хороша, вона є варіантом зайнятості і не має команд модифікації. Тому просто зробіть копію (з dd із зображення системи в файл, щоб ви могли монтуватись як циклічний пристрій) системного розділу на SD-карту, змонтуйте її, створіть за допомогою mknod / dev / sda в цьому кріпленні та chroot / sbin / fdisk

Тепер ви можете грати з перегородками. Будьте обережні, щоб не зіпсувати нічого, крім чотирьох цільових розділів. Не забудьте поставити назви на етикетках розділу.

Усі чотири розділи ext4 складають файлові системи, і тоді ви зможете змонтувати їх з меню TWRP. Якщо ви тільки що виростили системний розділ, ви повинні мати можливість відмовитися від зміни розміру fs.

Ви можете переробити розділи, а потім просто перевстановити систему Ubuntu за допомогою ubuntu-flash-flash.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.