Làm cách nào để tìm tên đường dẫn của phân vùng trao đổi trên thẻ SD?


9

điều này cảnh báo, bạn không nên kích hoạt trao đổi trên phân vùng sai hoặc bạn có thể phá hủy điện thoại của mình:

OK trước khi chúng ta đi xa hơn! các điện thoại trước đây có bố cục phân vùng trong đó mmcblck0 là SDcard (bên ngoài) điện thoại của chúng tôi sử dụng mmcblck1 cho sd bên ngoài. Điều này rất quan trọng vì nếu bạn sử dụng một ứng dụng, có thể cài đặt sẵn để sử dụng mmcblck0 làm phân vùng trao đổi. Việc sử dụng cài đặt này sẽ khiến bạn sử dụng sbl2 hoặc sbl3 của bạn làm phân vùng trao đổi.

Vì vậy, phân vùng trao đổi có thể là /dev/block/mmcblk0p3nếu tôi có 3 phân vùng (fat32, sdext, trao đổi) trên thẻ SD của tôi hoặc /dev/block/mmcblk0p2nếu tôi có 2 phân vùng (fat43 và trao đổi) hoặc /dev/block/mmcblk1p?nếu bạn có điện thoại khác, v.v. và lựa chọn sai có thể gạch điện thoại của bạn.

Làm thế nào để bạn tìm hiểu phân vùng là đó? Nó phải là phân vùng duy nhất trên bất kỳ ổ đĩa nào của điện thoại có swaphệ thống tập tin.

  • fdisk -lthực hiện điều này trên Ubuntu , nhưng không tạo ra gì trong Android
  • blkid không hiển thị phân vùng trao đổi
  • cat /proc/partitions liệt kê rất nhiều phân vùng, nhưng không cho biết đó là trao đổi
  • cat /proc/swapschỉ liệt kê các giao dịch hoán đổi đã được sử dụng
  • cat /proc/mtdchỉ nói dev: size erasesize namevà không có gì khác
  • ls /dev/block/voldliệt kê một số phân vùng như 179:64 179:65 179:66, nhưng không chỉ ra chúng là gì?
  • Phục hồi 4ext sẽ hiển thị nó trong bảng phân vùng ( swap swap 129 MiB), nhưng không nói tên dev
  • ...

Ngay cả khi không có công cụ dòng lệnh để in trực tiếp, chắc chắn vẫn có cách để suy luận nó từ một số thông tin khác ??


Có cái gì trong bạn /proc/swaps?
ott--

@ ott--: cat /proc/swapschỉ hiển thị các swapfile tạo ra bởi swapper 2, không phải là phân vùng trên thẻ SD
endolith

