Touchでより大きなルートパーティションを取得する方法


9

Touch(14.10)をUbuntuサーバーとして機能させようとしています。ただし、ルートパーティションは2 GBしかなく、インストールする必要があるパッケージには不十分です。ルートパーティションの領域を増やす方法はありますか?

これまで私は試しました:

  • / dev / loop0のresize2fsは、カーネルがオンラインのサイズ変更をサポートしていないため機能せず、ルートをマウント解除できません(roは-fを使用してもそれをカットしません)。

  • /userdata/ubuntu.imgの最後に2 GBを追加しても機能しますが、ファイルのresize2fsは役に立ちません。


これは、新しいユーザーにとって非常に興味深い質問です。コミュニティへようこそ。
Akiva 2014

回答:


1

私は最終的に私が移動することを決め、同様の問題があった/usrために/home/usr/home追加のパッケージのために私に十分なスペースを与える14Gファイルシステムからマウントされています)。

これは少しハッキーな方法ですが、私にはうまくいくようです。次のコード例は$、コマンドを通常のユーザーとして実行する必要があることと#、rootユーザーの役割(sudoまたはloggigによってrootとして取得できる)を示すために使用しています。

  1. rootユーザーのパスワードを設定します/usr/bin/sudo。何かが失敗した場合に備えて、rootとしてログインする機能が必要になります。そうするには:

    $ sudo su
    # passwd
    
  2. /usr所有権と権限を保持する内容をコピーします。

    $ cd /usr
    $ sudo find . -depth -print0 | sudo cpio --null --sparse -pvd /home/usr/
    
  3. 次の論理的なステップを使用することですfstabマウントする/home/usr/usr私が作るしようとしたが、すべての変更、ブートのfstabUbuntuの再起動後に消えました。マウントを行う簡単なスクリプトを作成し、次のように保存しました/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 
    

    マウント後に欠落してsuid bitいることに気付いたので、chmod行が必要です。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デバイスでこれを行ったのではないかと思いました。
クリスジェイス2017年

4

この解決策は私にとってうまくいきました:

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

基本的には、KDE ​​Plasmaモバイルの非常にシンプルなインストールスクリプトです。それを実行し、昼寝すると、6 GBのルートパーティションが作成されます。


ここでは、元のリソースへのリンクが壊れているので、パーマリンクがあります:github.com/KDE/plasma-phone-dev-setup/commit/...
Aᴄʜᴇʀᴏɴғᴀɪʟ

2

これが私がそれを行うために考え出した最も速い方法です。

警告:入力を誤ると、スマートフォンが壊れる可能性があります。開始する前に完全なバックアップがあり、携帯電話のすべてのデータが失われた場合に備えて間違いを犯さないことを確認してください。このコマンド例では、ルートファイルシステムのサイズを6GBに変更しているため、すでにそれよりも大きい場合は切り捨てられ、(再イメージ化されるまで)電話が起動できなくなる可能性があります。このコマンドは、ルートファイルシステムイメージが6GB未満の場合にのみ使用してください(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

これがどのように機能するか、もう少し詳しく説明していただけますか?
Alko

@Alko、ここでもタッチに関する情報を含むより完全な答え
Scrooge McDuck

0

OK、これがmeizu pro5でのやり方です。あなたの走行距離は変化するかもしれません。

Oそしてあなたあなたの電話を壊すかもしれませ

あなたがたどる道のヒントとしてこのガイドをとってください。泣いて戻ってこないで。

ubuntu-device-flashで作成した新しい電話を用意します。電話では、userdataパーティションのfsに加えて、カスタムパーティションとキャッシュパーティション用に512Mと700Mを保持するのに十分な大きさのSDカードが必要です。

  • twrp3.0をリカバリイメージとして配置します。
  • パーティションを表示するには、fdisk -l / dev / block / sdaを使用します。
  • そのレポートを保存します。最後の4つのパーティションは、システム、カスタム、キャッシュ、ユーザーデータとして必要です。
  • mkdir / tmp / userdata
  • マウント/ dev / block / sda44(私にとっては44でした)/ tmp / userdata
  • cd / tmp
  • tar -czf /external_sd/userdata.tar.gz userdata
  • アンマウント/ tmp / userdata
  • dd if = / dev / block / sda43 of = / externa_sd / cache.img
  • dd if = / dev / block / sda42 of = / externa_sd / custom.img

これでデータが保存されました。次に、パーティションをやり直すために、ubuntuのfdiskを使用します。twrpのfdiskは十分ではないためです。

  • 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
  • 43の後に始まり、古い44と同じセクターで終わる新しい44。
  • 新しいパーティションテーブルを保存する
  • umount / tmp / ubuntu

ユーザーデータ、カスタム、キャッシュを元に戻します。

  • dd if = / externa_sd / cache.img of = / dev / block / sda43
  • dd if = / externa_sd / custom.img of = / dev / block / sda42
  • 44に新しいext4を作成:mke2fs / dev / block / sda44
  • マウント/ dev / block / sda44 / tmp / userdata
  • cd / tmp
  • tar -xzf /external_sd/userdata.tar.gz
  • アンマウント/ tmp / userdata
  • umount / tmp / ubuntu
  • umount / system
  • システムパーティションを増やします:resize2fs / dev / block / sda41

これで、ubuntu-touchシステムに大きなルートパーティションができるはずです。

楽しんで。


0

もう少し遊んだ後、ここであなたが知る必要があることを行います。

Ubuntu touchはAndroidデバイスから起動しているため、パーティションを適切にする必要があります。

Androidシステムは、パーティションラベルによってパーティションを識別しています。

meizu pro 5の場合、このパーティション:システム(ルートパーティション)、キャッシュ(Ubuntuによるアップグレートに使用、約1Gが必要)、カスタム(何に使用されているかわからない)、userdata(/ 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を使用しました。

2つ目の落とし穴、TWRP fdiskユーティリティは十分ではなく、busyboxバリアントであり、変更コマンドがありません。SDカードにシステムパーティションのコピーを(システムイメージからファイルにddを付けてループデバイスとしてマウントできるように)作成し、マウントして、このマウントにmknod / dev / sdaを作成し、chroot / sbin /で作成します。 fdisk

今、あなたはパーティションで遊ぶことができます。4つのターゲットパーティションだけを台無しにしないように注意してください。パーティションのラベルに名前を付けることを忘れないでください。

4つのパーティションはすべてext4であり、ファイルシステムを作成すると、TWRPメニューからそれらをマウントできるようになります。システムパーティションを拡張しただけの場合は、fsのサイズを変更して逃げることができます。

パーティションをやり直してから、ubuntu-device-flashを使用してUbuntuシステムを再フラッシュすることができます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.