Không thể xóa thuộc tính chỉ đọc của thẻ Micro SD sau hình ảnh Ubuntu


16

Tôi không thể xóa thuộc tính chỉ đọc khỏi Thẻ Micro SD 32 GB của Kingston. Tôi muốn lau sạch toàn bộ thẻ.

Tôi đã được tặng Raspberry Pi 3 và Thẻ nhớ Micro SD 32 GB và Echo để chơi xung quanh. Thẻ Micro SD đã được xuất xưởng khi tôi nhận được. Tôi đã tải xuống một hình ảnh Ubuntu 16.04 mới và định dạng thẻ bằng Etcher trên Windows 10. Sau khi hoàn thành, tôi đã cắm mọi thứ để Raspberry hoạt động và nhận thấy không có gì xảy ra. Tôi bắt đầu hoảng loạn một chút và tự nghĩ: "Làm tốt lắm Scrat, bạn hoàn toàn biến thái. Tại sao bạn không thể chờ đợi một chút và google một hướng dẫn kỳ dị."

Tôi đã googled những gì có thể đã sai và những gì tôi nên làm, và phải khám phá ra rằng bạn không thể đặt bất kỳ hình ảnh Ubuntu ngẫu nhiên nào trên đó. Nó phải là một trong những hình ảnh mà người tạo cung cấp (trong trường hợp của tôi là Ubuntu Mate hoặc Raspbian).

Đã sửa lỗi với Windows

Khi cố gắng định dạng lại bằng cách nhấp chuột phải và định dạng lại qua Windows Explorer, điều đầu tiên tôi gặp phải là thẻ ở chế độ chỉ đọc. Cố gắng truy cập nó trong Windows Explorer chỉ cho tôi thấy thư mục EFI mà tôi không ngạc nhiên.

Điều đầu tiên tôi tìm thấy trên internet là về một công tắc / khóa trên thẻ, nhưng thẻ của tôi hoàn toàn không có khóa. Bản thân thẻ cũng không phải đầu đọc thẻ nhỏ Robson tôi dùng để đọc.

Sau đó tôi đã cố gắng nhớ cách chỉnh sửa đĩa.
Lưu ý rằng tôi vẫn đang sử dụng Windows 10 tại thời điểm đó, vì tôi sẽ phải sao chép VM-Ware và hình ảnh hệ thống cũ từ ổ đĩa ngoài của mình và tôi không biết đó là đâu.

Tôi đã mở một dòng lệnh, chạy Diskpart và liệt kê tất cả các đĩa của tôi thông qua

list disk

Đầu ra ổ cứng 931 GB, ổ SSD 119 GB của tôi (nơi cài đặt Windows) và Thẻ nhớ Micro SD 29 GB:

Datenträger ### Trạng thái Größe Frei Dyn GPT  
--------------- ------------- ------- ------- --- ---   
Datenträger 0 Trực tuyến 119 GB 0 B *  
Datenträger 1 Trực tuyến 931 GB 0 B *  
Datenträger 2 trực tuyến 29 GB 29 GB

Theo dõi thông tin tôi có, tôi biết rằng Datenträger 2 aka Đĩa 2 là thẻ tôi muốn chỉnh sửa bằng cách thực hiện:

select disk 2

Càng xa càng tốt. Sau đó, tôi muốn xóa thuộc tính chỉ đọc bằng cách thực hiện:

attributes disk clear readonly

Mà cũng đã được thực hiện thành công.

Nhưng khi tôi cố gắng làm:

clean

Tôi đã nhận được "Thông báo lỗi phần cứng" (tiếng Đức, đó là lý do tại sao tôi không sao chép nó ở đây, nhưng về cơ bản nó chỉ nói Lỗi phần cứng). Lỗi đó cũng xảy ra khi cố gắng tạo phân vùng chính hoặc làm những việc khác.

Lúc này sự hoảng loạn trong tôi bắt đầu ngày càng lớn. Nhưng tôi đã cố giữ bình tĩnh vì tôi vẫn còn một vài mánh khóe.

Tôi đã thử sử dụng các chương trình: EasUS Partition Master, Etcher (một lần nữa) và SD Card Formatter, tất cả đều thất bại do thẻ được bảo vệ (chỉ đọc, bảo vệ ghi).