Như bạn đã biết thiết bị (SDCard), bạn đã thử sử dụng mount(không có tham số) để tìm thiết bị khối tương ứng ( /dev/block/*) và kiểm tra xem có chống lại danh sách /proc/partitions(hoặc /proc/mtd) không? Nếu bạn không có thêm phân vùng trên thẻ, phân vùng trao đổi của bạn sẽ là "phân vùng khác kết thúc bằng một chữ số", trừ khi mountchỉ được voldchỉ. Trong trường hợp đó, so sánh kích thước (hoặc tạm thời loại bỏ thẻ cho "diff") có thể giúp ích.
Izzy

Câu trả lời:


8

Tôi đã cài đặt ứng dụng Thông tin đĩa và trong các tùy chọn, tôi đã bật chế độ Expertphân vùng Unmounted . Nó không nói "hoán đổi", nhưng nó cho thấy rõ ràng đó là phân vùng duy nhất khác trên thẻ SD và nó có kích thước phù hợp, do đó /dev/block/mmcblk1p2phải là một:

ảnh chụp màn hình của Thông tin đĩa

Swapper 2 được cấu hình để sử dụng /dev/block/mmcblk0p3theo mặc định, vì vậy tôi rất vui vì tôi đã không đi với mặc định.


8

fdisk -lhoạt động nếu bạn vượt qua toàn bộ tên thiết bị đĩa (ví dụ fdisk -l /dev/block/mmcblk1:); những gì không hoạt động là tự động phát hiện các thiết bị khối (rõ ràng vì Android đặt các tệp thiết bị trong /dev/blockthư mục, nhưng fdiskhy vọng sẽ thấy các tệp đó trực tiếp trong /dev). Do đó, một tùy chọn là thu thập danh sách toàn bộ thiết bị đĩa ( /dev/block/mmcblk0,, /dev/block/mmcblk1) và xem xét các bảng phân vùng của chúng bằng cách sử dụng . Các thiết bị toàn bộ đĩa được liệt kê trước các phân vùng tương ứng.fdisk -l <device>/proc/partitions

Các blkidtiện ích không nhìn vào bảng phân vùng ở tất cả - nó sẽ mở ra tất cả các thiết bị khối được biết đến với hệ thống và phát hiện các loại hệ thống tập tin từ các dữ liệu thực tế trên các thiết bị; do đó blkidsẽ không hiển thị thông tin chính xác cho phân vùng trao đổi cho đến khi phân vùng đó được khởi tạo bởi mkswap. Điều này có nghĩa blkidlà vô ích đối với nhiệm vụ hiện tại của bạn (tìm phân vùng nào sẽ được chuyển đến mkswap).

mountthường hiển thị các thiết bị bên dưới /dev/block/vold, được đặt tên theo số chính và số phụ của chúng. Để có được tên thiết bị thông thường, bạn có thể nhìn vào /proc/partitionsđể tìm một hàng chứa các số giống nhau trong hai cột đầu tiên. Sau đó, bạn có thể xóa phần này khỏi phần cuối của tên thiết bị, thêm vào lúc bắt đầu và chuyển tên kết quả để xem bảng phân vùng của thiết bị tương ứng.p<number>/dev/block/fdisk -l

Xin lưu ý rằng nếu bạn nhìn vào fdisk -lđầu ra cho đèn flash eMMC bên trong, bạn có thể tìm thấy rất nhiều phân vùng với các loại lạ, đặc biệt là trên các thiết bị dựa trên Qualcomm. Ví dụ: xem bảng phân vùng cho Samsung Galaxy W (GT-I8150):

# fdisk -lu /dev/block/mmcblk0                                  

Disk /dev/block/mmcblk0: 3959 MB, 3959422976 bytes
1 heads, 16 sectors/track, 483328 cylinders, total 7733248 sectors
Units = sectors of 1 * 512 = 512 bytes

              Device Boot      Start         End      Blocks  Id System
/dev/block/mmcblk0p1               1      212991      106495+  c Win95 FAT32 (LBA)
Partition 1 does not end on cylinder boundary
/dev/block/mmcblk0p2   *      212992      213991         500  4d Unknown
Partition 2 does not end on cylinder boundary
/dev/block/mmcblk0p3          213992      221183        3596  46 Unknown
Partition 3 does not end on cylinder boundary
/dev/block/mmcblk0p4          221184     7733247     3756032   5 Extended
Partition 4 does not end on cylinder boundary
/dev/block/mmcblk0p5          229376      239615        5120  47 Unknown
/dev/block/mmcblk0p6          245760      285759       20000  49 Unknown
/dev/block/mmcblk0p7          286720      292863        3072  58 Unknown
/dev/block/mmcblk0p8          294912      306175        5632  48 Unknown
/dev/block/mmcblk0p9          311296      324271        6488  50 Unknown
/dev/block/mmcblk0p10         327680      333823        3072  4a Unknown
/dev/block/mmcblk0p11         335872      342015        3072  4b Unknown
/dev/block/mmcblk0p12         344064      360447        8192  90 Unknown
/dev/block/mmcblk0p13         360448      375807        7680  91 Unknown
/dev/block/mmcblk0p14         376832      387071        5120  92 Unknown
/dev/block/mmcblk0p15         393216     1488895      547840  93 Unknown
/dev/block/mmcblk0p16        1490944     1613823       61440  94 Unknown
/dev/block/mmcblk0p17        1613824     3887103     1136640  95 Unknown
/dev/block/mmcblk0p18        3891200     3993599       51200  96 Unknown
/dev/block/mmcblk0p19        3997696     3998695         500  97 Unknown
/dev/block/mmcblk0p20        4005888     4013079        3596  98 Unknown
/dev/block/mmcblk0p21        4014080     4024319        5120  99 Unknown
/dev/block/mmcblk0p22        4030464     4070463       20000  9a Unknown
/dev/block/mmcblk0p23        4071424     4081663        5120  9b Unknown
/dev/block/mmcblk0p24        4087808     4101807        7000  9c Unknown
/dev/block/mmcblk0p25        4104192     4114431        5120  9d Unknown
/dev/block/mmcblk0p26        4120576     4130815        5120  9e Unknown
/dev/block/mmcblk0p27        4136960     4147199        5120  9f BSD/OS
/dev/block/mmcblk0p28        4153344     7733247     1789952  a0 Thinkpad hibernation

Mã loại phân vùng thậm chí còn sai một cách nguy hiểm, bởi vì /dev/block/mmcblk0p1, được khai báo Win95 FAT32 (LBA), thực sự chứa một số dữ liệu hệ thống (bao gồm cả vị trí và băm MD5 của các phần ROM khác nhau); tuy nhiên, /dev/block/mmcblk0p28đó là bộ lưu trữ dữ liệu nội bộ có định dạng FAT16, có một loại trông hoàn toàn không có thật. Trong trường hợp này, nhà sản xuất đã không sử dụng lại 0x82mã loại (trao đổi Linux) cho mục đích riêng của họ, nhưng tôi không chắc chắn rằng các xung đột đó không bao giờ xảy ra, vì vậy bạn không nên mù quáng sử dụng bất kỳ phân vùng nào trông giống như trao đổi - trước tiên hãy kiểm tra xem kích thước thiết bị và bố cục phân vùng là những gì bạn muốn thấy trên thẻ SD của mình.

/proc/mtd không bao giờ hữu ích cho việc tìm phân vùng trao đổi trên thẻ SD (trình điều khiển MTD được sử dụng để truy cập các chip flash thô được gắn trực tiếp, chúng không thể hoạt động với thẻ SD bên ngoài).


1
Aha! fdisk -l /dev/block/mmcblk1nói/dev/block/mmcblk1p2 30637 31152 132096 82 Linux swap
endolith
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.