Cách nhận phân vùng gốc lớn hơn trên Touch


9

Tôi đang cố gắng để Touch (14.10) hoạt động như một máy chủ Ubuntu. Tuy nhiên, phân vùng gốc chỉ có 2 GB và không đủ cho các gói tôi cần cài đặt. Có cách nào để có thêm không gian trên phân vùng gốc không?

Cho đến nay tôi đã thử:

  • resize2fs on / dev / loop0 sẽ không hoạt động vì kernel không hỗ trợ thay đổi kích thước trực tuyến và tôi không thể ngắt root (ro không cắt nó, ngay cả với -f).

  • Thêm 2 GB vào cuối /userdata/ubfox.img hoạt động, nhưng thay đổi kích thước2fs trên tệp không giúp ích được gì.


Đây là một câu hỏi rất thú vị cho một người dùng mới. Chào mừng đến với cộng đồng.
Akiva

Câu trả lời:


1

Tôi đã có một vấn đề tương tự, cuối cùng tôi quyết định chuyển /usrsang /home/usr( /homeđược gắn từ hệ thống tệp 14G, cho tôi nhiều không gian cho các gói bổ sung).

Đây là một cách hơi khó để làm điều này, nhưng nó có vẻ hiệu quả với tôi. Các ví dụ mã follwing đang sử dụng $để chỉ ra rằng lệnh nên được chạy như người dùng bình thường và #để chỉ ra vai trò người dùng root (có thể được lấy bằng sudo hoặc loggig dưới dạng root).

  1. Đặt mật khẩu cho người dùng root, bạn sẽ cần khả năng đăng nhập làm root trong trường hợp bạn làm hỏng mọi thứ với /usr/bin/sudo. Làm như vậy:

    $ sudo su
    # passwd
    
  2. Sao chép nội dung /usrbảo vệ quyền sở hữu và quyền:

    $ cd /usr
    $ sudo find . -depth -print0 | sudo cpio --null --sparse -pvd /home/usr/
    
  3. Bước hợp lý tiếp theo sẽ là sử dụng fstabđể gắn kết /home/usrnhư khi /usrkhởi động, tuy nhiên tất cả các thay đổi mà tôi đã cố gắng thực hiện fstabđã biến mất sau khi khởi động lại Ubuntu. Vì vậy, tôi đã tạo tập lệnh đơn giản để thực hiện việc gắn kết và lưu nó dưới dạng /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 
    

    Dòng chmod là cần thiết, như tôi nhận thấy rằng suid bitđôi khi mất tích sau khi lắp đặt. Danh sách các tập tin đã được suid bitthiết lập có thể được tìm thấy bằng cách chạy # find /usr -user root -perm -4000trên /usrthư mục gốc . Xin lưu ý rằng nếu bạn cài đặt bất cứ thứ gì sau này đang sử dụng thì suid bitnó có thể bị hỏng trừ khi bạn thêm nó vào danh sách.

    Bạn sẽ cần phải tạo liên kết tượng trưng trong /etc/rcS.dcho bind.sh:

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

    Lưu ý: bạn có thể muốn chọn số khác nhau hơn 36 tùy thuộc vào trạng thái của bạn /etc/rcS.d.

    Ngoài ra, bạn có thể chỉnh sửa /lib/init/fstabnhư được mô tả ở đây để có những thay đổi liên tục trong fstab.

  4. Sau khi khởi động lại hệ thống nên sử dụng /home/usr/usrvậy hy vọng bạn sẽ có thêm dung lượng cho các gói bổ sung. Lưu ý rằng cũ /usrvẫn tồn tại nhưng không thể truy cập miễn là thư mục mới được gắn kết.

    Trong trường hợp có sự cố xảy ra, bạn có thể quay lại trạng thái trước đó bằng cách đổi tên liên kết tượng trưng trong /etc/rcS.dvà khởi động lại:

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

Việc nhìn thấy "Xstart" trong giải pháp đề xuất của bạn khiến tôi nghĩ rằng đây không phải là điều bạn đã làm trên thiết bị Ubuntu Touch, phải không?
Kris Jace

4

Giải pháp này hiệu quả với tôi:

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

Về cơ bản, đó là tập lệnh cài đặt siêu đơn giản của KDE Plasma Mobile. Chỉ cần chạy nó, chợp mắt một chút và bạn nên có một phân vùng gốc 6 GB.


Đây là một permalink vì liên kết đến tài nguyên ban đầu bị hỏng: github.com/KDE/plasma-phone-dev-setup/commit/
Kẻ

2

Đây là cách nhanh nhất tôi đã tìm ra để làm điều đó.

Cảnh báo : Điều này có thể làm hỏng điện thoại của bạn nếu gõ sai. Đảm bảo bạn có bản sao lưu đầy đủ trước khi bắt đầu và sẵn sàng mắc lỗi trong trường hợp bạn mất tất cả dữ liệu trên điện thoại. Lệnh ví dụ này thay đổi kích thước hệ thống tập tin gốc thành 6GB, vì vậy nếu nó lớn hơn nó sẽ bị cắt bớt và điện thoại của bạn có thể sẽ không thể khởi động được (cho đến khi được chụp lại). Chỉ sử dụng lệnh này nếu hình ảnh hệ thống tập tin gốc của bạn dưới 6GB (mặc định Ubuntu Touch là 2GB).

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

