Як я можу запобігти пошкодженню 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.