Tự phân vùng thẻ SD


9

Nhiều thẻ sd khá dễ vỡ. Tôi đã có một pi khoảng 2 năm nay và những thất bại chính là do thẻ sd bị hỏng vì lý do này hay lý do khác.

Tôi tự hỏi nếu có một số phát triển được thực hiện để "tăng cường" thẻ sd khi khởi động. Tôi nhớ có một cái gì đó như thế này trong một dự án trước đây, trong đó uboot sẽ chọn giữa 12 tarball nếu bất kỳ ai trong số họ có tổng kiểm tra crc32 không hợp lệ. Sau đó, nó sẽ lấy lại cái đã được xác thực cho tất cả những cái khác đã được sửa đổi sau khi khởi động thành công.

Tôi muốn sử dụng số pi của mình trong thiết lập "vĩnh viễn" và sẽ thật tuyệt nếu nó có thể hoạt động mà không cần phải làm lại thẻ.

Có một số phát triển đã được thực hiện theo cách này? Mặc dù ý tưởng chung là khá tầm thường, nhưng để uboot hoạt động bình thường thường là một quá trình khá đau đớn mà tôi muốn tránh.

BIÊN TẬP :

Sau khi đào sâu hơn, dường như những gì tôi đang hình dung có thể là không thể, hoặc có thể theo cách có thể mang lại bất kỳ lợi thế có ý nghĩa nào. Ở đây quá trình khởi động được mô tả . Mã tôi làm việc đang chạy ở cấp khởi động đầu tiên vì bảng của tôi có đèn flash lập trình cho việc này. Với pi, điều này được lưu trữ trong ROM từ nhà máy. Mọi thứ khác đến từ thẻ sd, vì vậy nếu thẻ bị hỏng, bộ nạp khởi động giai đoạn hai có nhiều cơ hội bị phá hủy như bất kỳ phân vùng nào khác.

Có thể có thể lạm dụng bộ tải khởi động ROM cho mục đích này, nhưng thật khó để nói làm thế nào. Các mã cũng có vẻ độc quyền.

Chỉnh sửa 2:

Giải thích quá trình khởi động thực tế bị xung đột tùy thuộc vào nguồn. Tôi sẽ cố gắng đọc thêm về nó

Câu trả lời:


9

Nếu bạn gặp vấn đề với thẻ SD, bạn nên thử (theo thứ tự):

  1. Sử dụng một nguồn cung cấp năng lượng (lớn hơn) khác.
  2. Kết nối một trung tâm hỗ trợ ở giữa Raspberry và bất kỳ thiết bị ngoại vi USB nào bạn có thể có.
  3. Sử dụng thẻ SD của các thương hiệu nổi tiếng.
  4. Sử dụng thẻ SD lớn hơn (để cân bằng hao mòn phân tán).
  5. Đặt rootfs của bạn ở chế độ chỉ đọc và do đó tránh ghi vào thẻ SD.
  6. Sử dụng bản phân phối "trực tiếp" chạy hoàn toàn từ RAM. Dự án Nard SDK của tôi là một trong số đó (nhưng cũng có những dự án khác). Với Nard, thẻ SD chỉ được sử dụng khi khởi động. Sau khi chạy và chạy hệ thống tập tin không bao giờ được sử dụng lại, bạn thậm chí có thể cắm nóng thẻ SD ...

Xem: http://www.arbetsmyra.dyndns.org/nard/


Tôi muốn nói thêm rằng bạn cũng có thể chạy HĐH từ ổ cứng được kết nối usb - giống như mục số 6 của bạn.
Phil B.

Cảm ơn về những đề nghị. Tuy nhiên, thẻ sd có thể bị hỏng khi mất điện. Có lẽ đặt thẻ vào chỉ đọc sẽ giúp. Tôi đồng ý rằng ngăn chặn tham nhũng ngay từ đầu là một giải pháp tốt hơn, nhưng khó ngăn chặn hoàn toàn.
Eric

Nếu tham nhũng mất quyền lực là vấn đề thì một bản phân phối trực tiếp là phương thuốc.
Ronny Nilsson

1

Bạn không nên trải qua tham nhũng kịch tính thường xuyên, ngay cả khi sức mạnh đôi khi bị mất.

