Як я можу запобігти пошкодженню SD-карти мого Pi так часто?


47

Я отримую помилку вводу / виводу при завантаженні, а потім отримую цю "помилку": (я запускаю останню версію Raspbian)

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

І я бачив це раніше, і мені було пояснено, що моя SD-карта пошкодилась, оскільки я не вимкнувся правильно. Через тиждень я не впорався з цією помилкою, поки живлення тричі не ввімкнулося / вимкнулося, і тепер я не можу завантажуватися знову. Здається, я щодня готую свою SD-карту !!! Мені це не подобається, не кажучи вже про те, що я люблю можливості мого Пі. Але ця "точка розриву" зводить мене з розуму! Чи є якийсь спосіб я запобігти цьому або посилити щось, щоб цього не сталося, якщо потужність згасне? Будь-які пропозиції? Дякую!

PS Мій поштовий файл не був пошкоджений, і моя служба вилучення - Win32DiskImager


2
Чи є ваша картка в цьому списку
Масляни

ви коли-небудь думали про ДБЖ?
lenik

@lenik Ви хочете сказати, що я повинен мати щось на зразок захисника від перенапруг?
користувач151324

Тому що ви вимикаєте річ без належного відключення?
джиппі

1
@coding_corgi скоріше щось із батареєю всередині, що забезпечує живлення протягом 5-10 хвилин після відключення електроенергії, що дозволяє ігнорувати короткі вимкнення живлення та дає вам час (автоматично?) вимкнути комп'ютер, коли живлення надовго знижується. час. Це називається "Джерело безперебійного живлення" або ДБЖ.
lenik

Відповіді:


48

Я не збираюся писати про перевірку ваших HW та сумісних списків SD карт, тому що ви, швидше за все, вже перевірили все це. Те, що я збираюся написати, - це постійне рішення, яке дозволяє занести проблему в зародок і назавжди виправити проблему.

Якщо ви не хочете, щоб ваша SD-карта зламалася, коли ви перемикаєте вимикач живлення, вам доведеться використовувати її в режимі лише для читання. Якщо на SD-картці нічого не буде записано, вона не пошкодиться незалежно від того, що ви робите.

Очевидним (але непрацюючим) рішенням буде спроба переключити перемикач "лише для читання" на стороні SD-карти, на жаль, це не працює, оскільки схеми показують, що цей перемикач нікуди не направлений, і його положення взагалі ігнорується.

Іншим, більш тонким (але працюючим) підходом буде модифікація вашого /etc/fstabмонтажу всіх ваших розділів лише для читання. Недоліком такого підходу є те, що ваші журнали повинні бути записані десь в іншому місці (USB-накопичувач, RAM-накопичувач?), А в разі оперативної пам'яті журнали не зберігатимуться під час перезавантаження. Зробити це:

  1. Скопіюйте зображення RPi на SD-карту будь-яким способом.
  2. Завантажтесь із SD і raspi-configпочнеться автоматично. Не «Розгортайте файлову систему», просто встановіть свій часовий пояс та міжнародні налаштування.
  3. Запустіть sudo fdisk /dev/mmcblk0, натисніть 'p', щоб надрукувати поточну таблицю розділів. Потім введіть такі команди:

    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. Редагувати /etc/fstab. Це має виглядати приблизно так:

    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. Виконайте sudo partprobeрозпізнавання нового розділу.

  6. Відформатуйте новий розділ за допомогою sudo mkfs --type ext4 /dev/mmcblk0p3.
  7. Перезавантажте.

Якщо з якоїсь причини вам потрібно внести зміни до вашої системи, ви можете знову створити розділи, доступні лише для читання, з доступом до запису:

sudo mount -o remount,rw /dev/mmcblk0p2

Зачекайте, якщо я це не можу записати на свою SD-карту? Або тільки при завантаженні?
користувач151324

1
@coding_corgi Це не повинно повністю припиняти запис на SD-карту.
apnorton

навіщо потрібно писати на SD-карту? запис на SD + вимкнення живлення = пошкодження FS, ви можете використовувати USB-накопичувач або створити окремий розділ на SD-картці, якщо вам потрібно зберегти деякі дані. у такому випадку система принаймні запрацює і ви зможете перевірити свої дані на предмет можливої ​​корупції.
lenik

@anorton це зупиняє запис доступу до перших двох розділів на SD-картці, але ніхто не каже, що ви не можете створити інший розділ або використовувати різні носії для збереження даних. наприклад, запис даних RasPi лише через мережу через мережу - може бути дуже надійним рішенням.
lenik