Tôi cũng đã thử sử dụng chỉnh sửa sổ đăng ký để thay đổi hành vi của Windows đối với các thiết bị lưu trữ bằng cách tạo khóa (chưa có):

Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\StorageDevicePolicies

và tạo một từ khóa mới (DWORD WriteProtect) và đặt nó thành 0, có nghĩa là không đọc.

Đã sửa lỗi với Linux

Điều đó cũng không hoạt động và tôi bắt đầu mất tinh thần với Windows, vì vậy tôi đã rời khỏi mông của mình và tìm kiếm ổ đĩa ngoài và cài đặt VM-Ware và chạy máy ảo Ubuntu 16.04 tôi sử dụng cho trường học.

Khởi động VM tôi đã nhận thấy rằng Ubuntu có thể giúp tôi vượt qua Windows (hoặc ít nhất là tôi nghĩ vậy, vì các kỹ năng Linux của tôi bị hạn chế ở khía cạnh này). Điều đầu tiên tôi thấy là một biểu tượng được liên kết trên Máy tính để bàn với thẻ có tên "Ubuntu 16.04.2 LTS amd64" trong đó có chứa những thứ khác nhau mà Ubuntu cần để làm việc trong hình ảnh ở đây .

Nhưng điều đó sẽ không giúp tôi. Vì vậy, tôi đã đi trước và bắt đầu một thiết bị đầu cuối và viết:

lsblk

Xác nhận rằng thẻ có thể nhìn thấy (sdb):

TÊN MAJ: MIN RM KÍCH THƯỚC RO LOẠI MOUNTPOINT
sda 8: 0 0 30G 0 đĩa 
└─sda1 8: 1 0 30G 0 phần /
sdb 8:16 1 29,2G 1 đĩa 
├─sdb1 8:17 1 1,5G 1 phần / phương tiện / tư thế / Ubuntu 16.04.2 LTS amd64
└─sdb2 8:18 1 2,4M 1 phần 
sr0 11: 0 1 1024M 0 rom  

Nhưng lsblk không chính xác lắm nên tôi cũng đã sử dụng lệnh chúng tôi đã học ở trường:

fdisk -l

Mà chính xác hơn một chút:

Đĩa / dev / sda: 30 GiB, 32212254720 byte, 62914560 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
Loại đĩa: dos
Định danh đĩa: 0xa14a8cb2

Khởi động thiết bị Kết thúc mục Kích thước Loại Id
/ dev / sda1 2048 62914559 62912512 30G 83 Linux


Đĩa / dev / sdb: 29,2 GiB, 31306285056 byte, 61145088 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
Loại đĩa: dos
Định danh đĩa: 0x15e2543d

Khởi động thiết bị Kết thúc mục Kích thước Loại Id
/ dev / sdb1 * 0 3035519 3035520 1,5G 0 Trống
/ dev / sdb2 14432 19295 4864 2,4M ef EFI (FAT-12/16/32)

Và tôi đã rất háo hức vì tôi nghĩ rằng cuối cùng tôi đã bẻ khóa mã Davinci chết tiệt hoặc một cái gì đó, vì vậy tôi đã chạy

gparted

Mà ngay lập tức mở ra với một thông báo lỗi:

Bộ mô tả trình điều khiển cho biết kích thước khối vật lý là 2048 byte, nhưng Linux cho biết nó là 512 byte.

Mà tôi đã bỏ qua vì tôi nghĩ đó không phải là vấn đề lớn, nhưng ngay sau khi bỏ qua cái trước đó, thông báo lỗi tiếp theo xuất hiện:

(Các) phân vùng 1 trên / dev / sdb đã được viết, nhưng chúng tôi không thể thông báo cho kernel về sự thay đổi, có lẽ vì nó / chúng đang được sử dụng. Do đó, (các) phân vùng cũ sẽ vẫn được sử dụng. Bạn nên khởi động lại ngay bây giờ trước khi thực hiện các thay đổi tiếp theo.

Vì vậy, tôi đã làm những gì tin nhắn nói với tôi và khởi động lại. Nhưng điều đó cũng không có ích gì, bởi vì hai lỗi tương tự lại xuất hiện. Tôi đã bỏ qua cả hai lần này và cửa sổ gparted cũ đáng tin cậy mà tôi biết từ trường mở ra.

