Làm cách nào tôi có thể ngăn thẻ SD của Pi bị hỏng thường xuyên như vậy?


47

Tôi gặp lỗi I / O khi khởi động và sau đó nhận được 'lỗi' này: (Tôi đang chạy phiên bản mới nhất của Raspbian)

Entering kdb (current=0xca82ac80, pid 1) due to keyboard entry
kdb> _

Và tôi đã nhìn thấy nó trước đây và được giải thích rằng thẻ SD của tôi đã bị hỏng do tôi không tắt máy đúng cách. Một tuần sau, tôi đã không xử lý lỗi này, cho đến khi bật / tắt nguồn ba lần và bây giờ tôi không thể khởi động lại. Có vẻ như tôi đang chuẩn bị lại thẻ SD của mình mỗi ngày !!! Tôi không thích điều này, chưa kể tôi yêu khả năng của Pi. Nhưng 'điểm dừng' này đang khiến tôi phát điên! Có một số cách tôi có thể ngăn chặn điều này hoặc tăng cường một cái gì đó để nó không xảy ra nếu mất điện? Bất kỳ đề xuất? Cảm ơn!

PS Tệp zip của tôi không bị hỏng và dịch vụ giải nén của tôi là Win32DiskImager


2
Thẻ của bạn có trong danh sách này không
Butters

Bạn đã bao giờ nghĩ về UPS chưa?
lenik

@lenik Bạn đang nói tôi nên có một cái gì đó giống như một người bảo vệ đột biến?
dùng151324

Bởi vì bạn tắt nguồn mà không tắt máy đúng cách?
jippie

1
@coding_corgi nhiều khả năng là một cái gì đó có pin bên trong, cung cấp năng lượng trong 5-10 phút sau khi mất điện, cho phép bạn bỏ qua các lần giật điện ngắn và cho bạn thời gian tắt máy (tự động?) khi mất điện trong thời gian dài thời gian. Nó được gọi là "Nguồn cung cấp điện liên tục" hoặc viết tắt là UPS.
lenik

Câu trả lời:


48

Tôi sẽ không viết về việc kiểm tra danh sách thẻ SD và thẻ SD tương thích của bạn, bởi vì rất có thể bạn đã kiểm tra tất cả những thứ này. Những gì tôi sắp viết là giải pháp lâu dài, cho phép khắc phục sự cố trong nụ và khắc phục sự cố vĩnh viễn .

Nếu bạn không muốn thẻ SD của mình bị hỏng khi bật công tắc nguồn, bạn phải sử dụng nó ở chế độ chỉ đọc. Nếu không có gì được ghi vào thẻ SD của bạn, nó sẽ không bị hỏng cho dù bạn có làm gì đi nữa.

Giải pháp rõ ràng (nhưng không hoạt động) sẽ là một nỗ lực để lật công tắc "chỉ đọc" ở bên cạnh thẻ SD, thật không may, điều này không hoạt động vì sơ đồ cho thấy công tắc này không được định tuyến và vị trí của nó thường bị bỏ qua.

