Làm cách nào để di chuyển Thẻ SD với Linux?


1

Kịch bản của tôi rất đơn giản: điện thoại Android của tôi có thẻ nhớ microSD bên trong với kích thước 2Gb và tôi hết dung lượng. Bây giờ tôi đã mua thẻ nhớ microSD 16Gb mới nơi tôi muốn di chuyển.

Các bước: 1. Chèn thẻ sd cũ, sử dụng dd để sao lưu

# dd if = / dev / mmcblk0 of = backup.img bs = 1M
  1. Chèn thẻ sd mới, dd hình ảnh cũ
# dd if = backup.img của / dev / mmcblk0 bs = 1M
  1. Thay đổi kích thước phân vùng ... chờ tôi không thể thấy phân vùng ở đó
# fdisk / dev / mmcblk0 
Chào mừng bạn đến với fdisk (produc-linux 2.21.2).

Thay đổi sẽ chỉ còn trong bộ nhớ, cho đến khi bạn quyết định viết chúng.
Hãy cẩn thận trước khi sử dụng lệnh ghi.

Lệnh (m để được giúp đỡ): p

Đĩa / dev / mmcblk0: 16.0 GB, 16001269760 byte
4 đầu, 16 ngành / đường đua, 488320 xi lanh, tổng số 31252480 ngành
Đơn vị = các lĩnh vực 1 * 512 = 512 byte
Kích thước ngành (logic / vật lý): 512 byte / 512 byte
Kích thước I / O (tối thiểu / tối ưu): 512 byte / 512 byte
Định danh đĩa: 0x00000000

        Khởi động thiết bị Khối kết thúc khối Id Hệ thống

Lệnh (m để được giúp đỡ): 

Ok, chúng ta hãy thử thay đổi kích thước?

# resize2fs / dev / mmcblk0 
thay đổi kích thước2fs 1.42.3 (14 tháng 5 năm 2012)
resize2fs: Số ma thuật xấu trong siêu khối trong khi cố gắng mở / dev / mmcblk0                                                                                                                                                                 
Không thể tìm thấy siêu khối hệ thống tập tin hợp lệ.        

GParted hiển thị phân vùng fat16 16Gb, nhưng kích thước khả dụng vẫn là kích thước 2Gb cũ từ thẻ nhớ cũ.

Tôi đang làm gì sai?


1
Tại sao bạn cần phải sao chép từng bit một ...? Có vẻ rất không cần thiết. Nhưng vấn đề là bạn sao chép từng bit 2gb thành 16gb, vì vậy nó sẽ chỉ là 2gb. Bạn có thể thay đổi kích thước trong gParted nhưng bạn có thể cần phải đẩy ra và khởi động lại để nó hoạt động (tôi đã có vấn đề tương tự trong quá khứ)
nerdwaller

Một số câu hỏi - 1. Nếu bạn bật thẻ 16 gig trong điện thoại của mình, nó có hoạt động không (dưới dạng 2 gig?). 2. Bạn có chắc chắn cần sử dụng resize2fs - một số biến thể của linux sử dụng resize4fs để thay đổi kích thước phân vùng ext4.
davidgo

@nerdwaller Tôi đã đẩy thẻ sd, nhưng gparted vẫn không thấy phân vùng 2Gb. Bạn có ý nghĩa gì bằng cách reinitialize? Làm thế nào bạn giải quyết vấn đề của bạn trong quá khứ?
LukasT

@davidgo Khi tôi nhét thẻ 16 gig vào điện thoại, nó hoạt động. Như Justin đã chỉ ra dưới đây, tôi cần phải thử fatresize.
LukasT

Câu trả lời:


1

Tạo một hệ thống tệp mới, các tệp rsync hơn. Bạn không cần dd và rsync sẽ nhanh hơn và sao chép mọi thứ nếu bạn sử dụng tùy chọn '-a'.

Thật kỳ lạ khi bạn không thể thay đổi kích thước2fs hoặc xem phân vùng. Điều duy nhất là, đây có phải là thẻ SD FAT32 không? Không chắc đó là ext2 / 3/4, đây là hệ thống tập tin duy nhất resize2fs hỗ trợ. Bạn đã thử fatresize thay thế?


Tôi đã sử dụng dd vì tôi muốn biết giải pháp chung, ví dụ: bạn đang sao chép hình ảnh vào SDCard cho Raspberry Pi và trong trường hợp đó đã có một số tập lệnh được đóng gói thay đổi kích thước thẻ cho bạn. Tôi không biết hệ thống tập tin nào được điện thoại Android cũ của tôi (2.3 android) hỗ trợ, vì vậy tôi gửi dữ liệu để phân vùng được tạo cho tôi (có vẻ là FAT16)
LukasT

Tôi chấp nhận giải pháp @Justin. Thẻ SD gốc có phân vùng FAT16, chỉ có thể là 4Gb nên tôi sẽ phải tạo thêm phân vùng và không muốn điều đó. Vì vậy, tôi đã tạo phân vùng FAT32 mới và sử dụng rsync để di chuyển dữ liệu.
LukasT
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.