1
Я записую на мою SD-карту відеодані з raspi cam, і вона стільки разів помирала! Не один раз у мене не виникало проблем із завантаженням, витягненням проводів або збоєм у системі. Читання лише добре для виробництва, коли ви підключаєте та граєте. Ця проблема не повинна траплятися під час розробки будь-яким способом - я підозрюю, що навіть читання лише зіпсує його дані, оскільки щось відбувається на більш високому рівні, ніж ядро ​​може впоратися.
Пьотр Кула

4

Залежно від того, для чого ви використовуєте свій RPi, ви можете зацікавитись IPE, що є "ароматом Raspbian", захищеним від затемнення.

Я планую використовувати його для завантаження моєї RPi. Якщо мені потрібні дані для запису, я буду використовувати USB-накопичувач, який буду встановлювати лише заново (я вважаю за краще, щоб мій SD був безпечним і пошкодив USB-накопичувач, ніж ремонтувати мій SD)

Дивіться домашню сторінку IPE

Як зазначено там, "Також використовуйте" ipe-rw "та" ipe-ro "для перемикання кореневої файлової системи на режим запису чи лише для читання."


2

Я подолав цю проблему, використовуючи флешку USB для моїх основних розділів.

  1. Відновіть розпійне зображення на USB-накопичувач

  2. Відформатуйте SD-карту на жир

  3. Скопіюйте вміст жирової секції з USB-накопичувача на SD-карту

  4. Змініть config.txt на sd-картці для завантаження з / dev / sda

По суті, rpi як і раніше завантажуватиметься із SD-карти, але використовуватиме USB-накопичувач для ОС та читати / записувати.


2

Я використовую UPS Pico для спеціально розробленого ДБЖ для Raspberry Pi і ніколи не мав таких проблем.


1

будь ласка, переконайтеся, що ваш RPI працює на типових швидкостях (тобто процесор на 700 МГц). особисто я зіткнувся з пошкодженнями пам’яті з різними картами SD - але лише під час роботи цілодобово. на жаль, деякі дистрибутиви (зображення) поставляються із сумнівними налаштуваннями в config.txt .


Я не розігнав свій процесор, хоча спасибі
користувач151324

спробуйте інший RPI, щоб виключити ймовірність того, що ваша якась помилка чи навіть зламана
тремтіння

У мене є лише один
користувач151324

у вас можуть вичерпатися варіанти та запитати RMA ..
тремтіння

RMA? Що це?
користувач151324

1

Якщо ваш Raspberry Pi заморожений, ви не можете правильно вимкнути функцію, то це допомагає. Мені було порушено кілька моїх карт SD, перш ніж знали це:

Утримуючи обидві клавіші Alt + PrintScreen і, утримуючи ці клавіші, натискайте наступні клавіші послідовно, одна за одною, з декількома секундами паузи між ними.

Alt+ PrintScreen+R E I S U O

або

Alt+ PrintScreen+ R E I S U B(перезавантаження)

Зручна мнемоніка, яку потрібно пам’ятати, перезавантажте навіть якщо система повністю розбита.

Замініть "O" на "B", щоб вимкнути систему замість перезавантаження (O = вимкнено, B = завантаження).

Джерело: https://www.raspberrypi.org/forums/viewtopic.php?t=176612#p1126262


0

Як виявлено на сайті elinux. Я вибрав лише те, що стосується вашої ситуації, але, будь ласка, відвідайте їх для отримання додаткової інформації ...

  • Якщо у вас є проблеми, перевірте, чи є у вас остання версія прошивки з rpi-update
  • Деякі SD-карти не працюють на R-Pi, тому перевірте список відомих SD-карт .
  • Якщо у вас виникають проблеми з налаштуванням SD-карти, ви можете почати, видаливши її повністю, особливо якщо вона використовувалася в іншому місці і все ще містить дані / розділи. Добре робити FULL (низький рівень) формату будь-яким способом, оскільки він іноді може знайти погані сектори та додати їх до списку ігнорування.
    • Користувачі Windows та Mac можуть завантажити інструмент форматування від Асоціації SD: https://www.sdcard.org/downloads/formatter_3/
    • Переформатування карт також легко зробити в цифровій камері.
    • Якщо ви вручну готуєте SD-карту в Linux або Mac OS за допомогою команди dd, ця операція повністю видалить усі наявні дані та розділи. Переконайтеся, що ви пишете на всю карту (наприклад, / dev / sdd), а не на існуючий розділ (наприклад, / dev / sdd1).
  • Якщо у вас є SDCard, який не працює з останньою прошивкою, перейдіть сюди .
  • Переконайтесь, що у вас хороший блок живлення. Спробуйте і відключіть все від мережі, і подивіться, як довго це триває. Підключіть елементи один до одного, перевіряючи стійкість.