Một cách tiếp cận khác, tinh tế hơn (nhưng hoạt động) sẽ là sửa đổi của bạn /etc/fstabđể gắn kết tất cả các phân vùng của bạn chỉ đọc. Hạn chế của phương pháp này là các bản ghi của bạn phải được ghi ở một nơi khác (thẻ nhớ USB, ổ đĩa RAM?) Và trong trường hợp ổ đĩa RAM, các bản ghi sẽ không tồn tại trong quá trình khởi động lại. Để làm điều này:

  1. Sao chép hình ảnh RPi vào thẻ SD của bạn bằng bất kỳ phương pháp nào bạn muốn.
  2. Khởi động từ SD và raspi-configsẽ tự động bắt đầu. Không "Mở rộng hệ thống tập tin", chỉ cần thiết lập múi giờ và cài đặt quốc tế của bạn.
  3. Chạy sudo fdisk /dev/mmcblk0, nhấn 'p' để in bảng phân vùng hiện tại. Sau đó nhập các lệnh sau:

    n        Create a new partition
    [enter]  Make a primary partition
    [enter]  Use the default number
    [#]      1 greater than the end of mmcblk0p2
    [enter]  Expand to the end of the SD card
    w        Write the partition table and exit
    
  4. Chỉnh sửa /etc/fstab. Nó sẽ trông giống như sau:

    proc            /proc     proc    defaults 0 0
    /dev/mmcblk0p1  /boot     vfat    ro       0 0
    /dev/mmcblk0p2  /         ext4    ro       0 0
    /dev/mmcblk0p3  /home     ext4    defaults,errors=remount-ro  0  1
    none            /var/run  ramfs   size=1M  0 0
    none            /var/log  ramfs   size=1M  0 0
    
  5. Chạy sudo partprobeđể nhận ra phân vùng mới.

  6. Định dạng phân vùng mới của bạn với sudo mkfs --type ext4 /dev/mmcblk0p3.
  7. Khởi động lại.

Nếu vì lý do nào đó bạn cần thực hiện thay đổi cho hệ thống của mình, bạn có thể kết nối lại các phân vùng chỉ đọc với quyền truy cập ghi:

sudo mount -o remount,rw /dev/mmcblk0p2

Đợi đã, tôi không thể ghi vào thẻ SD nếu tôi làm điều này? Hay chỉ lúc khởi động?
dùng151324

1
@coding_corgi Điều này sẽ dừng ghi hoàn toàn vào thẻ SD.
apnorton

Tại sao bạn cần ghi vào thẻ SD của bạn? ghi vào SD + tắt nguồn = hỏng FS, bạn có thể sử dụng thẻ nhớ USB hoặc tạo một phân vùng riêng trên thẻ SD nếu bạn cần lưu một số dữ liệu. trong trường hợp này ít nhất hệ thống của bạn sẽ hoạt động và sau đó bạn có thể kiểm tra dữ liệu của mình xem có bị hỏng không.
lenik

@anorton điều này dừng ghi quyền truy cập vào hai phân vùng đầu tiên trên thẻ SD, nhưng không ai nói rằng bạn không thể tạo phân vùng khác hoặc sử dụng phương tiện khác để lưu dữ liệu. ví dụ, dữ liệu ghi RasPi chỉ đọc qua mạng - có thể là một giải pháp rất đáng tin cậy.
lenik

1
Tôi ghi vào dữ liệu video thẻ SD của mình từ raspi cam và nó đã chết rất nhiều lần! Chưa một lần tôi gặp vấn đề gì với việc khởi động, rút ​​dây ra hay gặp sự cố hệ thống. Chỉ đọc là tốt cho sản xuất khi bạn cắm và chơi. Vấn đề này không nên xảy ra trong quá trình phát triển - Tôi nghi ngờ ngay cả việc chỉ đọc sẽ làm xáo trộn dữ liệu của anh ấy vì có gì đó đang xảy ra ở mức cao hơn kernel có thể xử lý.
Piotr Kula

4

Tùy thuộc vào những gì bạn sử dụng RPi của mình cho, bạn có thể bị vô hiệu hóa trong IPE, đó là một "hương vị không bị mất điện của Raspbian".

Tôi dự định sử dụng nó để khởi động RPi của tôi. Nếu tôi cần ghi dữ liệu, tôi sẽ sử dụng ổ USB mà tôi có thể đọc được (tôi thích SD của mình an toàn và làm hỏng ổ USB hơn là phải sửa SD của tôi)

Xem trang chủ IPE

Như đã chỉ ra ở đó, "Ngoài ra, hãy sử dụng Hồi ipe-rw và Hồi ipe-ro, để chuyển hệ thống tập tin gốc sang chế độ chỉ có thể ghi hoặc chỉ đọc."


2

Tôi đã khắc phục vấn đề này bằng cách sử dụng ổ flash USB cho các phân vùng chính của mình.

  1. Khôi phục hình ảnh raspbian vào ổ USB

  2. Định dạng thẻ SD thành chất béo

  3. Sao chép nội dung của phân vùng chất béo từ ổ USB vào thẻ SD

  4. Sửa đổi config.txt trên thẻ sd để khởi động từ / dev / sda

Về cơ bản, rpi vẫn sẽ khởi động từ thẻ SD, nhưng sẽ sử dụng ổ USB cho os và đọc / ghi.


2

Tôi đang sử dụng UPS Pico một UPS được thiết kế đặc biệt cho Raspberry Pi và chưa bao giờ gặp sự cố như vậy.


1

vui lòng đảm bảo RPi của bạn đang chạy ở tốc độ mặc định (tức là CPU ở tốc độ 700 mhz). Cá nhân, tôi đã gặp phải lỗi lưu trữ với nhiều thẻ SD khác nhau - nhưng chỉ khi chạy qua đồng hồ. thật không may, một số bản phân phối (hình ảnh) đi kèm với các cài đặt đáng ngờ trong config.txt .


Mặc dù vậy, tôi vẫn chưa ép xung CPU của mình, cảm ơn
user151324

thử một RPi khác để loại trừ khả năng bạn bị lỗi hoặc thậm chí bị hỏng
jitter

Tôi chỉ có một
dùng151324

bạn có thể hết các tùy chọn và yêu cầu RMA ..
jitter

RMA? Cái gì vậy
dùng151324

1

Nếu Raspberry Pi của bạn bị đóng băng thì bạn không thể tắt chính xác, thì điều này sẽ giúp ích. Tôi đã bị hỏng vài thẻ SD trước khi biết điều này:

Giữ cả Alt + PrintScreen và trong khi giữ các phím đó, hãy nhấn các phím sau theo thứ tự, từng phím một, với một vài giây tạm dừng giữa chúng.

Alt+ PrintScreen+R E I S U O

hoặc là

Alt+ PrintScreen+ R E I S U B(khởi động lại)

Một ghi nhớ tiện dụng cần nhớ đó là, Khởi động lại ngay cả khi hệ thống bị hỏng hoàn toàn.

Thay thế "O" cho "B" để tắt hệ thống thay vì khởi động lại (O = tắt, B = boot).

Nguồn: https://www.raspberrypi.org/forums/viewtopic.php?t=176612#p1126262


0

Như tìm thấy trên trang web elinux. Tôi chỉ chọn những gì áp dụng cho tình huống của bạn nhưng vui lòng truy cập chúng để biết thêm thông tin ...

  • Nếu bạn gặp sự cố, hãy kiểm tra xem bạn có phiên bản phần sụn mới nhất với rpi-update
  • Một số thẻ SD không hoạt động trên R-Pi, vì vậy hãy kiểm tra danh sách các thẻ SD đã biết .
  • Nếu bạn gặp sự cố khi thiết lập thẻ SD, bạn có thể muốn bắt đầu bằng cách xóa hoàn toàn - đặc biệt là nếu nó đã được sử dụng ở nơi khác và vẫn chứa dữ liệu / phân vùng. Thật tốt khi thực hiện định dạng ĐẦY ĐỦ (mức thấp) theo bất kỳ cách nào vì đôi khi nó có thể tìm thấy các thành phần xấu và thêm chúng vào danh sách bỏ qua.
    • Người dùng Windows và Mac có thể tải xuống một công cụ định dạng từ Hiệp hội SD: https://www.sdcard.org/doads/formatter_3/
    • Thẻ định dạng lại cũng dễ dàng thực hiện trong một máy ảnh kỹ thuật số.
    • Nếu bạn đang chuẩn bị thủ công thẻ SD của mình trên Linux hoặc Mac OS bằng lệnh dd, thao tác này sẽ xóa hoàn toàn mọi dữ liệu và phân vùng hiện có. Đảm bảo rằng bạn ghi vào toàn bộ thẻ (ví dụ / dev / sdd) chứ không phải vào một phân vùng hiện có (ví dụ / dev / sdd1).
  • Nếu bạn có một thẻ sdcard không hoạt động với phần sụn mới nhất, hãy đến đây .
  • Hãy chắc chắn rằng bạn có một nguồn cung cấp năng lượng tốt. Hãy thử và rút tất cả mọi thứ và xem nó kéo dài bao lâu. Cắm các mục trở lại từng cái một để kiểm tra sự ổn định.

Nếu bạn đã làm theo tất cả các bước đó thì điều duy nhất có thể thử là sử dụng Thẻ SD khác được chọn cẩn thận từ danh sách tương thích. Cũng đảm bảo mua thẻ gốc từ một nơi đáng tin cậy. Không giống như Trung Quốc ebay hoặc một cái gì đó.


Tôi đã sử dụng 3 thẻ sd trong quá trình (tất cả được hỗ trợ) một SanDisk, Kingston và Lexar, tôi cũng không tự thiết lập thẻ SD của mình, tôi đã sử dụng Win32DiskImager sau khi dùng thử Ubuntu và Mac OS X.
user151324

Wierd của nó mà làm cho fs của bạn đọc chỉ sửa nó. Bạn trong số hàng triệu người có vấn đề này. Có thể bạn đã có một số rác / virus làm rối tung hệ thống tập tin của bạn. Rễ chỉ đọc là một nỗi đau ở mông ... hãy chờ xem.
Piotr Kula

cảm ơn, có điều gì đó kỳ lạ đang diễn ra, chắc chắn không phải là virus mặc dù ...
user151324

0

Chỉ cần bao gồm tất cả các mặt đất, cũng kiểm tra xem nguồn cung cấp năng lượng của bạn là đủ tốt. thử bộ sạc khác hoặc cắm RPI vào cổng USB của PC để kiểm tra. Hãy nhớ rằng nguồn cung cấp RPI được đề xuất là khoảng 700mA, nhưng một số bộ sạc yếu có thể không duy trì điều này ở mức ổn định.

Tôi đã có một bộ định tuyến bắt đầu hành động điên rồ trong vài ngày, sau đó đã ổn, rồi lại phát điên và sau đó lại ổn ... tôi thấy rằng nguồn cung cấp điện đã thay đổi điện áp thay đổi (3V đến 5,5V) vào thời điểm bộ định tuyến khùng. Thay thế nguồn cung đó bằng một nguồn mới, tất cả đều ổn. Vì vậy, hãy thử thay thế nguồn điện và đo điện áp đầu ra.

Cuối cùng, tắt RPI bằng cách tắt HĐH và chỉ rút RPI khi bạn chỉ có một đèn led đỏ. RPI không thực sự tắt nếu bạn có một đèn led đỏ khác. Ngoài ra, hãy cố gắng tránh ngắt kết nối rpi bằng cách rút nguồn điện ra khỏi phích cắm, tốt hơn hết là rút nguồn khỏi RPI và chỉ sau khi từ xa nguồn điện ra khỏi phích cắm.


Không, tôi có 5.1V ổn định @ 2100 A và tôi luôn tắt máy đúng cách
user151324

0

Tôi có vấn đề tương tự trên một pi từ các thành phần RS. Đây là một trong những pis được thực hiện trên Trung Quốc. Một cái khác được sản xuất tại Anh từ Element 14 không bao giờ bị tham nhũng với cùng một sdcard và powersupply. Có thể là một số Phần cứng với các đơn vị thành phần ra. Tất nhiên là không chắc chắn về điều đó, nhưng mọi thứ dường như đều chỉ theo hướng đó.


0

Tôi cũng đã trải qua thất bại SD với PI của mình, đôi khi 5 ngày liên tiếp, đôi khi nó hoạt động trong một tháng.

Cách duy nhất tôi có thể khiến nó chạy đáng tin cậy trong hơn một năm nay là Khởi động từ thanh USB. Bằng cách này, bạn không sử dụng thẻ SD (chỉ khi khởi động) và chỉ cần khoảng 500mb thẻ sd (giá rẻ) và thẻ nhớ USB.


0

Tôi đã làm theo một gợi ý mà bạn có thể làm synctrước khi tắt máy và cho đến nay tôi đã có một số thành công với lệnh này:

sync; sudo shutdown -t 9 -r now

Bạn vẫn gặp vấn đề với Raspberry khi sử dụng giải pháp trên?
CuriousMind 22/03/2015

Tôi không còn có vấn đề gì nữa - nhưng tôi thừa nhận rằng tôi có xu hướng thay vào đó, thay vì tắt nó đi, thay vì tắt nó đi. Nhưng tôi đoán là tôi đã bỏ nó xuống hơn năm mươi lần với dòng trên, và nó đã không thất bại một lần kể từ đó. Vì vậy, từ thống kê đó - nó hoạt động.
dirkk0

Tôi không nghĩ rằng điều này sẽ khắc phục vấn đề. Khi bạn chạy tắt máy có kiểm soát, sẽ không có thiệt hại nào xảy ra với thẻ sd của bạn theo thiết kế. Tham nhũng dường như xảy ra chủ yếu trong các trường hợp thiết bị chỉ bị rút phích cắm (hoặc mất điện) không liên quan đến lệnh synchoặc shutdownlệnh của bạn trừ khi bạn chạy syncngay trước khi rút phích cắm (không mong muốn!) Có vẻ không khả thi.
nhee
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.