Khi tôi đổi thành / dev / sdb, nó trở nên khó hiểu rất nhanh. Như bạn có thể thấy ở đây , mọi thứ khá kỳ lạ, vì bây giờ sdb bằng cách nào đó được coi là SSD của tôi thay vì thẻ, nhưng hình ảnh từ thẻ vẫn được gắn. Tại thời điểm này, tôi đã quá tức giận khi tiếp tục làm bất cứ điều gì thêm vì sợ vô tình làm hỏng máy tính xách tay của tôi.

Nhân tiện, tôi cũng đã thử cấp cho mình quyền truy cập vào đĩa và thử sử dụng ddlệnh, nhưng với cùng một thông báo lỗi (Truy cập bị từ chối, chỉ đọc hoặc một cái gì đó, tôi không chắc chắn, nhưng có gì đó theo hướng này ).

Tôi đã đặt mua một thẻ Micro SD 32 GB khác từ Amazon, trong trường hợp không còn hy vọng gì cho thẻ cũ. Nhưng tôi vẫn chưa từ bỏ.

(Xin lỗi vì một số thứ bằng tiếng Đức nhưng tôi nghĩ những thứ đó là phần tự giải thích.)


Các đĩa có thể đã chuyển thứ tự vì bạn đã khởi động lại với thẻ SD được kết nối (lần khởi động lại lần sau mà không được kết nối). Hình ảnh thứ hai của bạn rất thú vị ... Nếu tôi hiểu chính xác, đó là từ bên trong VM? VM chỉ có đĩa 30GiB và thẻ SD 29.2GiB?
Attie

Vâng, từ bên trong VM. Tôi đã khởi động lại mà không có kết nối, mặc dù vậy, tôi không biết nếu đó là nó. Trong / dev / sda, không gian bộ nhớ được gán mà bạn có thể cung cấp cho máy ảo của mình khi cài đặt nó, phải là 30GiB. Nhưng bằng cách nào đó, tất cả đã bị lẫn lộn với thẻ chết tiệt này được cắm vào.
LordScrat

Câu trả lời:


6

Vâng, bài viết của bạn chắc chắn là đủ giải trí. Cảm ơn vì điều đó.

Tôi biết đó không phải là câu trả lời bạn đang tìm kiếm. Nhưng, có vẻ như thẻ SD bị kẹt ở chế độ chỉ đọc. Bạn đã làm mọi thứ bạn có thể. Nó thực sự không khó.

Nó hoạt động như thế nếu có một công tắc chống ghi trên thẻ. Có vẻ như bạn xác nhận là không, nhưng có lẽ chỉ cần kiểm tra lại, một lần nữa? Ý nghĩ nảy ra trong đầu bạn có lẽ là bạn đang sử dụng thẻ SD mini trong bộ chuyển đổi mini-sd sang sd. Và có thể bạn đã xem trên bộ chuyển đổi, nhưng không phải thẻ mini-sd? Tôi không biết, chỉ cần ném nó ra khỏi đó. Nếu có một bộ chuyển đổi, có thể chính bộ chuyển đổi bị hỏng? Tôi không nhớ nếu bạn đề cập nếu bạn đã thử một đầu đọc thẻ khác. Có lẽ người đọc đã đi xấu?

Ngoài ra, đó là một thất bại khá phổ biến khi một thứ như thế này "thất bại" ở chế độ chỉ đọc. Vì vậy, ruột của tôi nói với tôi rằng thẻ xấu đi.

Có vẻ như bạn đang đi đúng hướng, chỉ cần thay thế nó. Có lẽ bạn có thể nhận được một cái xấu được thay thế theo bảo hành vì nó là mới. Hãy cho chúng tôi biết những gì bạn tìm ra.


Tôi nghĩ rằng đây là một phản hồi tốt, nhưng nó không thực sự là một câu trả lời, mà là một nhận xét và hy vọng. :)
Xavierjazz

Vâng, tôi sẽ nói với sếp của mình rằng thẻ không thể được viết nữa và chỉ cần gửi lại cho Amazon (anh ấy đã nhận nó như thứ năm trước ngày cuối cùng, vì vậy tôi nghĩ rằng không có vấn đề gì) và lấy lại tiền của mình. Tôi sẽ tìm ra các debaucle bằng tiền của mình vì có lẽ đó là lỗi của tôi khi cài đặt Ubuntu sai trên nó và có thể khóa mềm nó. Đoán tôi sẽ có ít hơn 16 đô để chi tiêu haha. Cảm ơn bình luận của bạn, mặc dù. Tôi đánh giá cao mọi bình luận tôi nhận được.
LordScrat