Nếu một hệ thống tập tin có giá trị khác không trong cột thứ sáu /etc/fstab, nó sẽ được kiểm tra xem có cần quét nó trước khi nó được gắn hay không. Các bản phân phối pi thông thường (nên) có bộ này cho /dev/mmcblk0p1và phân vùng hệ thống tập tin gốc (trên Raspbian, mmcblk0p2). Điều này có nghĩa gì đối với các hệ thống tập tin ext4 (chẳng hạn như fs gốc) là điều này xảy ra bất kể mọi N mount; để biết giá trị của N, xem "Số lần gắn tối đa" trong đầu ra từ tune2fs -l /dev/[partition]; bạn có thể điều chỉnh giá trị này bằng cách sử dụng tune2fs -c(xem man tune2fs).

Nó cũng sẽ được quét nếu hệ thống tập tin không được ngắt đúng cách. Điều này được thực hiện với e2fsck. Trong hầu hết các trường hợp, mọi thứ sẽ hoạt động tốt. Tuy nhiên, có khả năng bạn có thể mất dữ liệu cho tham nhũng; bằng chứng về điều này sẽ được để lại trong /lost+found. Nếu có thể (và thường là như vậy), hệ thống tập tin vẫn sẽ được để ở trạng thái có thể sử dụng, không bị hỏng sau đó. Câu hỏi sau đó là liệu một số thành phần quan trọng đã bị mất trong bản sửa lỗi - nhưng một lần nữa, điều này sẽ rất bất thường.

Lý do không có khả năng ảnh hưởng đến điều gì đó quan trọng là vì hầu hết những thứ đó, trong khi về mặt kỹ thuật không chỉ đọc, không thay đổi trong quá trình thông thường. Hệ thống có hàng tấn thứ từ /binvà được /libnạp vào bộ nhớ tại bất kỳ điểm nào, nhưng không có ý định thay đổi nguồn của chúng trên đĩa, vì vậy không có khả năng đĩa sẽ không đồng bộ với những thay đổi không tồn tại đó.

Mặc dù tôi không biết quy tắc nào cho phân vùng vfat đầu tiên chứa kernel và firmware (vì nó không được định dạng mở rộng), tôi cho rằng một số kiểm tra tương tự là có thể, và trong mọi trường hợp, logic của đoạn cuối áp dụng - những thứ đó chỉ thay đổi để cập nhật hệ thống. Trong thực tế, nếu bạn muốn thực sự hoang tưởng, bạn có thể gắn nó chỉ đọc ngoại trừ các bản cập nhật (hoặc không được gắn kết, vì không cần thiết khi khởi động bình thường hoàn tất).

Sau tất cả những điều này, bạn sẽ không bao giờ gặp phải tham nhũng nghiêm trọng trừ khi bạn thực sự thường xuyên tung xúc xắc bằng cách cắt giảm sức mạnh (và thậm chí sau đó nó sẽ không thường xuyên). Nếu bạn thường xuyên trải nghiệm tham nhũng, có một cái gì đó rất nghiêm trọng sai. Đã có ít nhất một vài người ở đây báo cáo các vấn đề tham nhũng ngay cả khi sử dụng hệ thống tệp chỉ đọc , điều này hơi khó hiểu. Nó ngụ ý tham nhũng là do phần cứng bị lỗi, hoặc lỗi phần mềm.

Và thực sự, tôi nghĩ rằng có một lỗi như vậy có thể đã ảnh hưởng đến pis một cách tùy tiện từ khoảng năm 2013 đến đôi khi vào giữa cuối năm 2014 (giả sử HĐH được cập nhật). Tôi có linh cảm chúng tôi đã có ít hơn "Thẻ SD của tôi bị hỏng!" bài đăng trong 4 - 6 tháng qua (nhưng Nb. Tôi chưa thực hiện bất kỳ kế toán thực tế nào để xác nhận điều đó).



0

Tự phục hồi là một vấn đề với bất kỳ bản phân phối Linux nào trong đó fsck nằm trên hệ thống tệp dễ bị hỏng nhất. Đó là một vấn đề raspbian chia sẻ với khá nhiều bản phân phối Linux - ngày nay họ muốn đặt mọi thứ [bao gồm / khởi động trong trường hợp Ubuntu !! ??] trên một phân vùng ext4 lớn.

Phân vùng gốc chỉ đọc thực sự tuyệt vời để tránh sự cố diệt khởi động trong đó Linux gặp sự cố hệ thống tệp trước khi có cơ hội chạy fsck.

Nhưng ngay cả một root đọc / ghi mà hiếm khi được cập nhật là một bước tiến lớn.

Raspbian hoạt động tốt trên một gốc chỉ đọc. Phải mất một chút nỗ lực để thiết lập và tất nhiên bạn phải chuẩn bị để "mount -o remount, rw /" trước khi có bất kỳ thay đổi nào đối với hệ thống tập tin gốc.

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.