bạn có thể giải thích cho tôi tốt hơn một chút, làm thế nào điều này hoạt động?
Alko

@Alko, đây cũng là một câu trả lời đầy đủ hơn chứa thông tin cho Touch.
Scrooge McDuck

0

Ok, đây là cách mà tôi đã làm trên meizu pro5. Số dặm của bạn có thể thay đổi.

O và bạn có thể gạch điện thoại của bạn.

Lấy hướng dẫn này làm gợi ý cho con đường của bạn để làm theo. Đừng quay lại khóc.

Có một chiếc điện thoại mới được tạo bởi ubfox-device-flash. Trong điện thoại, bạn nên có một thẻ SD đủ lớn để chứa fs từ phân vùng userdata cộng với 512M cộng với 700M cho phân vùng bộ nhớ cache và tùy chỉnh.

  • đặt twrp3.0 làm hình ảnh khôi phục.
  • sử dụng fdisk -l / dev / block / sda để xem các phân vùng.
  • lưu báo cáo đó. Bạn nên có 4 phân vùng cuối cùng là hệ thống, tùy chỉnh, bộ đệm và userdata.
  • mkdir / tmp / userdata
  • mount / dev / block / sda44 (đối với tôi là 44) / tmp / userdata
  • cd / tmp
  • tar -czf /external_sd/userdata.tar.gz userdata
  • umount / tmp / userdata
  • dd if = / dev / block / sda43 of = / externa_sd / cache.img
  • dd if = / dev / block / sda42 of = / externa_sd / custom.img

Bây giờ bạn đã lưu dữ liệu, bây giờ để làm lại các phân vùng, chúng tôi sẽ sử dụng fdisk từ ubfox vì fdisk từ twrp không đủ tốt.

  • mkdir / tmp / ubfox
  • mount -o loop /system/var/lib/lxc-andoid/system.img / tmp / ubfox
  • mknod -m 666 b 8 0 / tmp / ubfox / dev / sda
  • chroot / tmp / ubfox / sbin / fdisk / dev / sda

Bạn xóa các phân vùng 41,42,43,44 và tạo:

  • 41 mới bắt đầu từ cùng một nơi nhưng lớn hơn.
  • 42 mới bắt đầu sau 41 với cùng kích thước với 42 cũ.
  • 43 mới bắt đầu sau 42 với kích thước tương tự 43 cũ.
  • một 44 mới bắt đầu sau 43 và kết thúc trên cùng một lĩnh vực với 44 cũ.
  • lưu bảng phân vùng mới
  • umount / tmp / ubfox

Đặt lại userdata, tùy chỉnh và bộ nhớ cache.

  • dd if = / externa_sd / cache.img của = / dev / block / sda43
  • dd if = / externa_sd / custom.img of = / dev / block / sda42
  • tạo một ext4 mới trên 44: mke2fs / dev / block / sda44
  • gắn kết / dev / block / sda44 / tmp / userdata
  • cd / tmp
  • tar -xzf /external_sd/userdata.tar.gz
  • umount / tmp / userdata
  • umount / tmp / ubfox
  • ô / hệ thống
  • tăng ngay phân vùng hệ thống: resize2fs / dev / block / sda41

Bạn nên bây giờ có một phân vùng gốc lớn hơn trong hệ thống ubuntu-touch.

Chúc vui vẻ.


0

Sau khi một số vở kịch hơn ở đây là những gì bạn cần phải biết và làm.

Ubuntu Touch được khởi động từ một thiết bị Android nên partions phải apropiate.

Hệ thống android là xác định các phân vùng của các nhãn phân vùng .

Bạn có cho meizu pro 5 các phân vùng này: system (phân vùng gốc), cache (được sử dụng để nâng cấp bởi Ubuntu, bạn nên có khoảng 1G trên nó), tùy chỉnh (không biết dùng để làm gì), userdata (được sử dụng cho / home và rất nhiều thư mục khác được gắn kết với các phần khác nhau của thư mục gốc)

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

Bởi vì bạn có rất nhiều liên kết đến thư mục gốc, bạn phải sửa đổi phục hồi biểu mẫu phân vùng.

Cạm bẫy đầu tiên , hình ảnh khôi phục mặc định cho Ubuntu không được bật adb. Tôi đã sử dụng TWRP 3.0.

Cạm bẫy thứ hai , tiện ích TWRP fdisk không đủ tốt, nó là biến thể busybox và nó không có các lệnh sửa đổi. Vì vậy, chỉ cần tạo một bản sao (với dd từ hình ảnh hệ thống vào một tệp để bạn có thể gắn kết như một thiết bị lặp) của phân vùng hệ thống onthe thẻ SD, gắn kết nó, tạo với mknod / dev / sda trong mount này và chroot / sbin / fdisk

Bây giờ bạn có thể chơi với các phân vùng. Chỉ cần cẩn thận để không gây rối bất cứ điều gì ngoại trừ bốn phân vùng mục tiêu. Đừng quên đặt tên cho nhãn của phân vùng.

Tất cả bốn phân vùng là ext4 tạo ra các hệ thống tập tin và sau đó bạn sẽ có thể gắn kết chúng từ menu TWRP. Nếu bạn vừa phát triển phân vùng hệ thống, bạn sẽ có thể thoát khỏi việc thay đổi kích thước fs.

Bạn có thể làm lại các phân vùng và sau đó chỉ cần khởi động lại hệ thống Ubuntu bằng ubfox-device-flash.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.