2
Vâng, đó là điều đáng khen ngợi của bạn. Nhưng, không có gì bạn làm với phần mềm sẽ phá hủy phần cứng. Đôi khi mọi thứ trở nên tồi tệ.
Appleoddity

4

Những vấn đề chỉ đọc như vậy xảy ra với tôi mọi lúc khi tôi sử dụng hình ảnh iso.

Tôi phải làm gì để khắc phục những vấn đề như vậy:

Lưu ý rằng đó <yoursdcard>là một thiết bị và không phải là một phân vùng, vì vậy, ví dụsdc

  1. Khởi động một số loại linux
  2. Mở một thiết bị đầu cuối
  3. Tìm hiểu thiết bị thẻ sd của bạn là gì và xác minh nó bằng cách sử dụng sudo fdisk /dev/<yoursdcard> -lhoặc để lấy tên thiết bị, bạn cũng có thể sử dụngsudo parted /dev/<yoursdcard> -l

CẢNH BÁO: Lệnh sau sẽ hủy tất cả dữ liệu trên /dev/<yoursdcard>vì vậy hãy chắc chắn rằng đó <yoursdcard>là thiết bị phù hợp !!!!

  1. Hành hình sudo dd if=/dev/zero of=/dev/<yoursdcard> bs=1000000 count=50
  2. Hành hình sudo fdisk /dev/<yoursdcard>
  3. Bây giờ sử dụng lệnh ođể tạo bảng phân vùng MSDOS mới trên sdcard của bạn, sau đó sử dụng nlệnh để thêm phân vùng mới và sử dụng wđể ghi các thay đổi vào sdcard của bạn và thoát fdisk
  4. Bây giờ sử dụng sudo mkfs -t <filesystem you want> /dev/<yoursdcard>1để định dạng phân vùng của bạn
  5. Bây giờ sdcard của bạn sẽ hoạt động trở lại

Nếu điều đó không làm việc:

  1. Thiết bị đầu cuối mở
  2. Tìm hiểu thiết bị <yoursdcard>là gì
  3. Hành hình sudo su
  4. Hành hình echo "0" > /sys/block/<yoursdcard>/ro

Tôi rất thích dùng thử, nhưng như bạn có thể thấy trong bức ảnh thứ hai của tôi, Ubuntu kinda nhầm lẫn / dev / sdb, đó là Micro SD của tôi, như SSD của tôi (Hoặc ngược lại, nhưng đó là những gì tôi biết) và tôi thực sự không muốn xóa nó một cách tình cờ, tôi cũng vậy
LordScrat 22/07/17

Tất nhiên bạn không muốn, nhưng fdiskđáng tin cậy hơn nhiều gpartedvà bạn sẽ thấy liệu nó có phát hiện ra thẻ sdcard của mình hay không (Xem bước 3)
testeaxeax

1
Bạn có thể sử dụng các bí danh de / dev / đĩa / by-id được tạo tự động. Họ có nhà sản xuất và kết nối xe buýt trong đó để bạn biết chắc chắn đó là thiết bị gì.
John Keates

3

Hãy nhớ rằng thẻ có thể bị hỏng. Họ có một số đèn flash và bộ điều khiển trên tàu. Nếu thẻ nghĩ rằng nó có vấn đề, nó sẽ hoàn toàn ngoại tuyến hoặc chỉ đọc nếu nó không đủ các ô flash hoạt động để viết. Đôi khi bộ điều khiển giữ thông tin kế toán cho chip flash, có thể bị hỏng khiến nó khởi động ở chế độ an toàn và không cho phép bất cứ điều gì. Để vượt qua loại công cụ này, bạn cần một đầu đọc thẻ SD 'thật', không phải là đầu đọc chỉ dành cho Bộ lưu trữ lớn. Giao diện SD 'thực' có quyền truy cập vào bộ điều khiển và có thể cung cấp cho bạn thông tin bạn cần.


1