Якщо ви дотримуєтесь усіх цих кроків, то єдине можливе, що можна спробувати, - це використовувати іншу SD-карту, ретельно вибрану із сумісного списку. Також обов’язково придбайте оригінальну карту з надійного місця. Не так, як Китай на ebay чи щось подібне.


У процесі роботи я використовував 3 sd карти (усі підтримуються) SanDisk, Kingston та Lexar, я також не встановлював SD-карту вручну, я використовував Win32DiskImager після спроб на Ubuntu та Mac OS X.
user151324,

Її суворіше, що примушення ваших фс читати лише фіксувало його. Ви з мільйонів людей маєте це питання. Можливо, у вас є якийсь сміття / вірус, зіпсувавши вашу файлову систему. Readonly корінь - це біль у попі ... зачекайте і подивіться.
Пьотр Кула

дякую, щось дивне відбувається, напевно не вірус, хоча ...
user151324

0

Просто щоб покрити всю землю, також перевірте, чи достатньо гарне джерело живлення. спробуйте інше зарядне обладнання або підключіть RPI до USB-порту ПК, щоб перевірити його. Пам'ятайте, що рекомендований запас RPI становить близько 700 мА, але деякі слабкі зарядні пристрої можуть не підтримувати це на стабільних рівнях.

У мене був роутер, який почав діяти божевільно протягом декількох днів, потім пішов нормально, потім знову зійшов з розуму, а згодом знову добре ... Я виявив, що блок живлення виводив зміну напруги (від 3 В до 5,5 В) на час маршрутизатора божевільний. Замінивши, що постачання нового - все нормально. Тому спробуйте замінити джерело живлення та виміряти вихідну напругу.

Нарешті, вимкніть RPI, вимкнувши ОС і відключіть RPI лише тоді, коли у вас є лише один червоний світлодіод. RPI насправді не вимикається, якщо у вас є інший червоний світлодіод. Також намагайтеся уникати відключення rpi, виймаючи джерело живлення зі штекера, краще вийміть живлення з RPI і лише після віддаленого живлення від штекера.


Ні, у мене стабільний 5.1V @ 2100 A, і я завжди правильно відключаюсь
user151324

0

У мене є подібні проблеми з пі від RS Components. Це один з піс, виготовлений у Китаї. Ще один, зроблений у Великобританії з елемента 14, ніколи не мав корупції з однаковими карткою та повноваженнями. Може бути апаратне забезпечення з компонентами ра компонентів. Не впевнений у цьому, звичайно, але все, здається, вказує в цьому напрямку.


0

Я також зіткнувся зі збоями SD у своєму ПІ, іноді 5 днів поспіль, іноді це працює місяць.

Єдиний спосіб, коли я міг би змусити її працювати надійно вже більше року, - це завантажуватися з USB-накопичувача. Таким чином, ви не використовуєте вашу SD-карту (лише під час завантаження) і просто знадобиться близько 500 Мб SD-карти (дешево) та USB-накопичувача.


0

Я дотримувався підказки, яку ви можете зробити syncперед відключенням, і поки що я мав певний успіх у цій команді:

sync; sudo shutdown -t 9 -r now

Ви все ще маєте проблеми з малиною, використовуючи вищевказаний розчин?
CuriousMind

У мене більше не було проблем - але я визнаю, що я, як правило, скоріше напускаю пі, а не вимикаю. Але я здогадуюсь, що я збиваю це добре понад п’ятдесят разів вищезгаданим рядком, і відтоді він не провалювався жодного разу. Тож із тієї статистики - це працює.
dirkk0

Я не думаю, що це вирішить проблему. Якщо ви працюєте з контрольованим відключенням, вашій SD-картці за дизайн не пошкоджуватиметься. Здається, що пошкодження трапляється здебільшого у випадках, коли пристрій просто відключено від мережі (або відбувається відключення живлення), що не пов'язане з вашими командами syncабо shutdownкомандами, якщо ви не запустите syncбезпосередньо перед (несподіваним!) Відключенням, яке здається нездійсненним.
nhee
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.