À, vâng. Hình ảnh Ubuntu sử dụng một số định dạng kỳ lạ phá vỡ hầu hết các tiện ích định dạng. Tôi tưởng tượng đó là một số thứ họ làm để hình ảnh hoạt động trên DVD. Tôi biết rõ điều này (đọc: Tôi cứ cần phải tạo Ubuntu cài đặt đĩa và tôi ghét định dạng chúng sau đó), và điều đó rất khó chịu.

Sử dụng Gparted trên Ubuntu (VM) để xóa tất cả các phân vùng trên ổ đĩa, sau đó thêm phân vùng FAT32 mới. Lưu ý: Tôi khá chắc chắn rằng GParted sử dụng mật khẩu gốc chứ không phải mật khẩu bình thường bạn sử dụng để đăng nhập. Nếu bạn không biết mật khẩu gốc của mình, có khả năng là bạn chưa đặt mật khẩu. Chạy "sudo passwd" để đặt mật khẩu gốc, sau đó sử dụng mật khẩu đó để mở GParted. Bạn cũng có thể sử dụng "sudo gparted".

Hoặc, tìm và cài đặt chương trình SDFormatter4 miễn phí trên Windows (Lưu ý: Cũng hoạt động theo WINE trong Ubuntu) và sử dụng nó để định dạng thẻ ở chế độ ghi đè. Điều này có cơ hội làm việc tốt hơn, nhiều như tôi không thích phần mềm độc quyền.

Cả hai đều có may mắn hơn trong việc định dạng thẻ so với các tiện ích tích hợp.

Tất nhiên, thẻ SD và ổ USB cố tình không chuyển sang chế độ chỉ đọc để cho bạn cơ hội phục hồi dữ liệu. Nếu thẻ đó là mới từ xa, điều này không nên xảy ra, nhưng nó có thể. Tôi cũng đề xuất thẻ Samsung hoặc Sandisk, vì thẻ Kingston thường bị làm giả và nhanh chóng bị lỗi. Tôi thực sự đã có vấn đề này xảy ra một lần, và nó thực sự là một lỗi thẻ. Tôi hy vọng rằng đây không phải là trường hợp cho bạn.


-1

Hừm. Tôi nên liên kết bài đăng này bởi vì tôi đã bắt đầu ở đây và bằng cách nào đó đã kết thúc trên một bài đăng khác.

nhập mô tả liên kết ở đây

Trước tiên hãy chắc chắn rằng nó không phải là đầu đọc thẻ!

Vấn đề này được gây ra bởi một hệ thống tập tin bị hỏng rất dễ dàng. Vấn đề có thể được gây ra bởi nhiều thứ. Nếu bạn định dạng nó trên Linux mà không ngắt kết nối hoặc nếu bạn phân vùng lại thì nó sẽ được gắn hoặc nếu các phân vùng bị hỏng thì điều này có thể xảy ra. Điều tốt nhất để làm là sử dụng lệnh Linux fsck /dev/sdb1hoặc bất kỳ chỉ định ổ đĩa của bạn là gì /dev/sdd1. Nó có thể thấy nó như /dev/sdb1thể hệ thống tập tin bị hỏng trên thẻ nhớ microSD. Lỗi này rất dễ mắc phải vì nhìn vào ...

root@w3tech-Satellite-C655:/home/w3tech# umount /dev/sdc*
umount: /dev/sdc: not mounted.
umount: /dev/sdc2: not mounted.
root@w3tech-Satellite-C655:/home/w3tech# umount /dev/sdc*
umount: /dev/sdc: not mounted.
umount: /dev/sdc1: not mounted.
umount: /dev/sdc2: not mounted.
root@w3tech-Satellite-C655:/home/w3tech#

Tôi đã phải unmount ổ đĩa hai lần để unmount cả các phân vùng ... và vâng đó là một microSD mà nên /dev/sdd, /dev/sdehoặc sau đó.

Tuy nhiên, chỉ chạy fsckcó thể không loại bỏ bit bẩn nếu nó nghĩ rằng nó chỉ đọc. Cho đến lúc đó, nhân Linux vẫn sẽ sử dụng phân vùng cũ, điều đó có nghĩa là bạn gặp lỗi chỉ đọc vì không có cách nào người dùng có thể cấp quyền cho phân vùng cũ. Đôi khi, việc khởi động ổ đĩa sẽ cho phép kernel chuyển sang phân vùng mới, chẳng hạn như nếu bạn đã sử dụng một chương trình để tạo bảng phân vùng mới.

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.